Show HN: Kozmos – A Personal Library - <AUTHOR> https://getkozmos.com/ <comment><AUTHOR> Thanks everyone upvoted! It may look like a simple website but I spent a lot of time on this project :) Besides of programming, I shot that little video [1] in homepage, it was my first time to do voice-over :)

I created a invite code for HN, so you can sign up without wait; [https://getkozmos.com/signup?code=HNEWS](https://getkozmos.com/signup?code=HNEWS)

Here is some brief info for HN users. It's built on Go, Elastic Search and (Pr)eact. The extensions use IndexedDB [2] to create a database [3] that users read/write, and that database gets synced with Kozmos servers. This makes Kozmos' like button work consistently, even when Kozmos is down or user has bad / no connection.

How will Kozmos monetize ? Kozmos will always be free for bookmarking privately. In the next version, I'll introduce public collections which users can use for creating nicely organized bookmark collections, and this feature will be available for only paid users.

For more details, I wrote a blog post; [https://medium.com/@azerbike/introducing-kozmos-a-new- bookma...](https://medium.com/@azerbike/introducing-kozmos-a-new-bookmarking- platform-75f4df448ccc)

Thank you,

Azer

1\. [https://www.youtube.com/watch?v=fs_OOQaJRfQ](https://www.youtube.com/watch?v=fs_OOQaJRfQ)

2\. [https://github.com/azer/indexeddb](https://github.com/azer/indexeddb)

3\. [https://github.com/kozmos/likedb](https://github.com/kozmos/likedb)

<comment><USER2> How are you doing the classification with ElasticSearch? Are you hardcoding keywords for different preset categories, such as blogs/music, or are you doing some kind of machine learning to figure out what each person's relevant categories are?

<comment><AUTHOR> I extract keywords from the meta tags and open graph contents.

<comment><USER3> Any chance you might add the ability for manual tags? It's a must have for me.

</comment></comment></comment></comment><comment><USER4> There are strong critics of free bookmarking sites (@Pinboard in particular). Their main criticism is that without a revenue model, users will eventually lose their bookmarks.

What's your plan?

<comment><USER5> Pinboard isn't free though, you have to pay to even join and start using it.

<comment><USER6> Atroyn is referring to @Pinboard the person, who is critical of free bookmarking sites and has a history of buying them for cheap when they eventually fail.

</comment></comment></comment><comment><USER7> Not wanting to steal roadbeats' lunch, but as the source isn't available, if anyone wants a self-hosted solution, Wallabag 2.0 is pretty awesome[1].

[1] - [https://wallabag.org/en](https://wallabag.org/en)

<comment><USER8> Wallabag: [https://news.ycombinator.com/item?id=14686882](https://news.ycombinator.com/item?id=14686882)

Bookmarking: [https://news.ycombinator.com/item?id=14064096](https://news.ycombinator.com/item?id=14064096)

Tools: [https://news.ycombinator.com/item?id=14688496](https://news.ycombinator.com/item?id=14688496)

</comment></comment><comment><USER9> I first thought it was neat. Personal library, like how Streama is a personal Netflix. Then I saw it's another service owned and controlled by someone else.

Don't get me wrong, I don't know you, and im not going to assume bad behavior. But this is a treasure trove of data, and you cannot guarantee that if acquired, another party wouldn't exploit it. If it were local or on a machine I controlled, then I could guarantee data security and privacy.

Enough of my life is on the "cloud" controlled by interests that are different, and sometimes oppositional to mine.

Thank you, but no.

<comment><AUTHOR> Kozmos saves your bookmarks into your browser first, then syncs with its server. And the database it creates in your browser is open source; [https://github.com/kozmos/likedb](https://github.com/kozmos/likedb)

You can hack it the way you'd like.

<comment><USER9> Like I said, I'm not ascribing any sort of nefarious or dastardly actions by you. It's more of a gut reaction of the idea of "Cloud everything".

I'd be much more interested in running my own backend, than frontend db. Yeah, I'm a control freak, I guess. But at least my data stays mine.

<comment><USER10> I agree. In fact, i like it when new products/services offer the option to self-host for free (because code is open source), as well as the option where I can pay them to host it for me (along with a little included support). In my mind, companies that don't offer both, sort of get lumped in with the googles, microsofts, apples, facebooks, snapchats, etc. of the world. Much like other commentaries, I'm not assuming automatic nefarious behavior, but providing options like i noted above, sure goes a long way in building confidence and happy customer relations.

</comment></comment></comment></comment><comment><USER11> > Kozmos will add your browser the button, so you can bookmark easily.

Should be something like "Kozmos will add a button to your browser..."

Also, the onboarding seems buggy. I was asked to add the extension twice and then got stuck at a loading screen. Having an import feature is nice, but what format are the files supposed to be in? Just a list of URLs? If so, where do the names of the bookmarks come from?

Edit: I tried importing an HTML export of my bookmarks from Chrome which Kozmos seems to try to support. The import fails though with a 500 from the API and some additional JS errors.

<comment><AUTHOR> Hi, I've just tested it, import service works. Would you mind sending your bookmarks to me and I'll figure out if something in the file makes the service fails; email@example.com

<comment><USER11> Unfortunately, I don't think you can say it works when a simple HTML import fails with no error message and the UI just hangs up. I'm not doubting that it works for you, but I think the bar for "works" is higher when you're trying to build a product. Emailed you the file that fails for me and hopefully you'll be able to find a solution.

<comment><AUTHOR> Thank you for sending your bookmarks, haven't received it yet, is it a large file ?

<comment><USER11> No, it's only ~500KB.

<comment><AUTHOR> It was a nasty nginx permissions error, thank you so much letting me know so I solved it.

<comment><USER11> It does look like it's working now, although I see the speed shows as "B/MS". Shouldn't this be "BM/S"? The speed also seems to be useless as it says 336 B/MS but I only have ~1000 bookmarks and I've been sitting on the page for several minutes.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Seems you will charge for usage in the future ? No mentioning of a free tier ? No pricing ? I generally do not sign up for anything that is not clear on that.

<comment><AUTHOR> Hi, private bookmarking will always be free. The second phase of Kozmos will have "public collections", for example, we will be able to create a "Best Boutique Hotels in Istanbul" collection, and this will be only available for paid users. This is Kozmos' business model but I haven't explained it in the site, because collections aren't implemented yet.

</comment></comment><comment><USER13> Is it possible to get a bookmarklet instead of a browser extension?

</comment><comment><USER14> Something to note is that keypresses are often ignored in (all?) text fields. Like, I can't type "google.com" without having to repress at least 2 keys.

EDIT: There's been 2 cases where I've noticed the character is added but then subsequently deleted in the next instant. Typing faster causes more characters to go missing, and I have to type like 1 keypress a second to type "google.com" correctly.

<comment><AUTHOR> Are you also a Windows user ? I can't figure out what's wrong as I only got OSX and Linux. Here is the Preact component I use for Input fields; [https://gist.github.com/azer/87e6919fc24ad08839e01b1ee3158b4...](https://gist.github.com/azer/87e6919fc24ad08839e01b1ee3158b45)

<comment><USER14> No, I'm using Archlinux with Firefox 54.

<comment><AUTHOR> Oh, I'm also on Arch Linux and have no issues.

</comment></comment></comment></comment><comment><USER15> I find it weird how every bookmarking service lacks a high density list format like how browsers display it. It frustrated me so much I just made my own [https://felipecortez.net/marks/felipecortez/tag/people+desig...](https://felipecortez.net/marks/felipecortez/tag/people+design/)

</comment><comment><USER16> This is great - the like / heart button is really slick, and I love how it doesn't get in the way at all. I've used pinboard and others in the past, and the (relatively) heavier bookmarking flow would often stop me from saving things as I didn't want to break my flow.

Excited to see where this ends up!

</comment><comment><USER17> I didn't see a place where I could actually put in an invite code?

<comment><AUTHOR> It's in the sign up form; [https://getkozmos.com/signup](https://getkozmos.com/signup)

</comment></comment><comment><USER18> What's your main differentiation from a service like Pocket?

<comment><USER19> First thing that caught me is, pocket doesn't auto-categorize as a free feature

</comment></comment><comment><USER20> I've been tossing around the idea of what a bookmarking solution would look like that would save a cache of the current page and possibly surrounding pages. Maybe even have the ability to highlight or make notes on the page directly. The use case would be bookmarking a page that is later updated and I was never really sure why I bookmarked it in the first place. Or possibly bookmarking pages behind a login screen.

<comment><USER21> Pretty much should be how bookmarks work anyway. The point of bookmarking is an intention to return. If the site is down or your network fails a bookmarked page should still work.

</comment></comment><comment><USER18> Do you plan on offering an API to add links?

<comment><USER22> Stop asking for this kind of thing, please.

<comment><USER23> You really should provide some reasoning if you ask people to not voice their feature requests on Show HN. (FWIW, not having an API is a dealbreaker for a bookmarking service in my eyes)

<comment><USER22> The things was launched yesterday by a single person. Of course there will be an API, but do not ask for one as if it was the most important feature, the most needed, the most urgent one.

Also, when you ask for an API (I don't know if it was you who asked) you don't give some reasoning on why you think such feature is needed, so why are you asking me that?

</comment></comment></comment></comment><comment><USER24> Here's an honest to god question: Why are you storing your bookmarks on some random person's server? From a privacy POV it appears quite questionable, so what is the upside?

(I never once in my life thought "damn I don't have that exact URL of THING bookmarked in SPECIFIC DEVICE.)

</comment><comment><USER25> Beautiful and very seamless slick registration + extension install experience. You deserve full marks imho!

</comment><comment><USER26> I'm using fetching.io, which is a paid service, but it also seems like the work of one guy, and we don't use the same browsers, so I'm ambivalent about it.

<comment><USER27> I just use WorldBrain (Chrome extension). It is based on Falcon, but you perform quicksearch (wb keyword) against your history and bookmarks.

</comment></comment><comment><USER28> What's the trick to getting search to work on non-webpages? I couldn't find any keywords that would pull up PDFs, including elements of their bookmark name.

</comment><comment><USER27> Who remembers Starbuck's Kozmo.com that offered free delivery? Burned through money faster than WebVan!

<comment><USER29> The documentary e-Dreams covers the demise of Kozmo. Highly recommended.

</comment></comment><comment><USER30> search seems to need a lot more works. Typeahead would be nice but partial match is sorely needed, eg. bus should bring up links on business and bus schedule.

</comment><comment><USER31> just registered and installed the extension. do I always need to go to the website manually to view my bookmarks or is there a navigation point i'm missing in the extension?

</comment><comment><USER32> Can I make a backup and export/import my bookmarks here?

</comment><comment><USER33> The project is great! I think it needs to Machine Learning...

</comment><comment><USER34> jfyi: site is broken. Apparently requires third party cookies.

<comment><AUTHOR> It has no links to any third party other than Google Analytics.

<comment><USER34> This is a very strange case.

      policy                 | outcome
      </comment></comment></comment><comment></comment><comment></comment><comment>-----+</comment><comment></comment><comment></comment><comment>--
      deny all cookies         BAD white screen
      allow first-party-only   BAD white screen
      allow all cookies        GOOD working site

I think it has something to do with the embedded youtube video.</comment>


Ask HN: Any Open Source Projects Looking for help from College Students? - <AUTHOR>

So, I have to admit, I'm kind of asking this question selfishly.  A friend and I are taking a course that requires work on a serious project as part of our Software Engineering minors, and the forward-looking faculty of the S.E. department is looking to try out some open source stuff (a similar project of much smaller scope (not the whole course) has been very successful in a prerequisite course to this one).
We'd need to be closely involved with a 'client', basically someone who wouldn't mind the overhead of laying down some goals and stuff and who would be willing to interact (though not handhold or anything near it) throughout the process.  Many larger open source projects have these kinds of people already (specifically David Humphrey at Mozilla).
More generally though, I believe this to be a good way of getting college students more involved in open source projects, and wouldn't be surprised if other HN students jumped at the opportunity, so feel free to comment if you're also an interested student.
That said, if you'd like more information about myself and my friend (to make sure you're not wasting your time) or about the minor and related courses at my school, feel free to email me (email@example.com)
Edited to add: We're talking about small groups of students as part of a class.  In this case, we're referring to two students, but one can imagine groups of 2-5. <comment><USER2> I worked with David on the Mozilla Education project. Here's my two cents.

It's easy to put out the call for volunteers. It's hard to cope with the deluge of people who want to help.

Code bases are complex and/or large in any meaningful project. Even skilled programmers may take time to get up to speed. Core developers have limited time available to answer questions. (People don't scale.)

For someone working outside of a classroom, this may be fine. They aren't on a schedule and can claw their way into a community over time.

But if you plan to unleash a classroom of students on an open source project, what you really need is an instructor who operates at or near the level of a core contributor to that project. The instructor is the one who bears the overhead of scaling up developer time by funneling student questions into a high signal to noise stream.

Mozilla is a bit unusual in that they actual pay someone (David) to do that.

I know instructors have attempted to replicate this model with other large open source projects, but it hasn't been a success. Attempts I know of to work with openoffice or the Eclipse Foundation didn't really go anywhere. RedHat/Fedora might be a good place to look. Try to get in touch with Greg De Koenigsberg there.

<comment><AUTHOR> Up for the info.

The difference here is that the only schedule we're under is to have commits to the code base by the end of the semester. Though this is more structured than some guy's side project, it comes with the benefit of deliverables being a necessary part of passing the class.

Beyond that, in this particular case, we're talking about two individuals who've both kind of worked our way into code bases before. Specifically, we both made small patches for the Mozilla code-base as part of the pre-requisite course [1] and I've been doing some research coding that's involved a lot of reading and manipulating linux network internals; tools like LXR and MXR have been invaluable in getting there.

[1] Regarding the pre-requisite course, there's an open source project to be done every semester. Students work in groups of 2. Last semester, patches were made to Firefox, Chrome, Pidgin, FreeCol, Scala Testing Suite, and the Scala Eclipse plugin. I'd be happy to talk more about this if interested, but it was a really powerful thing when it came to learning how to get into a code base and write production code.

<comment><USER2> It's really important to know at the start of the semester what projects will be wanted and needed. Students may have their own ideas for what they want to do, but it's so much easier to get the ear of a developer when you are working on something they want. This is critical if you need to get something committed.

Another commenter mentioned Google Summer of Code. The projects that are successful for gsoc are the ones where students and mentors did a lot of talking about what the community wants before submitting a proposal.

<comment><AUTHOR> One thing we learned in doing the open source projects in the prior course (I took then TA'ed it) is that you kind of just pick up whatever tickets the project has laying around. In this case, we're definitely looking for a "Please do X, Y, and Z" situation. So we're just looking for an X, Y, and Z type thing that might fit with our interests; not trying to squeeze our interests into a project.

<comment><USER3> A big part of admission into Google Summer of Code is having a good list of suggested projects.

</comment></comment></comment></comment></comment><comment><USER4> This is done by hundreds of projects every year--often quite successfully-- through Google Summer of Code. I've been a mentor for GSOC for two years.

If I understand you correctly though, this is a case of a whole classroom forced into a single project as opposed to a few students in each one. This creates a massive management disaster and many other issues:

1\. Coding for open source works best when you're interested in the project you're working for. If you force everyone to work on one project, many people won't be interested, and in my experience as a manager/leader of an open source project, such people are an utter waste of time. Of course, it's not their fault they were assigned to something they're not interested in.

2\. I've educated quite a few people in the full inner workings of our codebase. But it's one thing to mentor one or three people; it's another to mentor twenty.

3\. Most projects don't have enough work for twenty people. Assigning a ton of people to one task won't get it done faster, and assigning everyone a separate task will just make the load on the mentors/developers absurd.

4\. The single biggest problem with these types of systems, including GSOC, is the problem of ensuring that code gets merged at the end of the development period. Many students will simply disappear, leaving behind huge patches with nobody to maintain them. For example, the ffmpeg project has suffered greatly from this, with many feature patches taking years to merge and others simply languishing for eternity with nobody to finish them off.

I have mentored many students for my project, both in GSOC and otherwise. I had one student who simply came to me one day and said that he wanted to learn the codebase: so each day he took one module and learned how it worked, asked me questions about it, and studied until he thought he understood it--the I quizzed him. After about two weeks, he had a pretty good background in most of the program. He has since become a significant contributor.

My policy is that _anyone_ who wants to learn can ask questions and get answers in their quest to understand how things work: this was how I became an expert, so it's my obligation to pass on my knowledge to those who want to do the same.

I could do great with a few highly interested students. But I wouldn't even be able to come up with enough tasks for a whole class, let alone the resources to teach them all without a classroom. My suggestion would be to let students pick their own open source project, or some other method of splitting students between projects, to avoid dumping an entire class on one project.

<comment><AUTHOR> We're talking in this case about a very small group (2).

<comment><USER4> That would be absolutely great (I see you've updated the original post for clarification). I, and probably most other developers, would find 2 far more manageable than 20. It would also be a nice way to have a GSOC-like program during a portion of the year in which GSOC isn't running.

(For information's sake, my project is x264, and if someone is interested in applying as a student, we can be contacted at #x264dev on Freenode.)

</comment></comment></comment><comment><USER5> For undergraduate research, me and a friend made a recommendation engine web service (very similar to Directed Edge) using Python + Tornado. I've put it on the back burner because other priorities necessitate my attention for now. But I certainly wouldn't mind help.

I've implemented a recommendation algorithm using a modified version of TANGET, but it is untested. I'd love it if someone with more knowledge in ML than I stepped in and worked on it. I wouldn't even mind if they completely scrapped my algorithm and made a new one.

I think this would be a good opportunity for anyone interested in ML because everything except the recommendation algorithm is decently solidified: it includes several tools for testing, and it exposes everything through a simple REST API. Theoretically, it would just be a matter of dropping in your algorithm and seeing how it goes. Practically, however, I must warn that code comments are ridiculously sparse and there isn't a single unit test, because I'm a terrible person. There is, however, a decent integration test suite and some solid documentation.

It is available here: <http://github.com/heliumpigs/snowball>

These are also several related open source projects that we made and our project depends on:

* A tool for running blackbox tests on REST APIs: <http://github.com/heliumpigs/catnap>

* A key-value store built on top of MySQL (inspired by FriendFeed's use case): <http://github.com/ysimonson/scarecrow>

* Some useful stuff for Tornado: <http://github.com/ysimonson/oz>

Email me if you're interested (info in profile). PS: I'm posting here in case anyone else is interested.

</comment><comment><USER6> I took a course like this a couple years back and actually started an open source project through it. My group found a local organization who was interested in using the software we had in mind after and they served as our "client". So, if you have any ideas you'd personally like to work on, perhaps you could take that approach.

Since then I've been the client for student groups as well; we had a student group last semester work on an experimental component of the software I wrote when I took the class. Having served in both roles (student and client) I have a good bit of advice on strategies for this type of course (hint: it's totally different than any other group project and most personal projects you've likely done), but it doesn't really belong here. Feel free to contact me via email if you'd like to chat.

</comment><comment><USER7> HFOSS might be interesting, they work almost exclusively with students: <http://hfoss.org/>

<comment><USER8> To summarize: HFOSS is an organization that helps get students (and hopefully, soon, others) involved in FOSS projects that have humanitarian goals/benefit society in some way.

If you're looking for major, well-established projects, we've worked with the Gnome Accessibility Project, OpenMRS, Sahana, and a few others I'm forgetting right now.

We also have some projects we've started that are primarily student-run at the moment: POSIT (posit.hfoss.org -- Android app for mobile search and identification) and Collabbit (collabbit.org -- RoR webapp for emergency management).

I'm not sure what capacity right now the various projects we're involved in have for taking on new members, but I'd be glad to put you in touch with people you can ask.

I was an HFOSS summer intern this past summer, and I'm now on the steering committee. Feel free to get in touch (e-mail is in my profile) if you're interested or have questions.

</comment></comment><comment><USER9> There's a whole host of under supported and underdeveloped Drupal projects that could certainly use some love.</comment>


Hunting the Nearly-Invisible Personal Website - <AUTHOR> https://cheapskatesguide.org/articles/personal-website-hunting.html <comment><USER2> I run an email newsletter[1] that aims to highlight the interesting content found on personal blogs. It's a single link every other day to something interesting, the kind of blog posts that you come across every once in a while that really make you think. The overwhelming feedback is that being able to read the kind of non-viscerally-targeted news and analyses that aren't easily found online is incredibly valuable.

[1] [https://www.thinking-about-things.com](https://www.thinking-about- things.com)

<comment><USER3> This looks really interesting! Is it possible to see a sample of previous emails? Are they just links or is there a comment describing them as well?

Getting another email 3-4 times a week is a big commitment, and it would be nice to get a sampler of what we're signing up for

EDIT: The website also says that it's a link per day, but your comment says "every other day". A daily link would be an even larger commitment

<comment><USER2> Each email contains the article's title, the genre, and an extended excerpt.

I'm not sure how to link to previous emails, but here is a sample of previous links: [https://mix.com/thinkingaboutthings](https://mix.com/thinkingaboutthings).

It started out as an every day email, but readers told me that every other day would give them time to read the articles.

<comment><USER4> I enjoyed the first post I read from this list [1], so I've signed up for the newsletter. But I do take umbrage with some of what it says! When someone asks "Was Brontosaurus an herbivore?" the right answer would be Yes even if brontosaurus as a category of dinosaurs had been removed. (It's still a valid genus name, so the point is doubly wrong. [2]) It is clear that if someone asks about brontosaurus, they mean the animals whose bones were called brontosaurus bones, which were in fact herbivores. The only other possible thing they could mean is "the well-known (but non-factual) dinosaur called Brontosaurus" which is an herbivore in much the same way that a unicorn is an herbivore.

Similarly, the author seems to mistake the difficulty in the question of "What country was George Washington born?" which is primarily the question of what does that even mean? The country that the spot of his birth became or the country which ruled the spot of his birth at the time? In fact, I'm not even sure what answer the author _thinks_ is correct. Washington was a British subject (citizen? not sure) at birth but the "clue" the author provides seems to try to hint that Washington was born "in the US" whatever that would mean prior to the US's existence.

Nonetheless, I stand by the author's overall sentiment that facts should be connected together and not simply memorized, and the other examples were good.

[1] [https://thelastpsychiatrist.com/2009/07/was_brontosaurus_a_h...](https://thelastpsychiatrist.com/2009/07/was_brontosaurus_a_herbivore.html) [2] [https://en.wikipedia.org/wiki/Brontosaurus](https://en.wikipedia.org/wiki/Brontosaurus)

<comment><USER5> The only times I've ever seen the question "In what country was George Washington born?" it's always been a trick question with the answer "hah hah, it's Britain I bet you didn't think of that!" or some variation thereof.

<comment><USER6> But he wasn't born in Britain, any more than someone born today in Gibraltar or Montserrat would be. He was born in Virginia, a British colony.

He was an officer in the British colonial army before he became a traitor and a revolutionary, though. That's fairly well known so maybe the "trick question" is that he was actually born in the modern day US?

<comment><USER5> I'm not saying the people with the trick question are accurate, I'm just saying that's the way I've ever heard it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I really enjoy the articles put out on this website, as well as the points the author raises in each. I always enjoy seeing it appear on HN.

A query though - Is it possible to have some verification of the "top 100" personal sites claim? For example, years ago if you searched for "Sumerian gods" \- you would get all manner of results, but nowadays you will always get Wikipedia as the top link, junk mixed in, and then other factual sources if you keep digging.

Wikipedia having top spot is not always necessarily a bad thing because ultimately most people searching likely want a factual source - or at least a source they trust. However, as a result of the two algorithms (and no doubt many more) we have a bunch of "junk" links in between the top link and the other interesting links. Even Britannica ranks lower than the junk links.

What I mean by "junk" links is the "Top 10 Best Sumerian Gods", etc. These frequently contain content lifted from other sources - including each other, spam-like advertising, and simply prey on the search engine's algorithms to get on to the front page beating the interesting content down into pages 3,4,5 and beyond. There's entire sites devoted to "how to" game the search engines, as is to be expected with any automated system.

Yes, the algorithms could be better - Britannica and other factual sources shouldn't be below "Top 10" lists, but so could the ethics of those who run sites purely for advertising revenue.

Conversely, better results are shown on page 1 for "Elizabeth I".

<comment><USER8> > What I mean by "junk" links is the "Top 10 Best Sumerian Gods", etc. These > frequently contain content lifted from other sources - including each other, > spam-like advertising, and simply prey on the search engine's algorithms to > get on to the front page beating the interesting content down into pages > 3,4,5 and beyond.

Better known as chum: [https://www.theawl.com/2015/06/a-complete-taxonomy-of- intern...](https://www.theawl.com/2015/06/a-complete-taxonomy-of-internet- chum/)

</comment></comment><comment><USER9> Much of my personal blog is actually ranked on Google for terms. I tend to keep my notes in my blog, I share it on HN and Reddit.

It's important to develop a personal brand, but also to share knowledge. My personal, unquantifiable goal, is saving a million man hours through my blog posts. So many things are implemented or explored, but never shared. Knowledge in a vacuum is useless to society.

I wish more people would do this (write and attempt to rank content), it's what makes the internet revolutionary (not the memes or messages).

<comment><USER10> I actually would write more, if people would read it.

Unfortunately, if I write a blog on my personal website, nobody is going to find it. And I don't like Medium for their policy of forcing people to paywall their content in return for visibility.

If I post a link to a blog post on my website to Facebook, Facebook downranks it and doesn't show it to most of my friends (seriously, WTF).

The only thing I can do is post the actual text on Facebook, if I want people to read it, but there's a limit on post length, and in-line media isn't supported.

<comment><USER11> I don't write much on my blogs nowadays, but that's mainly because I lack inspiration. For the past few years my 'blogging' has mostly been long rambling rant-thoughts about obscure stuff on Facebook: it gives my friends something to chuckle about.

When I do write proper blog posts, the lack of an audience doesn't bother me anymore. It is (as they say) what it is. It's also liberating: I can write what I like without fear of reprisal or the need to justify myself - an online occasional diary, if you like. Last year I built a new website to collect together all my writing work. I included some blog functionality in it and rescued a bunch of posts from old Blogger blogs. It was fun to read them all again[1].

I, too, loathe Medium's business model. If I see a potentially interesting post here on HN which links to that site, I've taught myself not to click the link.

[1] - [https://rikverse2020.rikweb.org.uk/blog](https://rikverse2020.rikweb.org.uk/blog)

<comment><USER12> I thought I read somewhere in the HN comments that Medium articles are automatically down voted by the algorithm. I rarely see them. But I might be mistaken.

</comment></comment></comment></comment><comment><USER13> my father (75yo) still obsessively updates his personal website (using FrontPage!) For years he was proud that his article on Hill's Criteria of Causation was the top hit on google for a search on "hills criteria" or similar. At the time Wikipedia had no article on it (he's now #4 since wikipedia has a article as well as a couple of medical sites.)

His site has the look of a personal webpage from 1997, but since retiring, he still works on articles and publishes them on his site. His site is a mix of scholarly articles (Anthropology), old syllabi, and personal stuff.

<comment><USER14> That's great!

Tools are just means to an end and overrated compared to the actual end.

Changing quarterly to the "most efficient" tool is a lot of work over time.

Sticking to one seems to get things done.

And static websites save you the headaches of security - I think your father can't imagine what it means having to patch a critical bug in node/php/mysql/whatever during your vacation when travelling.

And I guess, he may not think of this kind of publishing as being for the "technically minded" or "tech-savvy" ones only.

And the stuff can be read in ages to come.

</comment></comment><comment><USER15> I recently setup a personal website. My intent was to migrate a few old blog posts from WordPress and, more importantly, make my notes public. After trying a bunch of note-taking apps, I realized that most of my private notes didn't contain any private information, so I thought why not just make them public as-is.

My setup is (almost) free, mostly built on open components (so, no vendor lock in) and pretty low-latency. See if you'd like some inspiration on how to setup something similar for yourself: [https://ketanvijayvargiya.com/posts/58-setup- blog-and-email-...](https://ketanvijayvargiya.com/posts/58-setup-blog-and- email-on-custom-domain-for-almost-free/)

<comment><USER14> I also chose hugo a year ago with pretty much the same motivation, but meanwhile I may even go with plain html plus some scripts creating tag and overview list pages and no other tool at all.

I'm just sick of breaking updates.

Search and comments are radical: [https://blog.mro.name/2019/05/wp-to-hugo- making-of/](https://blog.mro.name/2019/05/wp-to-hugo-making-of/)

<comment><USER15> Search, yes, and I need to spend an afternoon to get that working. (From what little I've investigated so far, it seems like it'll be some work to get that to work.)

</comment></comment></comment><comment><USER16> Webrings are back :D Put your personal sites in a webring! :)

<comment><USER17> Funny timing, I just blogged about webrings on my personal website a few days ago: [https://merlinscholz.name/post/bring-back-the-old- web/](https://merlinscholz.name/post/bring-back-the-old-web/)

<comment><USER18> I have seen few people with webrings on HN as of recent. Hard to tell if it's gaining momentum or I am just lucky?

Example: I was reading [https://www.jefftk.com/index](https://www.jefftk.com/index) yesterday which also included webring.

<comment><USER19> My site is also using Drev DeVault's openring, which is a relatively new tool.

<comment><USER20> Random question, since your site came up: what do your kids use to make their personal pages? Thinking of doing something similar with my 7-year-old and 4-year-old this fall.

<comment><USER19> They dictate and I type plain html + css. Sometimes they ask for complicated things (like when Lily first wanted polka dots) and I look it up.

Lily's Inxed page and RSS feed are from a script I wrote that does it manually: [https://github.com/jeffkaufman/webscripts/blob/master/lilyrs...](https://github.com/jeffkaufman/webscripts/blob/master/lilyrss.py)

I wrote about this some here: [https://www.jefftk.com/p/helping-the-kids- post](https://www.jefftk.com/p/helping-the-kids-post)

<comment><USER18> I loved pony podcast lol.

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> There was a huge push for "new coders" to start their own blogs about problems they encounter and such, especially as part of the bootcamp that I was working for. I wonder if that is still a thing.

<comment><USER22> I wonder if that's for resume padding? People post their blog entries to LinkedIn as social proof of their skills pretty frequently.

<comment><USER23> Even though the technical skills I see explained are often quite basic, done well it's valid proof of whether they can explain something in writing, which comes up at my work a lot.

</comment></comment></comment><comment><USER24> After reading that post, with the pink color background, and then hitting the back button to come back here. Hacker News looked quite green for a few seconds. It was an interesting experience.

<comment><USER25> Holy crap! I thought my phone had messed up!

</comment></comment><comment><USER26> I love this.

I love finding out-of-the-way personal websites.

A while back I did my own implementation of "lets make hard-to-discover things slightly more discoverable"

Every time you visit the website, you get a different personal website, as submitted by hacker news users a while back:

[https://random-hn-blog.herokuapp.com/](https://random-hn-blog.herokuapp.com/)

</comment><comment><USER27> I'm tangential to the indie comics scene and it's interesting seeing a personal (not portfolio) site revival in those circles in the last six months, particularly with NSFW artists getting booted from patreon/instagram/twitter. Being able to host your own works on a place that'll never be taken down according to whims of legislation is ... massively reassuring.

Set up a links page for a few of them, if anyone's curious in a personal site scene that's different from tech: [http://www.kradeelav.com/link.html](http://www.kradeelav.com/link.html)

</comment><comment><USER28> There are a lot of good personal websites people are listing. A lot of them probably only update once or twice a month. That's why it's so important to use RSS!

[https://battlepenguin.com/tech/rss-the-original-federated- so...](https://battlepenguin.com/tech/rss-the-original-federated-social- network-protocol/)

Sure you can just go to HackerNews and see what people are submitting, but what if you want to be the person who submits that amazing post for those sweet sweet Internet points? Just use one RSS reader site and fill it with EVERYTHING. Load random person OPML from Github, blogs and whateve.. and every once in a while, scroll through the titles, see if anything is remotely interesting, and if it turns out to be gold, put it on HN or your Mastodon account or Lemmy or (barf) Reddit or whatever.

Not everyone is gonna have your mad RSS skills. Other people have real lives and can barely digest what Twitter and Facebook feed them.

And by scrolling through stuff, you're not getting doused by those bullshit algorithms. You're in control of how you view, sort and filter your feed (and maybe use another RSS reader or one that supports profiles for the important stuff).

</comment><comment><USER29> Site seems to be down, archive link: [http://web.archive.org/web/*/https://cheapskatesguide.org/ar...](http://web.archive.org/web/*/https://cheapskatesguide.org/articles/personal- website-hunting.html)

<comment><USER30> Congratulations. The hunt is on!

And the game... is afoot.

<comment><USER31> Tally-ho! I actually get many personal sites with my web searches, but maybe that's because they are both narrowly targeted and expressed in keyword form?

</comment></comment></comment><comment><USER32> I found this huge list of personal blogs some time ago, it's a great source in case that's something you're looking for: [https://blogs.sirodoht.com/](https://blogs.sirodoht.com/)

I don't know how sirodoht manages it ¯\\_(ツ)_/¯.

</comment><comment><USER33> I remember the good old days when personal websites ruled the web. I even found mine listed in the Netscape daily "rants and raves" directory for jokingly professing my undying love for Lindsay Wagner.

That listing led to a local newspaper reporter contacting me for a story about people who had web pages. I had a nice big quote in the article about how this new medium broke down the barriers to publishing and allowed all us common people to have our own voice broadcast out without needing to play the big publishers games or having to worry about the finances involved in publishing content.

I suppose much of that is still alive today, though definitely yoked by the social media companies' stranglehold on content publication by the masses.

<comment><USER34> > I had a nice big quote in the article about how this new medium broke down > the barriers to publishing and allowed all us common people to have our own > voice broadcast out without needing to play the big publishers games or > having to worry about the finances involved in publishing content.

Many of us forgot that technical knowledge was a barrier to online publishing. Even if you used a program that made website development as simple as using a word processor, you still had to figure out how to secure space to host the site and how to upload the site. Those applications simplified that as well, yet all of those simplified steps still led to many books to guide people through the process.

Yes, there were other factors at play. Social media and biased search engine results were certainly part of the reason.

</comment></comment><comment><USER35> Did anyone else read this in David Attenborough's voice?

<comment><USER36> The style of writing reminds me of the works of Fravia, who used similar imagery in his searching guides.[1]

1\. [http://biostatisticien.eu/www.searchlores.org/indexo.htm](http://biostatisticien.eu/www.searchlores.org/indexo.htm)

</comment></comment><comment><USER37> wiby.me - a search engine for websites similar to what OP is looking for

<comment><USER38> wiby.me appears to be a search engine for web pages, not websites. On their submission form, if you are submitting a blog they ask that you submit link to a specific post, and not the index. That was enough to dissuade me from submitting my personal site. I guess I just don't get it.

<comment><USER37> Yes its not everyone's cup of tea

</comment></comment></comment><comment><USER39> In Latin America we had geocities in the 90s which made it very easy for people to create their own website, then myspace arrived and as pointed out in article,the herd started moving out there.

</comment><comment><USER40> I added a Tor hidden service version of my personal website after reading this article, with the Onion-Location header for the regular version.

</comment><comment><USER41> Reminds me of an aggregator, [https://diff.blog](https://diff.blog)

</comment><comment><USER42> Someone should make a search engine that only indexes personal websites, blogs, etc

</comment><comment><USER43> Microshaft</comment>


A Start-Up Moves Teachers Past Data Entry - <AUTHOR> http://bits.blogs.nytimes.com/2013/12/23/a-start-up-moves-teachers-past-data-entry/?_r=0 <comment><USER2> Clever expanded through Florida pretty rapidly as I was working with them earlier this year. I already wrote about my great experience with them at [https://news.ycombinator.com/item?id=6856714](https://news.ycombinator.com/item?id=6856714), but again I wish them the best of luck because I've seen their potential to get in a position as a platform to really do some revolutionary stuff to improve the way we educate our children.

</comment><comment><USER3> Co-founder of Clever here. If anyone is excited about building APIs and improving education, we have a few positions open:

[https://getclever.com/about/jobs](https://getclever.com/about/jobs) (full stack, devops, security..)

Also, feel free to drop me a note if you're interested but would like to get more information (tyler@).

<comment><USER4> Is this for k12 only or are you planning this for higher ed? @kipinhall, we are pivoting towards professor centric app, so having the access to student info would be great. we can talk more if you're interested, ping me @agileseeker

</comment></comment><comment><USER5> Clever is great. I've had the pleasure of working with them on behalf of some clients. Their company and API is a breath of fresh air in a space that has historically been very complicated and messy.

I would love to see a Clever in the finance space...requisitions, invoices, purchase orders and the like.

I do foresee a problem with Clever. Their API is almost too simple. It would be trivial for a school ERP provider to set up a 'Clever compatible' API (since an API cannot be copyrighted) and either undercut the price or just offer it for free to education software vendors to get that nice demo room 'We are compatible with over x many applications for students, teachers, parents and administrators!'

I hope that doesn't happen but the threat does seem to be there.

</comment><comment><USER6> This is a perfect example of an "unsexy problem" that needed to be solved. With so many people building education apps, it's great that someone decided to take the time to work out some of the unsexy underlying issues in the space that were slowing the pace of innovation. Standardizing and surfacing educational data may not be the sexiest work, but it can spur the pace of innovation across the entire domain.

</comment><comment><USER7> This is great, if....the school software vendors adopt it as a standard and allow their systems to be Clever-enabled.

I work for a large school district and a large majority of our vendor solutions come with their own proprietary, locked-down technologies. When queried, some of these vendors see the writing on the wall and say they are working on integrating with Clever while others keep their heads stuck in the sand while counting their millions of taxpayer dollars spent on overly- complex, un-flexible and un-interoperable solutions.

<comment><USER8> Schools need industry mandated open standards that force the systems to inter- operate. This isn't it.

</comment></comment><comment><USER9> Great idea! I believe that teachers feel like data is mostly about grading them and their students, and not about improving the educational experience. Some "Get it" but most either lack the tools, the support, or the mindset.

<comment><USER10> The logistics behind keeping track of 100+ students a trimester can become daunting. Most tools available to teachers are wanton.

Then throw in classes with 600+ students requiring multiple teachers. Trying to align fairness (rubrics), plagiarism (tools like Turn-it-in) and the uniqueness of teaching style is difficult.

We'll, I think it is more about teachers being overloaded with the minutiae of data that causes them to lose focus of the bigger picture (education). Actually, in my opinion, education has lost focus on the bigger picture of education and may have never really had it.

<comment><USER11> > Actually, in my opinion, education has lost focus on the bigger picture of > education and may have never really had it.

This. Solutions like these are good in that they'll help schools get the space they need to be able to consider good reform, but said reform isn't a conversation that Americans seem capable of having.

</comment></comment></comment><comment><USER12> "The different vendors pay Clever, and Clever offers the service to schools for free."

This is the sole reason this will never work. I've been in education and developing education software for well over a decade now, and no one I know (vendors) want a single provider monopolizing the game in this way. In the UK at least, we (vendors) are struggling to remove the strangle hold of the monopolizing few; namely Capita and Serco.

But all that said, I do wish you the best and hope you find some solution that works. Interoperability of school data/systems is a giant PITA, which I've spent way to much of my life on.

</comment><comment><USER13> Another interesting disruptor in the education space is: [http://digedu.co](http://digedu.co)</comment>


The asteroid that wiped out most life on Earth allowed microbacteria to thrive - <AUTHOR> https://edition.cnn.com/2020/02/04/world/asteroid-bacteria-killed-dinosaurs-scn-trnd/index.html <comment><USER2> "almost took all of life on Earth along with it"

Absolutely false. The _Permian_ extinction was far closer to this, but the K-T event didn't even purge _mammalian_ life from _North America_ , let alone "almost all" life in all forms.</comment>


MLRISC – A framework for retargetable and optimizing compiler back ends - <AUTHOR> http://www.cs.nyu.edu/leunga/MLRISC/Doc/html/INTRO.html <comment><USER2> It isn't listed on that somewhat-old page, but as part of the Manticore project we (primarily Mike Rainey) also added an x86_64 backend to MLRISC:

[https://smlnj- gforge.cs.uchicago.edu/scm/viewvc.php/MLRISC/?...](https://smlnj- gforge.cs.uchicago.edu/scm/viewvc.php/MLRISC/?root=smlnj)

In the long run, we on Manticore - like most other projects - will probably give up the flexibility of MLRISC and contort our code generation to work with LLVM. It's hard to keep adding new instructions to MLRISC!

<comment><USER3> _It 's hard to keep adding new instructions to MLRISC!_

Could you expand on this? Based on the problem statement page, this seems to be the exact problem MLRISC tried to address. Is there something that keeps it from working well in practice?

<comment><USER2> It just takes time to do, and given that it's been a long time since there were any "infrastructure" grants to handle student or faculty time to support adding those instructions, adding and debugging them just takes time that nobody has to take out of doing research.

It also doesn't help that everybody who has worked on MLRISC has long since moved on to other projects, so when you find what you think is a bug in something core, there's really nobody to chat with about it, get feedback on where the right place to make a fix is, etc.

<comment><USER3> Ah, thought you were talking about some technical limitation. That's a shame, one would think an alternative to LLVM that is not so C-specific would find more use.

</comment></comment></comment></comment><comment><USER4> Is this still maintained? It seems SML/NJ still uses it, do they track any sort of development of it? Are they the main supporters of the project? The website seems to date to 2003, and refers to architectures like Itanium as upcoming. It also doesn't mention x64 at all.

<comment><USER5> Looks like it's still part of the SML/NJ tree. The last commit was in 2013: [http://smlnj- gforge.cs.uchicago.edu/scm/viewvc.php/MLRISC/tr...](http://smlnj- gforge.cs.uchicago.edu/scm/viewvc.php/MLRISC/trunk?root=smlnj&view=log)

<comment><USER6> [http://smlnj.cs.uchicago.edu/dist/working/110.78/MLRISC.tgz](http://smlnj.cs.uchicago.edu/dist/working/110.78/MLRISC.tgz)

*edit, `cloc` doesn't understand the sml/nj set of file types

Is about 100kloc of .sml

</comment></comment></comment><comment><USER7> Personally I'd like to be able to use a system that has human-readable C as a backend, along with the idea of 'semantic C' that I've discussed a couple times in the past. Anyone with me on this?

Past comment: [https://news.ycombinator.com/item?id=8283025](https://news.ycombinator.com/item?id=8283025)

<comment><USER8> You might find an alignment of the vision with Nim [http://nim- lang.org/](http://nim-lang.org/) . The have done a C backend as for their language, and the language appears to have the semantic properties you have mentioned...

from the site:

" ... •Macros can use the imperative paradigm to construct parse trees. Nim does not require a different coding style for meta programming.

•Macros cannot change Nim's syntax because there is no need for it. Nim's syntax is flexible enough.

•Statements are grouped by indentation but can span multiple lines. Indentation must not contain tabulators so the compiler always sees the code the same way as you do "</comment></comment>


A Review of Google's Colab and CoCalc for Collaborative Data Science - <AUTHOR> https://www.forbes.com/sites/gregoryferenstein/2019/08/18/a-review-of-googles-colab-and-cocalc-for-collaborative-data-science/#4ded4ec36f02 <comment><USER2> "Colab is still a relatively closed environment; at one point, I wanted to add a Python package and couldn't" \- quite a big drawback for a data-science tool. CoCalc seems interesting though.</comment>


When Patents Attack ... Part Two - <AUTHOR> http://www.npr.org/blogs/money/2013/06/07/188370495/when-patents-attack-part-two

<comment><USER2> Interesting story of how one patent was invalidated.</comment>


Let's Build an MP3 Decoder - <AUTHOR> http://blog.bjrn.se/2008/10/lets-build-mp3-decoder.html

<comment><USER2> In the same genre and likewise in Haskell, I recommend Exploring JPEG:

<http://www.imperialviolet.org/binary/jpeg/>

On the decoder side, for someone who has basic familiarity with compression and signal processing, the obstacles in understanding MP3 are polyphase filter banks and the mixed discrete cosine transform, which are not much explained in this article. They both take advantage of alias cancelation properties (in the frequency domain for the filter bank and in the temporal domain for the MDCT) that in my opinion are pretty subtle. The rest of the components in an MP3 decoder have close analogues in image compression (e.g. joint stereo is a decorrelation transform that is analogous to going from RGB to a luminance- chrominance color space), so they shouldn't be difficult to grasp.

For those trickier signal processing parts, Pan's IEEE article A Tutorial on MPEG/Audio Compression is a great place to start:

[http://www.ee.columbia.edu/~dpwe/e6820/papers/Pan95-mpega.pd...](http://www.ee.columbia.edu/~dpwe/e6820/papers/Pan95-mpega.pdf)

</comment><comment><USER3> Wow, that takes me back. One of the first "serious" programs I wrote was an mp3 decoder in pascal. It took about 30 minutes per minute of audio to do the decode on my p90. I felt like king of the whole world.

<comment><USER4> Yeah, it is a good thing is that you can do it in essentially any language and it will be fast enough for realtime today.

At least as long as you design it reasonably well.

<comment><USER5> Bubble sort!

<comment><USER4> Javascript is the new bubble sort?

</comment></comment></comment></comment><comment><USER6> Great read! (although I admit I'm not completely done it)

I think the whole process of taking something audible and "real" (like sound) and digitizing it is simply amazing.

</comment><comment><USER7> I don't think the "A Haskell tutorial" part of the submission title is accurate. It's an mp3 tutorial... which happens to use Haskell. Not everything which uses Haskell is specifically about doing so. :-)

<comment><AUTHOR> Was that actually in the submission title here at HN? I didn't put that into it and it's not there now, so if it was.. we know an admin was fidgeting with it! :-)

</comment></comment><comment><USER8> What does it mean when a codec is "lossless"?

<comment><USER9> This is in no way rigorous, but hopefully the analogy helps.

Imagine you want to encode something like y = 2 * sin(2 * x) + .1 * sin(10 * x) to save space.

[http://www.wolframalpha.com/input/?i=sin%28x%29+%2B+.1*sin%2...](http://www.wolframalpha.com/input/?i=sin%28x%29+%2B+.1*sin%2810x%29)

That is composed of two different sine waves added together - one low frequency, large amplitude and one high frequency low amplitude. That can be encoded two different ways - lossy or lossless.

A lossy encoder gets rid of unimportant data and keeps a "close enough" representation of the original. In this example, .1 * sin(10 * t) is a minor component of the overall signal (plot them separately if you need to compare the difference) so the encoder chooses to delete it and only save 2 * sin(2 * t). In a real world sound, this would be like throwing away noise that is so high pitched we can't hear it, or is so quiet we can't detect it. A real encoder has to decide what the "small enough it can be deleted" threshold is, and it's rarely black and white.

A lossless encoder looks at that signal and thinks "there has got to be a more efficient way to store that data". They are both sine functions, so that doesn't need to be repeated twice. "x" is completely unnecessary, because it knows the sine functions are dependent on some variable. So, it could write out something like "sin (2,2) (.1,10)". All of the original data is still there, if whoever receives the data (the decoder) knows how to interpret it.

<comment><USER10> Note: A fourier transform is never lossless - it's an approximation (usually a fairly good one though).

<comment><USER11> The Fourier transform itself is an exact mathematical transformation with an exact inverse transform. There's nothing lossy about it.

<comment><USER10> Mathematically, you are correct. Practically you are not if you consider the transform source.

<comment><USER2> What do you mean? If the original source is analog and sampled below its Nyquist rate in the analog-to-digital conversion, the process is indeed irreversible. But that all happens before any transforms from the time domain to the frequency domain are in play, so it's a separate issue.

Beyond that, discrete Fourier and cosine transforms as usually implemented are not fully reversible because of loss in precision. A colleague of mine blogged about the issue in the context of Haar transforms a few years ago: <http://cbloomrants.blogspot.com/2008/09/09-08-08-1.html>. By decomposing an orthogonal transform into shears as explained by Charles, you can design reversible fixed-precision variants of the DCT like binDCT: [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.8...](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.8531)

<comment><USER10> Sorry it is a separate issue - I should have been more clear.

The original point the OP made was a bad example. Unfortunately I made a poor attempt at explaining that.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Using this codec would probably be illegal in some countries. I guess it is all right to play with it, but don't incorporate it in your applications.</comment>


Beyond the stack fallacy - <AUTHOR> http://jeremykooyman.com/beyond-the-stack-fallacy/ <comment><USER2> For me, the Blockbuster versus Netflix example seems to rewrite history. Blockbuster was focused on improving the video rental experience. Two night rentals and a liberal interpretation of "a day" were improvements over the local store. And compared to Netflix's subscription model and long lead time in the days when credit card transactions were messier and it was DVD's in the mail arriving in several days, the Netflix experience was less attractive than driving ten minutes up the road, picking a video, and watching it an hour later.</comment>


Free & Proprietary - <AUTHOR> http://mattmaroon.com/?p=400 <comment><USER2> Stallman's inability to see how damaging his rhetoric is to his cause is rapidly overshadowing any of his achievements.

I went to HOPE 2006 in NYC a few years ago, and ran into him while heading to a lecture about Asterix PBX use. As a huge admirer of GNU tools and the GNU/Linux operating system in particular, it was thrilling to finally get to meet one my heroes. For about a few seconds.

I shook his hand and somewhat shyly asked him to sign one of the few paper- based items I had in my bag, a copy of (surprise surprise!) PG's "ANSI Common Lisp". He refused outright, claiming it was not "free" in its licensing and printing.

I shit you not. The man is that much of an asshole.

I just goggled at him for a moment, and wandered away in a daze.

Don't get me wrong, I love his ideas. Information wants to be free. But to be so mindlessly pedantic about little things like what he is signing detracts from his cause.

<comment><USER3> To me the great irony is that FSF software isn't really free either - it just has its own restrictions that it prefers to others'. To me, FSF is synonymous with "hypocrite", and seems to have sprung directly from Stallman's own peurile bitterness, and not from anything so noble as what they claim.

Even if you like the FSF stances (and I have no problem with that), I think it's hard to argue that their idea of "free" is really, truly free as Stallman likes to pontificate.

 _I shit you not. The man is that much of an asshole._

After years of stories about interactions just like the one you described, interviews, and countless mailing-list flame fests, this should be perfectly obvious to anyone.

Let anyone think I'm picking on Stallman because of personality differences, here's another: Theo de Raadt. He is most definitely an asshole - but at least he's consistent, focused, and not judgmental.

<comment><USER4> So what's your definition of "free"?

I believe FSF code, as in GPL is free. There are four freedoms that come with it. The only restriction is that one can't deny others the same freedoms. You're also free not to use it.

I find it interesting that so many criticize RMS for his character and style. I find myself very tolerant of people who are very talented programmers. I think RMS is a pretty decent programmer. Emacs, GCC, ... have added a lot of value over the years.

<comment><USER5> _The only restriction is that one can't deny others the same freedoms._

The GPL is more restrictive than that. If one puts code online and says "do whatever you want with it," everyone has the same freedom to use it. No one _can_ deny anyone else the freedom to use it, short of blocking access to the server.

<comment><USER6> I think he meant to say "one can't deny others the same freedoms on derivative works".

<comment><USER5> That's a big difference, considering the difference between lawyers' definitions of "derivative" and everyday usage.

</comment></comment></comment></comment></comment></comment><comment><USER7> I feel compelled to say something here. I don't know that I'll be heard over the din, but so be it.

Stallman and Gates stand at two ends of a particular spectrum. The fundamental question is about what rights the users of a piece of software should have. On Gate's end the belief is that the users' right is simply to use the software. Stallman's belief is that the users' right is to use, redistribute, and modify that software. Modern copyright law falls in line with the proprietary side. The GPL is a hack leveraging that same law to guarantee that the users of software governed by it, or software derived from the same, retain the rights of use, distribution, and modification so long as they also abide by the GPL under which they recieved that software. The key point of the GPL is that it restricts recipients of the software from distributing derived works under licenses which restrict the rights of the users more than does the GPL. That is the key point of contention. It is a recursive conditional grant of license dependent upon propagating those rights with derived works.

The key point of proprietary software is that the copyright holder retains the exclusive rights of distribution and creation of derivative works. Copyright law grants broad powers to the author to restrict recipients of software from redistributing it or deriving new software from it. That's the mechanism by which copyright law operates. The intention of the law is to create a framework which encourages the creation of new works by securing those exclusive rights to the author. That exclusivity is not a natural right, but is a statutory one granted by Congress under the powers given it in the Constitution. Developers of proprietary software generally use those rights to ensure that they recieve payment in exchange for the use of the software. Developers of software released under the GPL use those exclusive rights to ensure that all future users of their software retain those same rights.

Disagreement over what the rights of the author are and what are the rights of the user generates the friction on this Gates <-> Stallman continuum. Most people fall somewhere in-between those two extremes. Stallman believes that it is a moral imperative to ensure that all users everywhere retain what he sees as fundamental rights. Gates believes that it is imperative that the authors retain the power to define what rights they grant to the users.

Is Stallman extreme? Absolutely. Is Gates extreme? Absolutely. But both of them are self-consistent and stand as useful measuring sticks by which to measure different approaches to copyright. Stallman may be an ass, but he's an extremely principled one. Gates may be a robber baron, but he exemplifies the power which is wielded via exclusive copyrights, and he stands to do a great amount of good in his philanthropical efforts. Both of them are talented technical minds who have pursued their goals passionately. Both of them have had a huge impact on the modern software landscape. Which of them is right? Personally I think that one needs to measure the results of their efforts to decide. And that's a very subjective and touchy subject which I won't go into here. You'll have to decide for yourself what approach is right for you as a developer of software. I think it's great that the choice is there to make.

Please note that all I'm writing about now is philosophy. I'm not going to touch practical implications yet.

If I have made a factual error, please respond and correct me.

</comment><comment><USER6> _It's hard to argue that the man who was the world's richest for decades could have somehow done better for himself or his shareholders, or the world at large._

Easy - if he had pushed Microsoft to release an open standard instead of .doc, .xls, et cetra, he would have done better for the world at large by leaving a competitive market for office products.

Another - if he had insisted IE6 were standards-compliant and open source, he could have saved companies in web development a whole lot of time and money, and done a lot more good for the world at large.

In the long run, this would also have been great for MS shareholders, as the short-term gains of dominating the office and web browser markets are offset by the long-term damage to the MS brand.

<comment><USER8> Lol. There aren't short term gains for dominating Office. There are billions of dollars per year for decades. Creating a competitive market would be the worst thing he could have done for himself and his shareholders (though probably a good thing for the world).

<comment><USER6> _Creating a competitive market would be the worst thing he could have done for himself and his shareholders (though probably a good thing for the world)._

That would be a great argument for legally enforcing (certain) software be F/OSS...

<comment><USER8> Well, maybe enforcing that once a proprietary standard creates a huge market and then nearly monopolizes it. I'm certainly not arguing in favor of monopolies.

</comment></comment></comment></comment><comment><USER9> > The market and the individuals who comprise it, rather than Richard > Stallman, should decide, as they have in the past, which software people > use.

Yes, although there's a footnote there: in winner take all markets, the externalities can drive people to feel 'forced' into choices. You can buy a car from whoever you want, pretty much - they're all interchangeable. But try living in the corporate world without .doc. It is finally starting to become feasible, but it's a tough, uphill battle.

That makes people frustrated.

<comment><USER10> The reason .doc is ubiquitous is because, at one point, MS had the best product and it was adopted by the market. There was no coercion--it was a choice between MS Word or a vastly inferior product.

Today, things are different. There are many wonderful office suites. But it's no good saying that we should restructure the pie as if office suites were new instead of old--Office is ahead because OO and iWork and whoever else were _years_ late to the game. If they continue to be superior, they'll gain market share in spite of MS's best efforts.

<comment><USER4> .doc a best product. Sorry no way. Word to this day cannot produce anything near as good as Tex. I daily watch long email threads of collaborators struggling to share .doc files written with different versions of Word on different platforms.

<comment><USER11> TeX may have had superior output, but its input methods have always sucked. At the period of time when word came to dominate there were no wysiwyg TeX tools and it was a real pain to include figures and images. Output formatting mattered if you were submitting a conference paper, but the other 99.999% of the population cared more about being able to get simple tasks done easily.

<comment><USER4> perhaps, one builds up a set of neat macros and using emacs it's quite workable. For mathematics, Word still can't touch it. Word is also all about constantly needing the next $500 version. It's not clear also that they ever got this wysiwyg thing correct. It seems to change the fonts all the time in arbitrary ways. Sorry, I'd rather memorize a bunch of tags and use emacs.

</comment></comment></comment></comment></comment><comment><USER12> Matt, I want to focus on the part of your argument that FOSS is related to Communism. First, let's define our terms. Hopefully this is not a false accusation, but it seems like you are using "Communism" in the way that conservative politicians and radio hosts use it, i.e. as a straw man political system that is assumed to be restrictive and contrary to free Democratic ideals.

Communism is too loaded of a word, but I think for our purposes "democratic socialism" is a suitable replacement. Democratic Socialism, successfully practiced throughout the world, and very compatible with the goals of many progressive Democrats in the US.

I will contrast Democratic Socialism with Market Liberalism. Market Liberalism is the idea that markets should be unrestricted and do not need to be regulated because they regulate themselves. However there seems to be a consensus among economists that this rosy rhetoric is just not true. The failure of this model may ultimately make the failure of European Communism look like child's play.

I think if I had to define the primary difference between Market Liberalism and Democratic Socialism it would the idea that society should be able guide and shape itself intentionally. This guidance is accomplished by making the structure of society be programmable by the people (instead of the structure being determined by blind market forces).

Market Liberals want to put the future in the hands of complex systems that are not directly related to any human values or guidance. That is the primary difference I think.

Their childish definition of freedom as being able to "do whatever you want" is simply a fairy tale. Freedom has more to with defining the constraints of government, via democratic process, such that the citizenry are maximally empowered, and minimally hampered.

The Market Liberals have no concept of the citizen or duty to cultivate community, the group-level. They only believe in the individual, the selfish gene/meme. They believe in a grossly misguided notion that markets optimize and automatically generate solutions, so that we don't need to choose our own direction as a society. It doesn't take a PhD economist to know how wrong this is. Computer scientists should also know how wrong the market liberalist model is-- optimization does not come for free! At least not in any reasonable amount of time. And as far as government is concerned there is such a thing as "too late".

So, Democratic Socialism does have a relationship to FOSS, though not a necessary one. FOSS shares a philosophy that works well with notions ranging from cooperativist economies (Libertarian Socialism) to Marxism, to plain old vanilla regulated capitalism. The philosophy of government that it clashes with is this permissive "let the market be free" philosophy, in which people can "do whatever they want". The reality of that system is not freedom for people but oppression of the weak by the strong, the gated fortress lifestyle, and gridlock on innovation due to the lower bandwidth of information exchange.

</comment><comment><USER10> This is a fantastic essay. I appreciate Stallman's work, but I find myself much more aligned with the likes of the OSI or Apache Foundation than the FSF. It is refreshing to see Stallman's philosophy intelligently challenged.

One rather large supporting argument the author overlooked: Stallman/FSF have appeared to largely reverse their stance on open standards; his/their views on OOXML and C# are incomprehensible to me. We could argue the technical advantages of ODF vs. OOXML all day, but the total sum of the philosophical difference between the two is zero.

<comment><USER7> I believe that the FSF's stance on the OOXML standard is that the standard is so unwieldy, obfuscated, and incomplete that it is infeasible for any group but Microsoft to implement it, and that that deliberate infeasibility is sufficient reason to exclude OOXML from being ratified as an ISO standard.

</comment></comment><comment><USER13> This probably isn't appropriate for posting here, but I'm out of ideas...

Does anyone have a contact email for mattmarroon.com? There's an infected iframe distributing malware in his Twitter Revisited post but I can't find a way to get in touch with him (no published emails and his whois is protected).

<comment><USER14> you could use his startup contact form - <http://www.draftmix.com/help/contact_us>

<comment><USER13> Thanks!

</comment></comment></comment><comment><USER15> The point about all else being equal, Matt would choose the free over the proprietary is a good one-- that's more or less how I feel as well.

Matt, if you're listening: do you pirate a lot of software? (I don't mean this as an accusation; I'm genuinely curious. If I had to guess, I'd guess no, but who knows? (Uh, you do). I also realize that there's a reasonably good chance that you won't want to answer "Yes, I pirate all of Adobe's products," or whatever, in public, even if it's true.)

Most people I know don't mind pirating software and don't think about DRM until it stops them from doing what they want. I think that's one reason that free software has, in many cases, failed to beat proprietary software.

</comment><comment><USER16> This Matt fellow needs to lay off the vitriolic rhetoric if he wants to be taken seriously by those he criticizes.

</comment><comment><USER17> I agree with most of this, but certainly not the line "It's driven the computer revolution, which is the most significant shift in technology"

Microsoft in my view completely stifled any innovation for ages with their monopoly and unethical business practices. We went backwards in some cases. If it weren't for microsoft I think a lot more innovation would have happened in computing.

Thankfully that's all changed now.

<comment><USER8> Do you agree that an order of magnitude fewer people would be using PCs? (I'm assuming that all proprietary OS monopolies are equal, since if MS were never born its possible Mac or IBM would have achieved what Microsoft has.) I don't see how 10% of the developers we have now, even in an all open-source world, could have created anything like what currently exists.

<comment><USER17> No we'd more likely be using GEM or DR-DOS which were both years ahead of what ms was offering.

</comment></comment></comment><comment><USER18> Focusing on touchy-feely stuff like whether some software is better because their spokesperson is a genius/is a kook/made money selling software/popularized the editor millions use/wants to help some people with their riches/doesn't wash their hair because they are afraid of getting soap in their eyes/etc is fun but not really satisfying.

Matt, I think there is some merit to your argument but you fail to take into account the fact that many of the applications you think are superior also have long histories relative to their relatively unencumbered counterparts.

If I look for new proprietary software, I don't tend to see many examples that are as superior to open source software in the same way I might say Microsoft Office is to Open Office. More often I tend to see proprietary software left in the dust as in the case of Apache vs IIS unless I look for niches.

Can you cite any good examples of well-known new proprietary software that is clearly superior then their open source alternatives?

Note I say "open source" and not "free".

<comment><USER8> Photoshop, and GIMP has been around for a very long time.

<comment><USER18> Wikipedia says Photoshop has its origin in code from University of Michigan written around 1987 wheras GIMP was started as a student project at UCB around 1994. That gives it a 7 year head start.

<comment><USER8> I'm not sure I see your point with the age thing. Is it relevant whether or not an open source project of a given age is better than a proprietary one of the same age? The economics of proprietary software ensure that there will generally be older versions in nearly every niche (especially consumer facing).

Also, if GIMP can't catch up in 14 years, will it ever? That's basically infinity in the software industry.

<comment><USER18> _Is it relevant whether or not an open source project of a given age is better than a proprietary one of the same age?_

We all know initial conditions are very important. Once a community adapts to the rules of a given open source or proprietary application it rarely decides to change even when the alternative may be superior in some way.

 _Also, if GIMP can't catch up in 14 years, will it ever? That's basically infinity in the software industry._

GIMP is already superior to Photoshop in at least one significant way: you can give copies of it to your family, friends, students or whoever without breaking any laws. Of course if you're a design pro who uses Photoshop because it has features GIMP lacks then that may not matter to you.

However both those topics are besides the point. My main issue with your essay lies in the statement

 _It's obvious that up to this point, proprietary software has created a vibrant ecosystem and immense profits that probably would not have existed were all software open source._

That's not at all obvious. What is obvious to me is that some proprietary companies have made obscene profits by preventing fair competition to keep prices artificially high and stop people from switching to lower cost or free alternatives.

<comment><USER8> "What is obvious to me is that some proprietary companies have made obscene profits by preventing fair competition to keep prices artificially high and stop people from switching to lower cost or free alternatives."

Vendor lock-in is not new, and not exclusive to software by any means. It's an ages old tactic, and one that's been considered fair game forever. A corporation out to make profits is foolish to not use it where possible.

You can't ever stop someone from switching to cheaper or free alternatives. You can only make your product so good (if only through legacy support) that the cost of switching is higher than the cost of buying your product. This, again, is neither new nor unfair.

Abusing near-monopolies (which MS did) is unfair, but has nothing to do with proprietary vs. free. It's perfectly possible to have proprietary software without that. It's like the difference between drinking sensibly and drinking and driving.

<comment><USER18> You may personally think vendor lock-in is a fair tactic but if you bother to do a little research you'll find some significant court decisions opposing that view (including the one against MS).

Still, I'm a little confused that you see no relationship between monopolies and licensing given that MS was convicted of abusing its monopoly to dictate licensing terms to OEMs.

<comment><USER8> I'm certainly not saying that Microsoft played entirely by the books. They clearly didn't. They went well beyond standard vendor lock-in. Things like lock-in that are considered fair game in a competitive market are not when a monopoly is involved.

I just don't think it's fair to blame proprietary software for Microsoft's sins.

<comment><USER18> Microsoft is not the only sinner, they are just the most publicized one. The profit made by Microsoft and the others in the Software Top 100 - <http://www.softwaretop100.org/list.php?page=1> is probably several times higher than it would be if not for lock-in and other anti-competitive practices. Those unfair profits are effectively a hardware tax which transfer wealth away from the consumers and businesses who would have presumably spent it on their own interests.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> _It's obvious that up to this point, proprietary software has created a vibrant ecosystem and immense profits that probably would not have existed were all software open source. It's driven the computer revolution, which is the most significant shift in technology and user behavior in living memory._

I would argue that open source technology has been a much more "vibrant ecosystem", and that open source software is creating a much more "significant shift in technology" than proprietary software is.

I don't think it's reasonable to say anything about what the world would be like "if all software were open source", or how that would happen.

<comment><USER19> i think the idea is that $$ is a huge incentive

</comment></comment><comment><USER20> I don't think this post is a good way to frame the argument. In particular, it's pretty hyperbolic when it comes to the effectiveness of Gates' philanthropic efforts. Like, what kind of madman would oppose the greatest giving campaign the world has ever seen?

America's earlier robber barons showed similar changes of heart. It seems incredibly misguided to frame an abusive monopoly as a triumph of laissez faire economics. Adam Smith would not approve.

<comment><USER8> I was more saying that you shouldn't attack Gates FOR his philanthropy, as Stallman does. Not that his giving makes his business practices or proprietary software immune to criticism.

<comment><USER4> I agree that one shouldn't attack Gates FOR his philanthropy, but one should look closely at that foundation before forming judgments one way or the other. There are lots of questions about it with respect to his views on drug patents and one can legitimately question the investments. After all, the Perkins institute for the blind was founded by a drug dealer.

Moreover I didn't read the RMS as attacking the foundation.

I was put off by the tone of many of the blogs pieces about the RMS article. I've never seen RMS as "bitter" about MS. I think it was good timing on his part during this little love fest at Gates' retirement to point out that MS has not done much for computing science. RMS has given programmers a lot, much of it for free (as in beer and as in freedom). The only thing he seemed to be bitter about is the Linux versus Gnu/Linux thing.

I suppose this reflects my age, I felt the same way about the Arc bashing when it was released. RMS walks the talk, say what you want about him but you know where he stands. I wish we all had a similar regard for the US constitution.

</comment></comment></comment><comment><USER21> "... so I appreciate the benefits of free software as much as anyone.

But at home I use some proprietary technologies too. Windows and OSX can be found on the computers there, because they're still both much more user- friendly than the free alternatives for everyday use, and they have a far more vibrant ecosystem of developers and applications."

Obviously you don't appreciate the benefits as much as anyone.

</comment><comment><USER22> Irony: Matt uses Wordpress, free software that owes its success to the proprietary software from Six Apart starting to really suck.

<comment><USER23> Where's the irony? Matt thinks proprietary software has its place, and he likes free (as in beer) software.

<comment><USER22> Where is the awesome proprietary software that has smashed Wordpress to pieces which he referred to? His analysis about relative quality is off the mark. Looking at Photoshop and ignoring Emacs, gcc, gdb, git, Apache, and all the other great free software isn't fair.

<comment><USER24> From the article: "There are lots of great open-source projects out there, especially in the development world." I think that covers Emacs, gcc, gdb, and git at least...

He's not ignoring the great free software, he's pointing out that only using free software means that you give up using proprietary software in the cases where it is better.

<comment><USER25> Proprietary software is never better.

<comment><USER8> Depends on your definition of better. The fact that Adobe's revenues were over $3 billion would indicate that quite a few people would define "better" in such a way that Photoshop is better than GIMP.

<comment><USER26> photoshop is better than GIMP. paint.net is a great free alternative but windows only. in relation cheap is better than expensive, and any alternative that challenges a monopoly or overpriced incumbent can be a very good business to start and a product/service that many people will happily try out.</comment></comment></comment></comment></comment></comment></comment>


Multi-master, NoSQL and MySQL - <AUTHOR> http://mysqlha.blogspot.com/2011/10/multi-master-nosql-and-mysql.html

<comment><USER2> Having built a custom cluster using vanilla MySQL + async replication, I can tell you that it's no walk in the park. Our requirement was to have the data shared across two data centers in different geographical areas with automated failover, and time from failure to failover completion of under 30 seconds. We managed to do this, but there were some very ugly parts. For one, we have no automated fail-back since promoting a slave, you lose the ability to deterministically figure out where other masters need to start replicating from (global TX IDs will solve this). We also get some false positives (much more than real failures) due to the fact that the cluster monitor has to be in yet a third geoarea. Lastly, this requires application support. We remedy this by having a common DB session layer and a messaging system for notifying all the applications of failures.

The good things about this are that we do get high availability with all the normal features of an RDMBS (JOINs, random queries, high-level query language, etc). We also have sharding baked-in so we get to distribute write queries across multiple masters. Having said that, the next time I need high availability I will be setting up either a two-node MySQL master-master cluster with mutual monitoring or some type of a different data store that provides eventual consistency.</comment>