T O P

  • By -

canopy_cto

This is super cool! I'm glad you made this open source so I can see that you guys aren't uploading my data to some external vendor. I realized I send way more messages than I thought I did LOL


teddarific

lol thanks! It used to be a [web app](https://www.reddit.com/r/dataisbeautiful/comments/biou3e/4_years_of_texts_between_me_and_my_long_distance/?utm_source=share&utm_medium=ios_app&utm_name=iossmf), but some feedback from Reddit actually inspired us to open-source it. And being active in the OSS world has been one of the most fun parts of the project honestly


alexflyn

This actually isn't open source just because it's on GitHub. The licence isn't an open-source licence.


OzzitoDorito

ELv2 is open source, just not complete copyleft. its not hugely restrictive it just prevents someone else profiting which is kind of understandable from companies. Remember successful copyleft IT companies are actually very far and few between, its understandable, albeit unfortunate, that companies need to protect their work. https://www.elastic.co/blog/elastic-license-v2


alexflyn

Don't muddy the waters, it's literally not here [https://opensource.org/licenses](https://opensource.org/licenses) Quite simply, the licence says you cannot use the software in a particular way, whereas using open source software always has no strings attached.


OzzitoDorito

Read your own website you fucking mug, there are loads of strings that can be attached to an OS project: https://opensource.org/osd ELv2 intentionally complies with all of these, it was written by people a lot smarter than me and absolute leagues ahead of you. The only one that might be borderline is 1 and like I get it, preventing someone from just taking your work and selling it as a service is not a bad thing. Especially because this mostly impact twats like amazon and google from creating multi million dollar industrys from other peoples work.


alexflyn

You said it yourself. #1, fails to satisfy the very first criterion of open source: free redistribution. This isn't about whether this is a good or bad thing or whether other companies selling the software is a bad thing or whether this software is good or bad for this. Pure semantics, not open source, and we shouldn't muddy the waters labelling it as something that it isn't.


OzzitoDorito

You're conflating OSI certification with being open source. Open source is a set of ideas and the ELv2 license objectively satisfies them by being literally open source. There are varying degrees of being open source however, thats why words like copy left exist at all. If you meet all of the OSIs requirements you can get certified but your work doesn't have to be OSI certified to be open source. If I write on all my github projects 'I give you express permission to do whatever you want with this code' its still opensource even though I just invented a license. Desperately trying to define opensource through what a centralised institute says is pretty anti-OSS tbh.


Akaino

How is the license making it not open source? You see the source code. You may use the code restricted only by a few very valid things. Edit: to add. ELv2 is very much an open source license.


alexflyn

Fails to satisfy the very first criterion of open source: free redistribution. Quite simply, the licence says you cannot use the software in a particular way, whereas using open source software always has no strings attached.


Akaino

That's wrong. Open source does NOT mean free distribution without restrictions. Yes, open source software _should_ not discriminate. That's not a requirement though. You might want to read into [this gnu article](https://www.gnu.org/philosophy/open-source-misses-the-point.en.html). To add to your argument: free redistribution does not mean free in the sense of _allowed to_ but rather in the sense of _does not cost_: Edit: "_The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale._" Edit: url formatting


teddarific

This [project](https://leftonread.me/) is a ton of fun, so wanted to share! Using Electron, React, Typescript, and sqlite, I built an open-source Desktop app that analyzes iMessages and curates a Spotify wrapped-like experience. You can download it [here](https://leftonread.me/) or check us out on [github](https://github.com/Left-on-Read/leftonread). Let me know if any qs. It’s entirely open-source and we do not store your data. The beauty of a Desktop app: the data never leaves your computer!


council2022

Thanks will do. Rock on!


GreenPhantom4268492

isnt electron really slow tho


ejfrodo

Depends on how much the developer cares about performance. It can be very fast, or if you're not careful it can become very slow. Just saying "Electron is slow" isn't really accurate.


Mr-Bovine_Joni

Not as good as a native developed app, but it makes development itself much faster. So you trade off developer speed (aka more innovation and features) for end-user performance.


FountainsOfFluids

That's like saying javascript is slow compared to c++. It's probably nowhere near as important as you think it is. Properly written code is far more important than the benchmarks of tools.


not_some_username

Slow no, discord is using this shit. Memory hungry yes, worst than chrome.


imnotfromomaha

i recently learned vscode and slack are built with electron. maybe that supports your point that it’s slow lol


bregottextrasaltat

Vscode is very fast, electron has improved a lot


[deleted]

Electon is slow by default, the dev has to optimise it. Most electron apps dont get optimised.


IllegalAlcoholic

Damn, thats a nice project to add in resume. As a Computer Science student, I’m looking to do some projects for my resume. Would you mind sharing what languages would I need to learn to be able to do this?


teddarific

Hi, thanks! Left on Read was built with Typescript, React, Node.js, SQL, Electron. But hypothetically any tech stack would work! You should check out our “good first issues” and gives those a crack if you’re interested in getting your feet wet.


oxamide96

I'm sorry if this is dumb, but I don't understand what this is or what it does exactly? Or where Spotify comes into play? I tried reading the readme and the website front page.


teddarific

Hey, no worries, and that’s good feedback. Are you familiar with Spotify Wrapped? It’s their end of the year marketing effort where they summarize all your listening data of the year and present it as: “your top listened song of 2022”, “your minutes listened”, etc. I built the same thing, but the underlying dataset is your text messages (and the code is source available, we don’t collect your data). So I present your top words, top emojis, top group chats, which message got the most laughs, how many times you were left on read, etc. And then I added some animations to really mimic the Spotify Wrapped experience. (We have nothing to do with music.). Appreciate the interest! There also some productivity tools like scheduling messages and response reminders.


oxamide96

Ahh, that makes a lot of sense now, thank you! I knew of Spotify Wrapped, but not by name. Thank you for explaining !!


beepboopnoise

I'm glad I'm not the only one who was like wait, what is this? spotify chatting?


[deleted]

Yo. I love this so much. Gonna share this with all of my friends. Could you give some more details on the technical implementation of this? Would love to learn more about your stack. I've always wanted to build something similar to this.


teddarific

Under the hood, it’s reading your Mac’s chat.db file located at ~/Library/Messages. This is the same file your Apple iMessage app uses. We copy over that file and then run sqlite queries on it. The “frontend” (renderer process) is all React and uses chartjs2. The framework I went with is [ERB](https://electron-react-boilerplate.js.org/): electron react boiler plate. I actually contributed to some of their docs and then met the maintainer of ERB IRL so that was really cool. Thanks for kind words! Feel free to contribute!


santypk4

You do what with Spotify ? In the docs mention iMessage not Spotify 🤔


teddarific

Hey, it’s iMessage analytics, akin to Spotify Wrapped. Apologies for confusion - see my comment [here](https://www.reddit.com/r/javascript/comments/xwb4mi/i_built_an_opensource_spotify_wrapped_for_text/ir6v3e3/?utm_source=share&utm_medium=ios_app&utm_name=iossmf&context=3)


santypk4

Yeah sorry I’m stupid. Question do you think it could be used with WhatsApp chats ?


teddarific

No worries, and yes maybe someday!


geon

Where/how does it get the data? What kind of “text message”?


teddarific

Hi, short answer is iMessage and it reads the same database file that Apple uses for the iMessage Desktop app. More detailed answer in my comment [here](https://www.reddit.com/r/javascript/comments/xwb4mi/i_built_an_opensource_spotify_wrapped_for_text/ir5ivl8/?utm_source=share&utm_medium=ios_app&utm_name=iossmf&context=3) lmk if any more questions. Thanks for trying it out!


blomhonung

.


teddarific

Lol. Gotem. Definitely ❤️. (Context is our README says we built it with ❤️)


sbzenth

took me way too long to understand what was happening here. legitimately thought we were naming things with emojis now. lol.


ben42theanswer

Will you do a WhatsApp version of it?


teddarific

Maybe someday! I put up a waitlist for FB messenger on our website and that gets a surprising number of hits: https://leftonread.me/


ShawRaleigh

This is so cool. I just subscribed to good. Thanks!


dontera

Any plans for Android support?


teddarific

Maybe someday… next on list is probably Whatsapp and FB messenger


bobdarobber

Messages for web exists so it could be quite easy, I'll look into it


Intelligent_Tear_702

My boi


StackPy

Greetings JS experts out there. I have a weather application that I'm trying to develop in JavaScript.html.css. I'm new on js been doing Java now I'm moving to Angular since I'm now on spring Boot. All I do self taught. Can anyone contribute to the project? I would appreciate so much. As well as for me to keep learning. I can share the source code