Ask HN: review Thymer, our new todo and time tracking web app - <AUTHOR>

We're a startup that has had huge productivity problems. No need to go into details, but we tried lots of productivity software out there. We didn't like them. Too complicated. Too ugly. Or it took too much effort to put in new todos or a planning. So we went back to notepad, and that didn't work either. Notepad doesn't scale for teams.
So, as a side-project, we started working on a todo and planning app for internal use. It made a huge difference for us, because we can now see exactly who's doing what. Fewer meetings are necessary and life is good again. And if we like the web app, there must be others who like it too. So here we are.
We put together a screencast on our blog, to show you how it works. Is this something you would use? Something you might pay for? Any feedback is welcome!
Link: http://stunf.com/blog/
Thanks! <comment><USER2> It _looks_ like it's going to be great, however, without actually using it myself, it's hard to tell if that's the case. I am looking forward to getting an invite for the beta.

</comment><comment><USER3> Clickable link - <http://stunf.com/blog/></comment>


Ask HN: Are you working on strong AI? - <AUTHOR>

I have created a skype group for anyone who wants to develop strong AI or are currently working on strong AI:
skype:?chat&blob=8vCsZ-zaNyxXCRsQpSNZ6pEFFl7VpQe33C5MJJnF2Wjo5f9HMgprBpDSZIf3Rfw_3q33nui7zCZoiDg5aPqlO8kU
Copy the link in a skype window and click on it. <comment><USER2> I'm sure we'll have strong AI in twenty years or so, just like Herbert Simon said we were going to in 1965. ;)

<comment><AUTHOR> I think one of missteps of AI is that enough people haven't been working directly on strong AI.

</comment></comment><comment><USER3> I am. Best work of my life for sure. However, I can't access the Skype group. What am I missing?

<comment><AUTHOR> Try this link and see if it works: skype:?chat&blob=8vCsZ- zaNyxXCRsQpSNZ6pEFFl7VpQe33C5MJJnF2Wjo5f9HMgprBpDSZIf3Rfw_3q33nui7zCZoiDg5aPqlO8kU

<comment><USER3> How about creating a Google Group?

<comment><AUTHOR> I think it might too big for our purposes[you will need a group the size of HN for it to feel interactive]. So far, it just you who have express interest in joining the group. So, if you feel like it, you can add me to your skype: chester.hercules.grant

</comment></comment></comment></comment><comment><USER4> Sounds good, but isn't Skype completely closed-source, proprietary software?</comment>


Show HN: Humble beginnings of the smart toilet - <AUTHOR> http://www.hackster.io/craig-mulligan/occupied

<comment><USER2> Someone where I work setup a similar app, only telling 3-4 people. Then, they built some really creepy/invasive stats into the service/page, too.

Just some advice: for each feature you add, make sure you consider how creepy/intrusive it is first. Nobody wants to be the person to object to something like this and, frankly, they shouldn't have to be.

</comment><comment><USER3> At our hackerspace, the washroom situation was terrible. I found out there are some fuel cells that react to hydrogen sulfide! We thought about displaying whether or not it was safe to enter on an LED scrolling-message sign.

<comment><AUTHOR> let me know if you get around to it! I'd be keen to check it out.</comment></comment>


5 Years of Bad Ideas (With Python) - <AUTHOR> https://ep2012.europython.eu/media/conference/slides/5-years-of-bad-ideas.pdf <comment><USER2> Along similar lines, there's this nifty hack from a couple years ago which (ab)uses three different low-level interpreter tricks to get Ruby-ish anonymous blocks in CPython:

<http://code.google.com/p/ouspg/wiki/AnonymousBlocksInPython></comment>


Why Microsoft's Internet Explorer Dominance is Ending - <AUTHOR> http://www.eweek.com/c/a/Enterprise-Applications/10-Reasons-Why-Microsofts-Internet-Explorer-Dominance-is-Ending-541588/

<comment><USER2> "The European Union almost single-handedly took down Internet Explorer"

IE has been losing market share for years and this is hardly the EU fault.</comment>


Copying Is Not Theft - <AUTHOR> http://www.techdirt.com/articles/20100413/0719158992.shtml Video by Nina Paley about Copying...<p>the FBI "warning" at the beginning is particularly great. <comment><USER2> I don't think making semantic distinctions is what the copyright discussion needs.

The video says that theft leaves one less thing behind. Copying a song leaves one less sale (or one less potential sale) for the company that owns the song. That copying a song is not a physical act resulting in one less song in one place and one more song in your possession is an irrelevant distinction.

Copying may not be theft, but both copying and theft are ways of acquiring something through inappropriate means at someone else's expense.

</comment><comment><USER3> "If copying isn't theft then I suppose you won't mind if I copy and turn in your term paper before you do (thus making your paper worth less). After all, you still have your term paper right?"

I suppose I should take heart that those condone copying/stealing others creations must have some conscience left. Otherwise they wouldn't have to resort to such weak rationalizations as this.</comment>


Slingshot Apologia: We Didn't Design Slingshot for Planes (Joyent replies to DHH) - <AUTHOR> http://joyeur.com/2007/04/02/slingshot-apologia-we-didnt-design-slingshot-for-planes <comment><USER2> I see valid points on both sides of this issue. However, I think it's definitely worth looking into tech like Slingshot to see what could happen next. Rails has allowed the development of many applications that we would have never seen otherwise, hopefully Slingshot will allow the same thing with desktop apps.

</comment><comment><USER3> I'm so glad these guys responded so calmly and intelligently - a nice contrast to DHH's embarrassing style.

<comment><USER4> <http://www.flickr.com/photos/planetargon/127984254/>

<comment><USER3> He he, good find.

It's like when grown children think it's cute to talk baby-talk. Sure it's cute when babies do it, but after a certain age - it's just, well, embarrassing - and a bit nauseating. You know they know better, but they're so desperate to maintain the cuteness they had as a baby that they just can't move on and think of something original and clever. Just embarrassing. Poor guy - he must not be getting enough attention at home.</comment></comment></comment>


5M iPhones are about to be smuggled into China - <AUTHOR> http://qz.com/268219/five-million-iphone-6-handsets-are-about-to-be-smuggled-into-china/

<comment><USER2> That's crazy! Look at all those pictures!!</comment>


Algorithms and logic to generate hex game board - <AUTHOR> I'm wanting to create a game using a hex game board design, but have been unable to find any examples of code to generate such a layout. I'm planning on using Go, to make a game rather like DiceWars, but with a lot of additional features and more sophisticated game play. TIA. <comment><AUTHOR> Nevermind. I found this from 2015 once I used the right search terms:

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


Ask HN: Lobste.rs invite? - <AUTHOR>

Hi guys,
does anyone have, by any chance, an invite for lobste.rs? <comment><USER2> Send me one, thanks.

</comment><comment><USER3> With your submission history, I'd be hesitant to give you an invite.

I notice the same few article sources pop up again and again and again (techrunch, superbcrew, smashingmagazine).

Keep the wantrepreneur stuff here at HN where it belongs.</comment>


What can I only do in Erlang? - <AUTHOR> http://erlang.org/pipermail/erlang-questions/2014-November/081570.html# <comment><USER2> Some people have already been mentioning this but I wish to clarify some things.

When Erlang was designed/invented the goal was never to make a new language, the goal was to design a way of building _systems_ with a set of specific characteristics, massive concurrency, fault tolerance, scalability, etc. One part of this was the language, Erlang. But at the same time we were developing the language we were also looking at how you would use the language and its features to build such systems. The language and the system architecture went hand-in-hand with support in erlang for the type of patterns you would need in the system architecture.

These ideas and patterns existed before OTP. So there were Ericsson products built on top of Erlang which used these ideas and patterns before OTP. OTP "just" took these ideas and design patterns and formalised them in a generic, cohesive way. Plus of course a lot of useful libraries.

So we were never really out to design a functional language based on the actor model, we were trying to solve the problem.

(We had actually never heard of the actor model but were told later that Erlang implements it)

<comment><USER3> I wonder how is going the Lisp Favored Erlang project, [http://lfe.io](http://lfe.io). As someone that enjoys lisp and prolog I find erlang a very nice language. Two feature I find handy: One is the ability to modify code while running, the other is OTP. Joe's thesis, available online, was for me an excellent resource to learn Erlang. I think that a good use case for Erlang is when a lot of actors are needed each one doing a little work with little resources (no big library, regular expression, atlas, or the like used).

Funny, I recall some surprise in the community because Joe was asking some easy question about C for some glue code. It's been 5 years since I touched Erlang, only for learning, but is message passing style and the way you create functions like in prolog (or in Shen or picolisp) is unique and a great virtue. I know that tcl has secure interpreters, I wonder if there is such a think in erlang.

<comment><USER2> That about Joe is not strange actually as he has never been a C-programmer. Before coming to the lab he was a fortran programmer.

<comment><USER4> People in racket are using typep racket, clojure has annotation, in lisp you can declare types and sbcl infers them. Haskell also is fond of types. Perhaps in erlang types are not so important because you try to decompose the problem in small parts and hence is not so important to declare types?

<comment><USER5> Erlang has Dialyzer, which is an optional type checker and discrepancy analyzer.

</comment></comment></comment></comment></comment><comment><USER6> In 2005, I worked in software development for 6 months before abandoning it for another field.

In my new job, I was given the task of writing a server for a messaging application - which would allow users to send a "hand-drawn" message from our own proprietary handheld device to Windows phones. I was told to learn Erlang and get it done - the company was barely 30 people and had no formal training programs. While I have a degree in theoretical computer science, I didn't do much functional programming before - learnt some Haskell in 2001 in college (just the basics, equivalent of first 6 chapters of LYAH, no monads). I remember learning Erlang over the weekend and delivering it in the first week of my job. Obviously, the code was neither great nor scalable - but I write this not to boast but to tell people that Erlang was so beautiful and easy that even an average intelligence person like me could use to produce functional software in a week. Today, my only regret is that I am not a programmer.

<comment><USER7> Agree, and to look at it from a different angle - to me writing Erlang felt like I was writing config txt files to some underlying system. The system performs good following your "config" but all the hardcore feel is lost for you.

<comment><USER8> Huh?

"Hardcore feel" is definitely there and the language is anything but "writing config txt files to some underlying system".

I've built applications in the > 10k SLOC range that use a consensus algorithm for distributed computing and it was _hard_ but made _tremendously easier_ because of Erlang's built in primitives.

No hardcore feel was lost at all and neither was it writing a config txt file...

[EDIT] I would love to know why the downvoter disagrees with me, unless you're being a downvote kiddie.

<comment><USER9> Down vote = I don't agree with your statement normally here. Not that it might be a starting point on a conversation?

<comment><USER8> Down voting is not for disagreeing, read the guidelines for HN. If you disagree, provide a comment as to why.

Down voting is for completely irrelevant comments, inappropriate comments, etc...

[EDIT] To be clear, I did not downvote you and I disagree with the down votes on your comment here, even though it's off-topic it's important to acculturate people that are accustomed to "downvoting for disagreeing". Which is why I'm commenting.

<comment><USER10> Downvoting is for however the user wants to use it.

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

> pg 2455 days ago | link | parent | flag > I think it's ok to use the up and > down arrows to express agreement. Obviously the uparrows aren't only for > applauding politeness, so it seems reasonable that the downarrows aren't > only for booing rudeness.

> It only becomes abuse when people resort to karma bombing: downvoting a lot > of comments by one user without reading them in order to subtract maximum > karma. Fortunately we now have several levels of software to protect against > that.

<comment><USER11> What I have never understood about HN's use of the down vote as "I don't agree with you" is that it also changes the color of the post to one designed to be hard to read, so it's like imposing a kind of progressive silence.

Why not just a change in color to something different, not harder to read? If down vote is to be used however the down voter wants then why attach the "punishing" color to it?

It's an interesting system in that I have not seen it anywhere else and indeed does seem to work. But still I can't understand it.

</comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> This is a pretty good summary of what makes Erlang unique. There's definitely a learning curve, as he says, but once you start to 'get it', you can make some really solid stuff with it.

I've been having a lot of success with remotely debugging things with observer ( [http://www.erlang.org/doc/apps/observer/observer_ug.html](http://www.erlang.org/doc/apps/observer/observer_ug.html) ) and Recon ( [http://ferd.github.io/recon/](http://ferd.github.io/recon/) ). I've been using the latter to compile code locally and quickly deploy it to a remote machine (while it's running, of course) to debug problems without going through a whole commit/pull/build cycle.

Some of the other responses in the thread are pretty good too:

[http://erlang.org/pipermail/erlang- questions/2014-November/t...](http://erlang.org/pipermail/erlang- questions/2014-November/thread.html#81564)

</comment><comment><USER12> here is a daemon that runs forever

        foo()->
           foo().

1\. processes as tail-recursive functions

it's callstack will never grow. you can have multiple of these running and the scheduler will still split work between them. a process is a tail-recursive function where the argument becomes its state. a process ceases to exist when it stops being tail-recursive. erlang's distributed computing strengths can in ways be attributed to tail-recursive approach to network programming & beginning with concurrency in mind. everything else came as a side-effect.

for anyone interested for more examples of expressiveness/composition, this is from my talk at functionalconf [http://www.slideshare.net/bosky101/recursion- and-erlang/43](http://www.slideshare.net/bosky101/recursion-and-erlang/43)

2\. Node's or machine's are first-class citizens.

you can decide to replicate data over to them, make the data on one node location-transparent, or decide to just abstract it all in a distributed system.

3\. binary patten matching

you can pattern match not just [A,B] = [1,2] but also contents of A,B. or do gaurds against contents . eg if the contents of this binary variable begin with "foo".

4\. you never have to import any header or module. the vm uses all modules available in its (ebin) path. big cyclic dependency headaches good bye.

5\. as many schedulers as there are cores in your machine. (configurable)

6\. hot code swapping.

albeit little contrived for the beginner on production systems.

7\. otp

comes bundled with the fsm,client-server,etc skeletons called "otp", the same that runs 40% of the worlds telecom traffic.

~B

PS: the root link describes more such features you may find useful

</comment><comment><USER13> Curious how much people think Go will eat into Erlang? Many of the points made were about Erlang as CSP and that's Go-territory.

Loïc Hogun (author of Cowboy, other projects) said:

      For me Erlang is first fault tolerant, then concurrent,
      then functional

As Go gains libraries like groupcache will it become more and more go-to for networked and shared systems?

Is Go moving up from concurrent to fault-tolerant in a real way?

<comment><AUTHOR> If you dig around in HN's search there are a lot of good comments from people like jerf on the differences:

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

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

But there are more here and there if you hunt for them.

I think for things where they are sort of similar, Go will definitely be the more successful language because it looks so much more familiar and because it's moving faster with more momentum, at this point.

I'm using Erlang for a semi-embedded thing at the moment, though, where stability is more important.

<comment><USER14> Whenever I think about Erlang's stability I recall the problems mentioned by CouchDB authors and RabbitMQ users. Apparently CouchDB hit some problems with low level disk access that they couldn't trace and that pushed them to migrate away from Erlang. RabbitMQ is allegedly dropping lots of messages for unknown reasons under heavy use. I do not have the links at hand for reference but such stories make me wonder how battle-tested Erlang really is when you need to persist your data (and not just transmit it over the network).

<comment><USER8> The Riak guys have better experience here and I would argue that it's pretty well battle-tested when Apple is deploying hundred node Riak clusters for production :) (Riak is built on-top of Erlang)

</comment></comment></comment></comment><comment><USER15> Erlang looks interesting. However, the only problem I have with starting in Erlang is that on the great computer language shootout, it shows that Erlang is about 10x slower than C++ on most examples. And about 3x slower than Go [1] I know that the problems on this website are not specifically "concurrent" problems, but still, even a distributed web-server must do some non-concurrent stuff at times :) Are my concerns correct/justified?

[1] [http://benchmarksgame.alioth.debian.org/u32q/benchmark.php?t...](http://benchmarksgame.alioth.debian.org/u32q/benchmark.php?test=all&lang=hipe&lang2=gpp&data=u32q)

Edit: even Haskell seems to be about 7x faster than Erlang (according to [1]). Suddenly, Haskell looks like a good candidate for writing a distributed server :) Can somebody comment on this?

<comment><USER16> When you say Erlang is slower than C++, You are right. It is also slower than Go.

Ruby is also slower than C++ & Go, But Ruby on Rails is not only popular but a very productive web framework which can help you build your app with a productivity that C++ or Go can't match.

When you write a high quality, fault tolerate system, the raw speed comes at the end. Erlang shines when you write a concurrent system plus its design is very unique. Erlang I would say isn't only a language but a whole philosophy of Software development. Once learned you can apply to many other platforms.

All in its a joy to work with functional languages and Erlang is perhaps the most commercially successful functional language.

<comment><USER17> > and Erlang is perhaps the most commercially successful functional language.

Out of interest, what makes you say that?

Looking at the TIOBE rankings (not that this is definitive), Erlang doesn't even make the top 20 languages, when F# and R do:

[http://www.tiobe.com/index.php/content/paperinfo/tpci/index....](http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)

Is there a reason you think it's more successful in the commercial world?

(btw, I'm a fan of Erlang - unfortunately I don't get to use it on a regular basis; other than products built on it: RabbitMQ mainly)

<comment><USER18> Erlang is used in infrastructure projects. A few I know of:

Rabbitmq -- probably the most popular messaging system

Riak -- distributed, fault tolerant database

WhatsApp -- managed to route billions of messages a day with only a handful of engineers and servers.

Ericsson -- pretty much got the market for cell base nodes cornered. Chances are about 50% if you use internet on your smartphone, that Erlang will be involved.

Some firms on Wall Street use Erlang -- remember Serge Aleynikov case, he is an Erlang programmer.

Ejabberd -- a very popular XMPP server

CouchDB/Cloudant(IBM) -- another database and database-as-a-service company use Erlang.

So I would still say the original statement holds. By success might mean the amount of work being done not amount of people writing code. Think about WhatsApp. It was only 10-20 engineers that worked on the back-end yet think about the massive amounts of data they were able to handle.

<comment><AUTHOR> > Some firms on Wall Street use Erlang -- remember Serge Aleynikov case, he is > an Erlang programmer.

His erlexec thing is quite useful: [https://github.com/saleyn/erlexec](https://github.com/saleyn/erlexec) \- I started contributing to it myself before I realized who he was.

</comment></comment></comment></comment></comment><comment><USER19> I love Erlang (and it's younger sibling Elixir). I love reading about it. I enjoy following tutorials about it. I love its simplicity.

But when I try to come up with scenarios/ideas where Erlang might be a good fit, I realize I'm not smart/motivated enough (yet?) to tackle such problems.

Erlang isn't difficult. It's the problems it was designed to solve that are difficult.

<comment><USER20> You're probably thinking about it the wrong way then. It turns out that even in cases where you don't have some massively distributed, scalable needs, there are a lot of cases to use Erlang. While it makes insanely difficult problems tractable, it can also make moderately challenging problems simple (and it sometimes can make simple tasks irritating; see usual list of Erlang complaints).

Just about any sort of web backend (that isn't having to do a whole lot of number crunching), any sort of interaction with hardware, handling/transport of binary data (as mentioned above), and of course any time you need reliability, it's worth considering.

But even in areas where there's not an obvious win, a lot of problems that are traditionally done in a single threaded manner can be made simpler in a concurrent language like Erlang.

An example I like to give is time based task scheduling. In a traditional language, you'd implement something like that with a priority queue. Which is fine, but you have a lot of work. First, what happens if timings change? You have to rejigger -everything-. What happens if you have multiple tasks at the same time? You need a threadpool or similar to dispatch these things onto. What happens if one task itself creates a new task for a later time? You'll have multiple people adding things onto the priority queue, so now you need to start locking. And of course, since you've got your dispatching process sleeping until the next task is to start, you have to make sure any time you modify the queue, you remember to notify that sleeping task, so it can update as necessary. There is a lot to get wrong.

In Erlang? You spin up a separate process for each task, with a timer. Done (with caveats; you likely will need to persist the task information and load it periodically into a task+timer process, but that's pretty trivial).

A similar case can be made for functional compared to a more procedural approach. That's a little too long winded for here, but even examples that seem -ideal- for OO, can oftentimes be described more simply in a functional, data-centric manner, and future refactorings are made simpler as well in doing so.

<comment><USER21> You're both right.

Absolutely, Erlang can serve well as a general-purpose language.

But there's no denying that it was designed to solve very costly, very difficult problems, and that remains its strength.

</comment></comment></comment><comment><USER22> I'm just starting to do some work on a system that is going to be very distributed with many endpoints, often on unreliable networks connecting back to a server.

Erlang (elixir, really) looked promising for this so I've been investigating off and on while we do some prototyping and flesh out some of the details. So far it seems to be that you get nearly all the advantages of Erlang with running something like RabbitMQ and then being able to write message consumers in whatever language you desire.

Everywhere I think Erlang would be a good fit, seems that relying on RabbitMQ instead and having less code to maintain in-house makes more sense. I'm still very early in my Erlang journey but so far haven't been able to convince myself to use it directly. I must be missing something.

<comment><USER23> RabbitMQ is a good piece of software, but it has issues. You mention unreliable connections; RMQ does _not_ handle that well.

Even just a few seconds of network hiccup will throw it into a partitioned state, out of which you cannot reliably escape without manual intervention. There are also quite a few bugs that you tend to hit only when RMQ is exposed to network issues.

To use RMQ with bad networks, you need to use either the Shovel plugin or the Federation plugin. Both are somewhat awkward to use, and require manually setting up the different routes that copy messages across.

My advice is, if you like Erlang's architecture and need failure-tolerant IPC, just use Erlang directly. Don't use RabbitMQ for IPC if you need reliability.

I wish I could say better things about RabbitMQ, but it is easily the flakiest component of our stack. When you're used to rock solid server software like Postgres, HAProxy and Nginx, RabbitMQ is a big disappointment.

<comment><USER22> Man, I hated to read that. Thankfully I haven't done anything more than just an hour or so of playing with it, but nothing I've read indicated there were issues with connectivity :(

Could you point me to or elaborate on some specifics on the partitioned states and manual interventions required? I'm only really calling the shots on the server side and endpoints will be written in various languages, part of my reason for looking at RabbitMQ since it has so many libs.

<comment><USER23> You may want to read Aphyr's analysis [1], which is rigorous and well written.

If you read the RabbitMQ documentation, they readily admit to the fact that the clustering support is not designed for unreliable network connections. It's mentioned only once, and it's easy to overlook.

Here's a very quick, rough overview (it's complicated):

RabbitMQ works by assigning queues to specific nodes. A queue is a physical thing belonging to only one node at a time; consumers, publishers and so on are distributed, but queues aren't. If you lose that node, you lose the queue. If you get a network partition, the nodes in the other partition(s) will not see the queue anymore. Connected publishers and consumers will start barfing when their bindings no longer seem to exist.

RabbitMQ can mitigate these loss scenarios by mirroring queues. They call this "high availability", or HA [2]. Each queue will have a master node and a number of slave nodes that maintain replicas. In the event of a cluster issue, a slave will be elected master.

Ironically, HA, despite its name and apparent purpose, still requires a stable network. It does not deal well with network partitions. It's not really high availability. It is, I suspect, designed for situations when you wanted to take down a node manually, in a controlled manned, without disturbing a live cluster.

The reason, and this is the important part, is that when a network issue is resolved and the partitions can talk to each other again, RabbitMQ has no way of reconciling queues. If the partition divided nodes into sets A and B, then A will likely have promoted a mirror slave to a master, while B will have kept its master, or vice versa. When the partition is resolved, you now have two masters, whose queues have very likely gotten out of sync in the mean time.

When this happens, RabbitMQ normally needs to be manually restored; it will simply cease to work properly. Note that I'm talking about the case when the network issue _has been resolved_. The network is back, RabbitMQ isn't. You need to decide which nodes should survive and which should be wiped, and this recovery process is manual. Of course, if this happens in the middle of the night, you have a potentional emergency.

Fortunately, RabbitMQ has a band aid on top of HA called "automatic partition handling" [3]. It offers three different modes of behaviour, of which autoheal is probably the most important one. In autoheal mode, RabbitMQ will automatically pick a winner to solve conflicts, and promote it to a master. This will result in data loss; the losing nodes will be wiped. Autoheal is actually pretty crazy, because it is lossy by design; the only way to find out if you lost any data today is by grepping the logs for autoheal messages.

Worse, due to the "poor man's database" nature of RabbitMQ, doing any kind of manual recovery -- like dumping the conflicts, reconciling them, and dumping them back in -- is probably not realistic when it happens.

Note that even on a flawless LAN, RabbitMQ can get network partitions if your server has high enough CPU or I/O load. Another thing that can induce network partitions is soft kernel lockups, which is common enough in virtualized environments; for example, VMware's vMotion can move a node from one physical machine to another, a process which can take several seconds, during which time RabbitMQ gets a fit. In such cases you'll want to increase the "net_tick_timeout" [4] setting.

[1] [http://aphyr.com/posts/315-call-me-maybe- rabbitmq](http://aphyr.com/posts/315-call-me-maybe-rabbitmq)

[2] [https://www.rabbitmq.com/ha.html](https://www.rabbitmq.com/ha.html)

[3] [https://www.rabbitmq.com/partitions.html#automatic- handling](https://www.rabbitmq.com/partitions.html#automatic-handling)

[4] [https://www.rabbitmq.com/nettick.html](https://www.rabbitmq.com/nettick.html)

</comment></comment></comment></comment><comment><USER24> Only semi on-topic: Anyone hiring experienced remote Erlang developers? 30 years of experience or so.

<comment><USER25> My next start-up will be based almost 100% in Erlang ecosystem. So, once this happens, I will definitively look for experienced people, working remote. I would add you to my candidates, if you send me a CV to costin at cozan dot com.

<comment><USER24> It's not me, but I'll pass your email on, thanks!

</comment></comment></comment><comment><USER26> erlang's whole design is what OO promised but failed to deliver. it's completely trivial and natural to represent programs as a collection of loosely coupled state machines that communicate asynchronously. it turns out this is a fantastic model for anything network related but also for programming in general

<comment><USER27> This is quite interesting. I am currently working on a Java based state machine and it solves problems in a very unique way. It is quite a change from procedural code.

</comment></comment><comment><USER28> Op's work environment is _exceptional_ in many ways. It's a quintessential hacker work place. Unbelievable flexibility. I am sure a place like that attracts people who can make any technical edge, however miniscule, into a real felt advantage. I want to learn about their management, hiring and culture-building practices more than their actual hacking triumphs.

<comment><USER29> "As for encouraging adoption, I recommend you solve a problem in your spare time that your company has, in Erlang, and demonstrate how easy it is to maintain compared to whatever the accepted solution being worked on is. That's a lot safer thing to your management than "throwing money at a new toy, hoping for a payoff"."

For me, this translates to: invest unpaid time for your employer to improve things, on the off chance that it will be accepted. I understand where he's coming from, but that borders on self-exploitation.

<comment><USER30> I agree that in an ideal situation you would get paid for coding up a prototype for the company.

On the other hand, if it gets accepted, there might be several benefits that could make the unpaid time worth it:

      * getting a raise or a promotion for the initiative
      * better work environment due to using the best tool for the job

</comment></comment></comment><comment><USER31> Not sure I agree with the conclusions:

1\. Binaries: this isn't really an issue. We ship the JVM _with_ anything that we do in Java. Unzip, run, done. Go is probably ideal there but it doesn't support embedded resources without some hideous hacks so you're still going to be deploying more than just a single binary in a lot of cases. CLR is pretty good at this as well.

2\. Sockets: 0MQ/WCF/JMS/any stream abstraction wired up correctly.

3\. ASN.1: Everything has ASN.1 libraries these days. I've never had to use one in the real world in any of the sectors I've worked in.

3\. Let it crash: we do this. In fact we force _threads_ to crash if they do anything bad by throwing an exception that isn't caught. All threads are designed to be idempotent, restartable and transaction aware. This is true in JVM/CLR at least.

4\. Supervision: New thread, new state, no shared state. Not hard. PHP does this...

5\. Inspection: I've seen the Erlang toolchain and it's pretty good but I'm not joking but inspecting and debugging the state of a system is better when there is lots of pooled knowledge (google) and lots of diverse tools. JVM wins there every time.

7\. Messaging is not RPC: It's not in JMS either or WCF. It abstracts the transport away. In fact we have inproc transports in some cases that use concurrent collections to throw messages around.

8\. Dialyzer: compiler, static typing (Java is less strong here to be honest than say C#).

I really like the idea of Erlang but the worse is better mantra applies here. It's easier to get staff, the knowledge when something goes pop is available, we benefit from the reuse of billions of lines of code written and tested by others if we pick a JVM. If we have to think a bit or throw some more kit at it, so be it.

Edit: just to add, I'm not knocking Erlang and quite like it in principle (I spent 2 months disassembling CouchDB to see if we could maintain it so it's not a foreign language to me), but the justifications in the reply aren't particularly unique ones nor are they major advantages.

<comment><AUTHOR> He's talking about dealing with binary data when he says 'binaries':

[http://www.erlang.org/doc/efficiency_guide/binaryhandling.ht...](http://www.erlang.org/doc/efficiency_guide/binaryhandling.html)

[http://www.erlang.org/doc/programming_examples/bit_syntax.ht...](http://www.erlang.org/doc/programming_examples/bit_syntax.html)

Erlang is really strong for that.

As to Java, sure, you can do anything with it, and do a decent job of it. But sometimes, as a startup, you are resource constrained, so if you can do more with less because you have a good grasp of a tool like Rails, or Erlang or Lua or whatever, that might make the difference. For a large company, Java is definitely a safe pick - no one ever got fired for choosing it: you'll be able to get whatever you need done, and "If we have to think a bit or throw some more kit at it, so be it." For a group like WhatsApp, Erlang seems to have been a good pick.

<comment><USER32> I copied my OCaml bitmatch library from Erlang. It's a really great feature of Erlang.

[https://code.google.com/p/bitstring/](https://code.google.com/p/bitstring/)

</comment></comment></comment><comment><USER33> Repost

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

<comment><USER34> I'm not sure what you're getting at here. Does it matter if it's a repost if the other link has 6 upvotes and 0 comments?

</comment></comment><comment><USER35> Someone correct me if I'm wrong, but it seems to me the main advantage of Erlang over something like Go, is that the logic for your entire cluster is contained in Erlang itself, as opposed to in some external scripts or configuration. What I mean specifically is that it seems like you don't need anything like Mesos or Kubernetes to monitor and relaunch processes across the cluster. OTP within Erlang does that for you.

Now whether this is worth the tradeoff of switching to a new language and framework (OTP is a framework even if it is lightweight to use) depends on the team I suppose.

This is just based on my reading of the docs. I hope someone more experienced will correct me if my take is wrong here.

</comment><comment><USER36> _Added in edit: Seeing that this is getting down-votes suggests either that I 've not been sufficiently clear in the point I'm trying to make, or that you think I've phrased it in an unacceptable way. Either way, sorry you don't think this fits here, but I'll leave it for others to down-vote, correct, reply to, or support, as they see fit._

 _Another edit: Getting more down-votes, but not learning anything. Do you think this is the wrong place to say this? Or do you think I 'm just wrong to worry about this level of precision in "normal" speech? Reply! Engage! Tell me why I'm wrong._

</comment><comment>==

I'm going to be "that guy" ... warning: Rant ahead.

The wording of this question is like sandpaper on my brain - for me, the "only" is misplaced. Assuming he is asking:

        What is there that I can do in Erlang,
        but cannot do (or is significantly more
        difficult to do) in other languages?

With that reading, I feel the question should be:

        What can I do only in Erlang?

The question as phrased, to me, admits the alternate interpretation of:

        What does Erlang force me to do?

English, and natural languages in general, are weird things. To quote the great Terry Pratchett:

        It's very hard to talk quantum using a language
        originally designed to tell other monkeys where
        the ripe fruit is. -- (Night Watch, 2002)

I'm sure I've seen it before, but Google searches are just turning up places where I've re-quoted it, but:

        When using plain language is it difficult
        to construct a sentence that a determined
        adversary cannot misconstrue.

You may argue that in this case it doesn't matter, but I would suggest that practising precision in language is important, and helps to avoid sloppy thinking.

This comment is intended to be constructive, although I admit freely that it is off-topic for the submission. Even so, I think it's useful to think about these things. I wonder if Erlang makes it easier to be truly precise about something.

<comment><USER37> "Only" is an adverb in this case, and can be placed anywhere in the sentence for stylistic reasons.

In all spoken language (as well as computer language), context is king, so we all knew what the title meant, your sandpaper notwithstanding.

If the author was trying to ask "What does Erlang force me to do?" then he would have written that.

<comment><USER36> Thank you for your reply - it's very useful to me to see the viewpoints of others. It's becoming clearer all the time that my use of and views on language are very much in the minority.

However, to respond ...

      > "Only" is an adverb in this case,
      > and can be placed anywhere in the
      > sentence for stylistic reasons.

That doesn't seem right to me.

        Only what can I do in Erlang?
        What can only I do in Erlang?
        What can I only do in Erlang?
        What can I do only in Erlang?
        What can I do in only Erlang?

These, to me, mean different things.

      > we all knew what the title meant,
      > your sandpaper notwithstanding.

This is a case of "plausible interpretation" and I agree completely that of the different interpretations, probably only one of them really made sense given the context. It is still the case that I had to re-read to make sure something else wasn't meant, and I find it hard to believe that I'm unique.

But what I take away from your comment is that, in your opinion, we should just go with the most plausible interpretation we can think of, and not worry too much about being too precise. You are clearly in the (possibly overwhelming) majority.

<comment><USER37> OK, maybe "anywhere in the sentence" goes too far.

But the need for style in writing is super-important.

If I was telling you about how to beat the 2nd level of Legend of Zelda, I might say

      You can only get to the final boss by taking the door on the right.

Or I might say

      You can get to the final boss only by taking the door on the right.

Which phrase has more impact in your opinion?

Also note that in neither of these cases am I implying

      You can only take the door on the right.

<comment><USER36> I agree entirely that style is important, and moving words around can create different effects. No doubt about that.

Consider your example. You offer:

        You can only get to the final boss
            by taking the door on the right.

I don't know if that means that (a) if I take the door on the right then the only thing I can get to is the final boss, or if it means that (b) to get to the final boss the only thing that will be successful is to take the door on the right.

On the other hand:

        You can get to the final boss only
            by taking the door on the right.

That doesn't seem to suffer the same ambiguity.

The question is whether, for any given case, stylistic effects trump less ambiguity. People seem to think it does more often than I do.

</comment></comment></comment></comment></comment><comment><USER38> For those interested in scalable and fast socket handling in C/C++ using a threaded-like approach, take a look at lthread & lthread_cpp bindings.

[http://lthread.readthedocs.org/en/latest/](http://lthread.readthedocs.org/en/latest/)

[http://lthread-cpp.readthedocs.org/en/latest/](http://lthread- cpp.readthedocs.org/en/latest/)

</comment><comment><USER39> Erlang aside, I was pleasantly surprised to see that this person uses Guile Scheme for internal tools at their workplace. That's awesome!

</comment><comment><USER40> I got the sense that Erlang overlaps somewhat with node.js in terms of what one might use it for. Could anyone familiar with both compare them?

<comment><USER41> I have experience with both Erlang and Node.js so I feel it's acceptable if I answer this question.

I would use Erlang for anything I would have used Node.js for and I haven't touched Node.js since I've learned Erlang (and Elixir).

\- Erlang allows both CPU and IO concurrency.

\- Like Node.js, all I/O in Erlang is non-blocking. The difference is that in Erlang your code looks synchronous. There is no callback/promise/whatever sewage all over your codebase, the Erlang VM and its schedulers take care of that for you.

\- Messaging is built directly into Erlang, so communicating across OS processes, and within processes, is trivial. In Node.js you have to implement this yourself and will screw it up.

\- Node.js doesn't give you any tools for fault-tolerance or distribution, Erlang is best in class for this.

\- Erlang has pattern matching and tail recursion. This helps you create much more concise programs than JavaScript does.

\- Because Erlang is CPU concurrent and Node.js only offers I/O concurrency, Erlang programs are incredibly consistent in their response times. In Node.js, as your programs grow and take up more CPU time (thus blocking the event loop) you will notice your 99th percentile response times are way above the average.

<comment><USER42> Your second point is extremely important. My elixir code is way cleaner than my node.js code. You aren't constantly thinking about async stuff because each connection is in its own process. Just write your code and let the process scheduler do the hard work. I don't think I could ever go back to node for a medium or large web app. Elixir has been so much simpler, even though I've been learning the language as I go.

It also has benchmarked extremely well...

</comment></comment></comment><comment><USER43> Technically in turing-complete languages, there is nothing that one language can do that another is incapable of, correct?

<comment><USER44> Not really, the runtime system plays a huge role into what a language can conceivably do. Think Ruby and Python and their global interpreter lock or all languages with mandatory garbage collection and no pointer types.

</comment></comment><comment><USER45> How does Akka (Scala/Java framework) compare to Erlang? It seems to deliver on the same promises that Erlang does.

</comment><comment><USER46> How does Haskell compare to Erlang regarding these features?

<comment><USER8> This is where many people get confused.

If I have to build a distributed system, I will pick Erlang/OTP over Haskell any day.

Everything in Haskell is wonderful, including concurrency. It does not have a built in DNS system (for node discovery and connection), inter-node RPC in Cloud Haskell is a joke compared to Erlang, and many other issues.

I've built systems where I used Erlang as the distributed "coordinator" and Haskell for _on the machine_ computing.

</comment></comment><comment><USER47> ZeroMQ gives you the same but better: messaging in any language. That means you can interface to any component you want written in any language you want. Also hiding native sockets, which means networking is not 1:1 but based on scalability patterns. At some point people will realize what a big deal that is.

<comment><USER48> Nobody needs reliable messaging: [http://www.infoq.com/articles/no-reliable- messaging](http://www.infoq.com/articles/no-reliable-messaging)

<comment><USER47> Tell that people who are trying to build scalable network applications. Saltstack uses ZeroMQ under the hood and the biggest cloud computing operations in the world use it. That article reads like from a past age, where you didn't have startups scaling to millions of users based on cloud computing. HTTP was invented for retrieving hypertext documents. Not for connecting millions of nodes.

<comment><USER48> Scale covers lots of things, including statefull v. stateless and (appropriate to this discussion) asynchronous comms and the ability to queue requests. Scale in that sense is facilitated by retrying a remote call that failed - possibly because the server is at capacity. That implies store/forward, which is what the "queue" part of message queuing does. You can definitely use tools like ZeroMQ, MQ Series, MSMQ or WCF to achieve that. You can also use a database table with a flag indicating whether a message was delivered or not (ref. my link above).

Not quite sure what HTTP has to do with message queuing, other than being a protocol one might use. If scale is so important, perf is a concern, in which case UDP would be a consideration. Would I go down that road? Doubt it, because I suspect the acceptable answer lies somewhere between HTTP and UDP, and I also suspect that better gains can be made by optimising end-to-end throughout and solution design rather than worrying about the semantics of a protocol. What's the benefit, for example, of streaming data over a TCP connection when that data is XML? TLV or some other binary format will serve you a lot better.

Final words on scale - asynchronous delivery (such as message queuing) is one technique. Another is to scale servers out and/or up. Also, as already mentioned, server state and of course pipeline/routing efficiency. Whilst I stand by what I said, I've not had the opportunity to work at the scale you have, so I'd love to know what problems you've encountered when scaling to millions of nodes.

<comment><USER47> Examples can be found here [http://zeromq.org/docs:labs](http://zeromq.org/docs:labs) AFAIK Twitter storm uses ZMQ under the hood.

<comment><USER48> Not seeing anything that invalidates what I said.</comment></comment></comment></comment></comment></comment>


Home sellers now use spycams to gather intel on prospective buyers - <AUTHOR> https://www.marketwatch.com/story/another-woe-for-home-buyers-is-the-house-spying-on-you-2018-03-13 <comment><USER2> I seems like simple common sense that buyers' agents counsel their clients to not express excitement or speak overly favorably about a property while inside it, not unlike pitchers and catchers covering their mouths during mound meetings.</comment>


ATTENTION HACKERS: The APP STEVE WOZNIAK wants to see made for the iPhone - <AUTHOR> http://blog.tvdeck.com/2010/11/steve-wozniak-shares-which-app-hed-love.html

<comment><AUTHOR> This could get the creative juices flowing for those developers who are stuck on what kind of app to build for the iPhone. Possibly drive insight and get people "un-stuck" or remove the roadblock.</comment>


A collection of maps of the Middle East - <AUTHOR> http://gulf2000.columbia.edu/maps.shtml <comment><USER2> Bookmarked! I love maps and globes, and I love demographic data.</comment>


Why it's OK to leave a tech job at 5 p.m. - wh-uws http://edition.cnn.com/2012/04/16/tech/web/cashmore-facebook-sandberg/index.html

<comment><AUTHOR> Anybody have stories about negative consequences after they decided to leave at a normal time instead of staying late?

I leave at 5, assuming everything's in order, and nobody has ever mentioned anything to me. I also like to get in at 9, even if most other people arrive around 10 -- I love that quiet time in the mornings.

One thing I have noticed is that some people who work late are stuck in a horrible cycle of coming to work late, slacking off, then trying to make up for it by staying in until 7 or later.

<comment><USER2> 9-5 means you're either not working 8 hours, or you're working without taking any good sized breaks. The former might get you in trouble, but the latter is more likely to cause sub-standard work.

</comment></comment><comment><USER3> This is why it's important to have a secondary source of income (most likely a business) and money in the bank.

If I'm required to work past 5 for too long (once in awhile, it's fine), I find work elsewhere.

It's worked pretty well so far.

</comment><comment><USER4> Use <http://news.ycombinator.com/item?id=3848889> instead.</comment>


App.net is shutting down - <AUTHOR> http://blog.app.net/2017/01/12/app-net-is-shutting-down/ <comment><USER2> So to recap, Twitter exploded onto the scene in 2007, the "fail whale" appeared a lot, developers made all sorts of wonderful programs hooked into Twitter, the fail whale disappeared, Twitter started to destroy the app ecosystem, App.net launched to great fanfare in response to Twitter's knuckleheaded anti-developer stance, Britney Spears and Justin Bieber arrived and knocked all the nerds out of the top spots on Twitterholic, Donald Trump came and bludgeoned everyone with his bombastic prose, and now App.net is shutting down.

And after all this, Twitter still does not have a viable business model.

<comment><USER3> Twitter finances (TTM):

revenue: $2.52B gross profit: $1.49B

It's only losing money because of stock grants.

<comment><USER4> Which is a lesson in how VC can easily destroy a viable, profitable business with a "money-chasing-money" strategy.

<comment><USER5> How do you figure that?

1) VCs own hardly any shared of Twitter[1]

2) Stock grants are used as compensation for people working at Twitter, NOT something that benefits investors (except in the sense people are working at the company the investors invested in I guess).

It's easy to blame VCs for everything, but I don't see how this makes any sense at all in this case.

[1] [http://www.recode.net/2016/8/11/12417064/twitter-stock- owner...](http://www.recode.net/2016/8/11/12417064/twitter-stock-ownership- takeover-acquisition-challenges)

<comment><USER4> Who is in line for a buyout before other investors and at what multiplier? That information is usually not public and can be more important than what percentage of ownership a particular investor has.

<comment><USER5> They are a public company, with a single class of shareholder. They can all choose to buy or sell via the public market.

Your comments would make some sense if they were pre-IPO.

<comment><USER4> Derp, you're right. I'm an idiot.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> This is a refreshingly honest shutdown notice.

Congratulations to Dalton and co for trying something hard and worthwhile, and wrapping it up responsibly when it didn't pan out.

<comment><USER7> My sentiment exactly. And I agree with Dalton it was worth trying to see if it could fly.

It raises a lot of interesting questions about the sustainability of the "app economy" for me.

<comment><USER8> I appreciate both of your sentiments, thank you.

I continue to be at least somewhat optimistic that non ad-supported models are worth trying. It seems like Patreon is doing really well and is perhaps something we can all learn from.

<comment><USER9> I paid into the very beginning. It was never useful to me. I don't regret spending the money to see if it could work.

For me, the lack of apps/integrations made it essentially impossible for me to get the people I wanted to talk to on there on to there.

But I'm really glad you tried, I'm even more glad you've documented what did and didn't work, and I definitely got value for money.

Good luck with whatever's next.

</comment></comment></comment></comment><comment><USER10> Sad to see them go.

Mastodon, [https://mastodon.social/](https://mastodon.social/), is a new and positive alternative. Mastodon is a free, open-source social network server. It's GNU Social-compatible and federated. [https://github.com/tootsuite/mastodon](https://github.com/tootsuite/mastodon)

Diaspora is also still going strong with 20k MAU but there is no interaction between the pods [https://the-federation.info/](https://the-federation.info/).

<comment><USER11> And there's also [https://gab.ai](https://gab.ai) if you're into free speech.

<comment><USER12> I just looked at their community guidelines and saw this:

 _Non-U.S. residents and citizens must follow the laws of their domicile pertaining to online conduct, communication and content. Gab AI, Inc. will respect the territorial sovereignty of nation-states and their applicable laws pertaining to online communications, though we urge governments of the world to consider Articles 18, 19 and 20 of the Universal Declaration of Human Rights (UDHR)._

So does this mean they are willing to censor content from people who live in less-free countries based on those countries' laws even though they don't have to, being based in the US? Isn't that weird for a "free speech" network?

<comment><USER11> Free speech for the western world. Their admins are right-wing, so they are respectful of the sovereignty of all states and their laws/customs, as expected from people from the right.

On the other hand, there's Mastodon/GNU Social (what GP recommended) for people from the left, where they ban fascists/nazis, but they apply the same rules to users from all countries, as expected from people from the left.

It makes me kinda sad that these alternatives to Twitter are so politically polarised...

<comment><USER13> Mastodon the software is not politically aligned. mastodon.social the flagship instance of the developer (me) that simply runs/demonstrates the latest code, is, in this case, leaning left. You can run your own.

</comment></comment></comment></comment></comment><comment><USER14> This is an unfortunate, but not unexpected, end of an era. App.net was created at a time when discontent was high with how Twitter was treating its users and 3rd party app developers. Even though App.net wasn't hugely successful, its existence provided a needed check against Twitter exercising user-hostile control over their platform.

However, it has not been a viable platform (one that people actually used) for many years, so while I am saddened that it is finally being shut down, I'm not surprised. Many thanks to Dalton and everyone who built it and kept it going these many years!

<comment><USER15> Did Twitter actually do anything in response to App.net?

<comment><USER14> App.net came out in 2012, and while I can't really remember the specific areas of discontent that I experienced with Twitter back then, here's an article I found:

[http://thenextweb.com/twitter/2013/01/14/twitter- in-2012/](http://thenextweb.com/twitter/2013/01/14/twitter-in-2012/)

I think what everyone was worried about back then was that Twitter was changing the nature of what Twitter was. Twitter started placing limits on API tokens, introduced new UI in the form of cards, which could also be used for ads, etc. There was a sense that the freedom and openness of the Twitter platform was quickly diminishing.

Twitter's response was basically no response, but in a good way. They slowed down making those sorts of radical changes, and to this day you can still browse Twitter with a 3rd-party app like TweetBot and never see cards or ads.

<comment><USER16> This is my first time hearing of App.net.

(This is something that happens for me regularly -- I "discover" something only by its shutdown notice making the HN front page...).

<comment><USER17> You realize that when App.net launched, it was on the front page of HN and with much discussion (relatively speaking)? Given your account's age, you were _here_. In 2010, Bitcoin made the HN front page and you could get 5 BTC for signing up for an email list; 3 years later 1 BTC was worth over $1k.

<comment><USER16> Sure, I realize that. But it seems I missed that initial event, and then everyone fell silent about App.net (nobody really continued to buzz about it).

Whenever stuff like this happens, I always wonder how many people, like me, hadn't heard of some service or product, and I wonder how many of them would have used it if they had. Would it have been enough to save the company from going under? Was it a marketing problem? I dunno, that's just the kind of strange places my mind tends to encounter in its errings.

</comment></comment></comment></comment></comment></comment><comment><USER18> This seems like a good juncture to point out that GNU Social, OStatus, and the Fediverse still exist.

It still has some believers. Someone wrote a new implementation in Ruby called Mastodon recently, which has a nice interface.

<comment><USER19> Do you know of a good tutorial on how to quickly get set up on one of these? I would gladly join but have never really been able to figure out _how_.

(I'm looking to self host.)

<comment><USER18> I would assume it's just a case of installing your chosen software package on a web server. I don't know how easy that is. The more mature packages are probably better-documented in this regard.

<comment><USER20> It took me about 15 minutes to install GNU Social just now (I already had a webserver with php and mysql)

</comment></comment></comment></comment><comment><USER21> App.net and Medium have the same issue (why advertising is more lucrative than selling blogging software directly to content creators):

Let's say for every one content creator that are on average 100 eyeballs on the content they create (1:100). Almost universally, the 100 eyeballs can be translated to more economic value than the 1, and hence why the advertising model is so lucrative.

<comment><USER22> App.net from what I understand wasn't so much trying to sell to content creators as it was trying to create a Social-Graph-As-A-Service thing. I thought the original pitch was essentially two fold:

build your network with App.net and users can basically just opt-in automagically importing their data from other App.net networks thereby reducing the friction and hopefully making it easier to over come the ghost- town problem.

build your network with App.net and tool makers (including you) automatically get a well defined/robust/tested API to write apps against to interact with your network.

</comment></comment><comment><USER23> Unfortunate. Goes to show that you really can't break even without ads or selling/analysing data with a centralised social network.

<comment><USER24> or put another way, "people don't want to pay for most things"

<comment><USER25> Or to put it another way, people care more about money than their own privacy.

<comment><USER26> Yep. I have a limited amount of money that I need to spend on more essential purchases. I'll happily trade my data/privacy for the right frivolity.

When someone starts letting me pay for groceries with my browser history sign me up.

<comment><USER27> If your browser history consisted of you shopping for groceries, would this be a self-paying system and eternal free food?

Good idea isn't it?

</comment></comment></comment></comment></comment><comment><USER28> I applaud Dalton and Bryan for keeping ADN running for nearly 3 years after it ceased development. In truth, I think most of the users left back in May 2014, but it's still admirable that they kept it running.

If you'll excuse the self-plug, I wrote about the death of ADN back in 2014 and re-reading my post, I think it holds up.

[http://mashable.com/2014/05/08/app-net- potential/#P8.bAcE8NO...](http://mashable.com/2014/05/08/app-net- potential/#P8.bAcE8NOqB)

</comment><comment><USER29> I wonder how many people thought app.net was a Microsoft product.

<comment><USER30> Any association with the SharePoint people could and should doom a social network product. Or any product.

<comment><USER31> I like to call it ShamePoint. Nobody can possibly be proud of deploying that.

</comment></comment></comment><comment><USER32> "We are also going to open-source the code behind App.net on our GitHub page."

Huge kudos for that.

</comment><comment><USER33> I have the experience, that services with generic sounding domain names are never successfull. The only remotely successfull generic sounding domain site that I can think of is about.com

There are some exceptions, like messenger.com which I don't think is a counter-example. I think that messenger.com would be no-more or less successfull if it was named barf.com. People use it because facebook already has a foothold.

</comment><comment><USER34> For those not in the know, what was app.net?

<comment><USER35> Twitter for $50/year

<comment><USER34> So a social network? weird name for a social network.

<comment><USER36> It wasn't meant to be just a stand alone social network/twitter clone. The idea was to allow developers to build apps on it (even their own twitter clone, why not?) and skip having to build a social graph themselves.

</comment></comment></comment></comment><comment><USER37> App.net combined two big ideas:

1\. Social networks are important enough that a subscription model is viable

2\. Social networks should be built on a platform for social network applications

Obviously neither idea could save app.net. Which idea caused most of the problems?

<comment><USER38> #1, but not inherently as much as for the effect it had on the consequences of other decisions: they launched with a hard pay-wall for the first couple years and that made the identity crisis fatal. They got a good deal of initial publicity but the first thing anyone curious got was a requirement that they pay to use it. That's always going to be a hard sell but it was especially bad when the messaging was so confused about whether it was a platform to build apps on, a Twitter competitor, etc. since the cost was real and up-front but any benefits were largely hypothetical based on enough other people deciding to pay at all and some of them building apps.

I think a subscription model could be viable with better execution but it really seems like that would be best with a tiered approach so the social network wasn't held back by the payment requirement.

<comment><USER37> I think your diagnosis is on target: "the cost was real and up-front but any benefits were largely hypothetical based on enough other people deciding to pay at all and some of them building apps."

But freemium is hard: Either you make a market for ads, and have intrusive data collection and analytics, and you have to compete with the most intrusive ad-supported products that already dominate the ad market and you become as bad as them, OR you have pure freemium and you have the question of how to make the up-sell compelling enough while keeping the free level of service interesting enough. The only good example of success at freemium is LinkedIn where they segmented their user population and only made the recruiters pay a very high premium price.

</comment></comment></comment><comment><USER39> [https://app.net/](https://app.net/)

When a service shuts down, it'd be really nice of them to keep a mention of _wth they were doing_ on their frontpage.

<comment><USER40> [https://alpha.app.net/](https://alpha.app.net/) has info

</comment></comment><comment><USER41> Still a good domain name. MS might be interested.

<comment><USER31> And then they launch a free platform, integrated with Windows 10 and Cortana, that competes directly with Twitter...

</comment></comment><comment><USER42> Building developer platforms is fun and exciting. Especially for the developers creating it, knowing that they are building a rockstar application for people just like them. Getting adoption and conversion to paying customers is so freaking hard and ultimately the end of the road.

I went down this road once ([http://www.odatahq.com/](http://www.odatahq.com/)) and loved every minute of it. I still look at what we made and find true joy in it. But the end game was typical of most developer platforms ...

</comment><comment><USER43> I feel strange that this is the first time I've ever heard of app.net. I assumed it was something Microsoft related, apparently not. I suspect the combination of these things is why this failed.

</comment><comment><USER44> Doomed to fail from the beginning. Horrible name which was leeched from Microsoft, and Twitter was clearly already so far ahead. AND THEY WANT ME TO PAY?

</comment><comment><USER45> Really loved and appreciated what Dalton, Berg, and the team was able to build. It was an awesome community for quite a while. Great job and sorely missed.

</comment><comment><USER37> IIRC YC had a bet in the subscription social network space for "family social networks." That has obvious problems with the growth model, similar to but different from Path which had an arbitrary limit on individuals' number of "true friends." Path was taking the word "friend" too literally. That got pivoted and/or rolled up. Where is it now?

</comment><comment><USER46> Shutdown date according to [https://alpha.app.net/](https://alpha.app.net/): March 15, 2017.

Shutdown date according to [http://blog.app.net/2017/01/12/app-net-is- shutting-down/](http://blog.app.net/2017/01/12/app-net-is-shutting-down/): March 14, 2017.

Which date is correct?

<comment><USER47> Depends on which side of the International Date Line you are.

<comment><USER46> Laughing tears emoticon, a few times! :D

</comment></comment></comment><comment><USER48> So... who gets the domain?

<comment><USER49> My thought exactly! Always loved the domain. :)

</comment></comment><comment><USER50> MMW : This domain will be sold a fortune.

</comment><comment><USER51> I was an earlier user and still active to this day and it's sad but not unexpected to see them go. Their approach towards social networking business model was still a valuable experiment.

</comment><comment><USER52> The difference, as always, seems to be user adoption and funding.

You need both for your project to succeed. This should not be underestimated.

The nice thing is that if your platform is decentralized, hosting is a non- issue and you just have to focus on adoption.

</comment><comment><USER53> "give it ample time to bake" that was the strategy? having it sell itself?

<comment><USER54> They did try to sell it for a couple of years but by that point in 2014 I think they had essentially given up already. But the revenue was covering the hosting costs so it seemed sensible to just leave it going, and leave possibilities open.

<comment><USER53> as an entrepreneur, you should know when it's time to let go. either you continue the start-up a.k.a the experiment, and try to iterate towards a more successful direction - or you shut it down. I think standstill at such a point is really the worst of all options.

</comment></comment></comment><comment><USER55> Good luck to Caldwell. It would be interesting to read his account on what he would do better if he could do it all over.

</comment><comment><USER56> I wonder if the code base that they open source will become the basis for another decentralized social network?

<comment><USER57> They have said they will be open-sourcing the codebase. But it doesn't appear to up on their Github yet : [https://github.com/appdotnet](https://github.com/appdotnet)

</comment></comment><comment><USER58> If the launch would have been more humble maybe this wouldn't be such a spectacular failure.

</comment><comment><USER59> They were trying to solve a problem, with a copy of the problem. Not surprised really.

</comment><comment><USER60> Is app.net some social network? Why the name 'app.net' ?

</comment><comment><USER61> App.net'S failures, IMO, were not a result of being too early as Dalton suggests. Instead, they failed at building a company. Confusing branding, wrong messaging, and ultimately a product without a need. That's why app.net failed.

[https://arielmichaeli.com/where-did-app-net-go-wrong- bb4326a...](https://arielmichaeli.com/where-did-app-net-go-wrong- bb4326a440f4#.zii8m9uu0)

</comment><comment><USER62> less than 50000 downloads in Android and 60 reviews in AppStore in 5 years. I think you can get better numbers without marketing.

Seriously, whatever you do, you need to spend the same amount of time promoting it, otherwise no one will notice. 50000 downloads is nothing in 5 years, it is 2.7 users a day. If you are in SanFrancisco you can get more than 3 downloads a day just going to the street and talking with strangers.

And they got 2.5M in their series A. [https://index.co/company/AppDotNet?utm_source=thenextweb.com](https://index.co/company/AppDotNet?utm_source=thenextweb.com)

Where were their budget for marketing? At least I would have expected 500k in marketing and 1$ per install, them we can talk about the users not liking the product or whatever.

UPDATE: you can keep downvoting (I would appreciate a feedback comment to explain the downvote) but it doesn't change the fact that marketing is more important than the product and they didn't spend on it

<comment><USER17> I don't mean to pick on you, but this is getting tiring for me. When you say 'marketing' you mean advertising and promotion, because product definition is part of marketing. Sizing up the market and determining what to build is marketing (inbound), advertising and promotion is also marketing (outbound). I realize these definitions have been in flux, but I'm talking traditional MBA definitions. I feel a lot nuance is being lost on people who believe marketing is a sophisticated-sounding term for advertising and promotion.

<comment><USER62> > I don't mean to pick on you, but this is getting tiring for me. When you say > 'marketing' you mean advertising and promotion, because product definition > is part of marketing.

Well, you shouldn't judge me so fast. I have an MBA with marketing and I have been working on marketing for some time in my life. So I am aware what a marketing plan involves, and promotion is a small portion of it. I cannot suppose the founders knew all about marketing, but I would expect them to spend some money in promotion even if it not wise money.

Maybe you like this more. You have to do some marketing: define your product, know your users, define your goals, find the channels where your users are, target them, promote your product to those users in those channels, measure the results, analyze what happened and rinse and repeat. (that was also a small definition because marketing is still more)

<comment><USER17> I didn't judge you, sorry if it came across that way (that's why I said I wasn't picking on you specifically, but your choice of words; apparently, you even know better than that). It is just so ridiculous that I can find 10+ instances per day on HN where people use 'marketing' when they could more correctly write 'advertising/ promotion'.

</comment></comment></comment></comment><comment><USER63> Never heard of it

<comment><USER64> I'm a pretty active lurker on HN and I really had to think hard about what App.net was and why I might care. I think that is an indicator of why they might have had a hard time surviving. Even hardcore nerds didn't know about it so I really don't expect "normal" people to know about it. :(

</comment></comment><comment><USER65> This reeked of being dead the day it launched, so it's hardly surpising, but it's also tragic.

Why is it so hard to create a Twitter alternative that's popular and effective? Does the world tend to gravitate towards single standards for these things, like Facebook, HTTP or email?

<comment><USER66> Network effects, and the existing services being "good enough"

<comment><USER67> Yeah basically that. People don't want extensible services or open platforms. They don't want full control over their data. They don't want 100% privacy. These are all niche things that like less than 1% of people want. Most people just want a thing that does one basic job and does it good enough.

<comment><USER17> I can see how you would takeaway that perspective, but App.net never guaranteed what you laid out. It was proprietary just like Twitter. If App.net ever got mainstream traction, we have no idea if they would have held to those principles, and history tells they would not have. The free, open, federated network's time has still not come. Most people are still coming to grips with the existence of these social networks; they have not yet jumped to the conclusion that makes App.net make sense. I believe it will happen.

</comment></comment></comment></comment><comment><USER68> Can I have my $75 back?

</comment><comment><USER69> Kinda ominous that the main Twitter alternative right now is GAB.

<comment><USER70> What's that?

<comment><USER71> Twitter for the alt-right, it seems. [https://en.wikipedia.org/wiki/Gab_(social_network)](https://en.wikipedia.org/wiki/Gab_\(social_network\))

<comment><USER72> Let's not normalize white supremacy by calling it "alt-right".</comment></comment></comment></comment>


Signals of selection in the human genome: important new paper - <AUTHOR> http://scienceblogs.com/geneticfuture/2009/03/signals_of_selection_in_the_hu.php <comment><AUTHOR> Money quote: "This is the most important recent paper in the field of human evolutionary genetics - a thorough and careful analysis of the signatures of positive natural selection left in our genome by the last 10-40,000 years of adaptation, using a population sample that is far broader than those used in previous studies (53 populations rather than 4)."</comment>


Distributed Summer 2020 - <AUTHOR> http://distributedhackathon.com <comment><AUTHOR> Hackers! Join us on 14-16 Aug for a UBC student-led hackathon. Participants from all over Canada will learn, build and innovate with cutting edge technology, and will compete for cash prizes!</comment>


Google Co-Founders Plan To Sell Up To 10 Million Shares Over Next Five Years - <AUTHOR> http://www.techcrunch.com/2010/01/22/google-co-founders-plan-sell-10-million-shares/

<comment><USER2> Wonder why they've decided to end up @ less than 50%?

<comment><USER3> Especially since that would bring them down to 48%. It's not like they're selling the majority of their shares.</comment></comment>


Could the Net be killing the planet one web search at a time? - <AUTHOR> http://www.vancouversun.com/business/Could+killing+planet+search+time/4891461/story.html

<comment><USER2> Just don't take a breath to make up for it.

For comparison to the 1g CO2 per search:

      - One breath: 0.001g
      - One hour of a 60 watt bulb: 0.060kg
      - One gallon gasoline burned: 8.9kg
      - One hour of El Chinyero vent: 90000kg

(Note, it's late, so I may have screwed up some of the calculations between pounds, hours, and other imperial units)

<comment><USER2> That breath was supposed to be 1g or .001kg. See, I was tired!</comment></comment>


Seven years of Flickr commits visualized with Gource - <AUTHOR> http://www.vimeo.com/11876335

<comment><AUTHOR> Gource project link: <http://code.google.com/p/gource/>

Previous discussion on gource and DHH's rails commits visualization: <http://news.ycombinator.com/item?id=1329495></comment>


Louisiana State University ends Elsevier bundled journal subscription - <AUTHOR> https://www.insidehighered.com/news/2019/05/24/lsu-ends-elsevier-bundled-journal-subscription <comment><USER2> Louisianaian here! Back when I did my PhD at LSU 5 years ago, the university seemed like it was constantly in a budget crisis from a combination of state funding cuts and public demands for low tuition (lots of people in Louisiana view LSU attendance as something like a birthright). As mentioned in the article, this cancelation is almost certainly driven by cost cutting. I hope my friends still there can still get the literature they need!

Related article I found about a legal dispute LSU had with Elsevier: [https://www.insidehighered.com/news/2017/05/03/louisiana- sta...](https://www.insidehighered.com/news/2017/05/03/louisiana-state-takes- disagreement-elsevier-court)

<comment><USER3> Most on HN don't know about the TOPS program which pays for all Louisiana students to go to in-state public colleges (LA Tech, LSU, ULL, ULM...etc) tuition free if they meet some pretty basic requirements like 4 years of math and two years of foreign language in highschool in LA. Most Louisiana colleges require at least an 18 or a 21 on the ACT iirc to get in as well (pretty easy). I got a great engineering degree and then landed a great job because of this. There's a lot of bad in LA (crime, heat, humidity, mosquitos...etc), but this made up for a lot.</comment></comment>


The Future Sounds Like This - <AUTHOR> http://weburbanist.com/2009/11/17/the-future-sounds-like-this-10-magnificently-modern-musical-instruments/

<comment><USER2> quote: "Similarly digitally enhanced are the electric violins, a family of new hybrid instruments that are sufficiently well-established to become a mainstay of the modern music scene."

I don't know about the __new __part of it, Jean-Luc Ponty has been fiddling with electricity since since the late-60's.

For some examples and maybe early '80's hair see: <http://www.youtube.com/watch?v=bKkMvBvyqvE> (violin starts around 1:15), [http://www.youtube.com/watch?v=Sk3ffGs40VY&feature=playe...](http://www.youtube.com/watch?v=Sk3ffGs40VY&feature=player_embedded). Plenty of other examples are out there, some of it wears well.

For more recent stuff, <http://www.youtube.com/watch?v=p_T9adkdBhY>.

I have good memories of reading the whole Chronicles of Narnia to the album "Imaginary Voyage": [http://www.amazon.com/Imaginary-Voyage-Jean-Luc- Ponty/dp/B00...](http://www.amazon.com/Imaginary-Voyage-Jean-Luc- Ponty/dp/B000002I93)

<comment><USER3> Also from 1982: <http://www.youtube.com/watch?v=scFykNMqaws>

And we can't forget the classic: <http://www.youtube.com/watch?v=y2KIxMQro-w>

</comment></comment><comment><USER4> This seems like a good opportunity to plug my friend Felix's Machines. A weird collection of music making machines that remove the human from performance. Check them out here: <http://felixsmachines.com/>

Don't miss the very cool video here: <http://felixsmachines.com/video/>

There are some more slightly more amateur videos of the machines on Youtube as well. There's also a video of Felix's TED talk coming out soon. And some albums next year I think...

</comment><comment><USER5> <http://www.electrickazoo.com/>

Now that's a modern instrument. It's actually incredibly fun to play, and can be useful in a mix with the right effects.

</comment><comment><USER6> The seismic FaceBass with Didjeribone is also pretty awesome.

<http://www.youtube.com/watch?v=QkCRlVkKOqw>

</comment><comment><AUTHOR> You all probably know about this one, as it came out a couple of years ago, but I still think its one of the best. . . <http://www.youtube.com/watch?v=oWROdOMAoKQ>

</comment><comment><USER7> If the future sounds like that I'm going to weep.</comment>


UWA students accused of plagiarism - <AUTHOR> https://secure.csse.uwa.edu.au/run/help2140?p=np&a=197&all=y

<comment><USER2> I teach. There is a huge difference between "some students worked together and submitted similar labs" vs "some students handed in exactly the same thing featuring the same obscure errors and same random whitespace inconsistencies, save for some lame cut-and-paste and search/replace differences obviously intended to conceal blatant plagiarism". It's not that the answers are similar, it's that all the mistakes are identical right down to each sporadic extra space.

Think: several students handing in the same "what did you do last weekend" essay - even if they spent the entire weekend together, their submissiions should not be the same text right down to dotting a particular 'i' with a tiny heart.

</comment><comment><USER3> I've seen first hand how someone can be falsely accused of plagiarism because they had a solution that just happened to be similar to another student's solution. Two high school friends in my CS program had learned programming together and had a very similar coding style. They were put in the difficult position of having to prove a negative -- that they didn't cheat -- before an ethics commmittee.

Anyway, seems a bit unfair to post these usernames publicly.

(That said, the people defending their actions with phrases like "working together" and "helping each other" probably need to reread their department ethics policy)

</comment><comment><USER4> _This unit is horrible, I failed it last year. I got 49%.

When I asked Arcady Dyskin about the blatant plagiarism that I should have taken a part of to pass he simply told me "Cheating has been part of student culture for thousands of years".

So the unit co-ordinators have been releasing the same assignments for 600 students each year._

Here's the professor at UWA that's mentioned above: [https://www.socrates.uwa.edu.au/Staff/StaffProfile.aspx?Pers...](https://www.socrates.uwa.edu.au/Staff/StaffProfile.aspx?Person=arcadydyskin)

Sorry to say, but there is an attitude in Russia that cheating is OK, but getting caught is not. It's even more unfortunate that this attitude persisted throughout this guy's academic career.

<comment><AUTHOR> To be fair we don't know if this claim is true or not, I certainly doubt any lecturer at UWA condones plagiarism.

(Also thanks HN for changing the thread title, though it does sound a little harsh towards UWA)

<comment><AUTHOR> Condone as in overlook

</comment></comment></comment><comment><USER5> Direct link to the graph porn some commenters have mentioned: <https://files.me.com/jonathan.wan/uxhv4p>

That's really the only thing I find interesting about this thread.

</comment><comment><USER6> I find it hilarious that people have to resort to personal attacks to defend the fact that they were obviously cheating.

</comment><comment><USER7> In reality it is so difficult to identify honest-to-goodness plagarism in comp sci. For instance, in my algorithms courses, wikipedia was super useful. Most significant algorithms (e.g. quicksort) have a pseudo-code implementation, and when you look them up, it's really hard work to NOT make yours look identical. How do you deal with that situation?

Answer: you deal with it in the way my algo prof did. We implemented algorithms so we could compare performance. So he'd say, for instance, "write libraries in C to implement a binary, ternary, and quaternary heap. Then, write code to track how many data accesses there are, run all three on test input, and compare results". It doesn't matter if you're copying the algorithm from online; if you don't understand the algorithm then you won't know exactly what you're tracking.

</comment><comment><USER8> I like the pdf; they should run this program at the Chinese university I'm at. It'd be a complete graph. :)

<comment><USER9> I find infrographics like this fascinating, anyone know what app this was made in?

<comment><USER10> This looks very much like output from neato - <http://www.graphviz.org/>. I'd be pretty surprised if it wasn't.

</comment></comment></comment><comment><USER11> I always loved the way every engineering degree teaches you that the most important thing is that you must never work with another student, copy existing work or collaborate in any way.

Thats what industry demands - engineers that must work totally in isolation.

Of course it's not as bad as my PhD where I had to sign a disclaimer that it was entirely my own work and not the result of any collaboration or group effort. This as for an experiment at CERN that had about 10,000 people working on it!

<comment><USER12> They aren't being paid to come to an engineering solution. They are paying to learn and get a degree. Which problem has an entirely different solution space. And probably doesn't include "steal/borrow/buy problem solutions and learn nothing, graduating in 4 years to design crap that kills people"

<comment><USER11> Then design courses and exams/projects so that team work is the way to do it right. They are paying to learn how to be engineers - the most important part of any engineering project is collaboration, teamwork and project management - not memorising Von-Whatsits formula for strength of a beam

I don't want a new engineer who thinks it's cheating to look up the strength of a beam in a handbook!

<comment><USER12> One step at a time. Learning to do each skill is confounded using "teamwork" when that simply means one guy does all the work.

</comment></comment></comment></comment><comment><USER7> The questions in my first (And even some second year) comp sci classes were so trivial, and java so verbose, that it would be impossible NOT to have the same code as someone else.

Granted, if those percentages are obtained by, say, diffing the files, I'd be more inclined to take this seriously. I'm so anal about my spacing and brace placement that when I google for a code snippet to do X or Y (at my job, not my school of course), I change the spacing and braces to suit my OCD.

<comment><USER13> They are obtained by simple diffing. 100% means a character-for-character match for all of the code. This means that the student didn't even bother changing their name and student ID written at the top of the code in the comments.

</comment></comment><comment><USER14> One thinks of Ken Thompson's Turing Award lecture, "Reflections on Trusting Trust", paragraph three:

"That brings me to Dennis Ritchie. Our collaboration has been a thing of beauty. In the ten years that we have worked together, I can recall only one case of miscoordination of work. On that occasion, I discovered that we both had written the same 20-line assembly language program. I compared the sources and was astounded to find that they matched character-for-character."

</comment><comment><USER12> Sounds like a "warning shot", issued to scare lazy students into giving a crap and actually learning the stuff.

</comment><comment><USER15> Anyone know if there's a copy of the mentioned graph elsewhere? The original link is down.

<comment><USER13> <http://cassa.org.au/junk/diamonds.png> \-- Low-res version unfortunately.

</comment></comment><comment><USER16> It would be helpful to know what the assignment was.

If it was something like, "Given a list of integers, sort them alphabetically by their full names in English", of course most everyone's programs are going to look similar.

<comment><USER13> [http://undergraduate.csse.uwa.edu.au/units/GENG2140/unit- mat...](http://undergraduate.csse.uwa.edu.au/units/GENG2140/unit- material.html#assignments)

</comment></comment><comment><USER17> The visualization is pretty nice. I'd be inclined to give a pass to the 2-person clusters -- unless similarity was 100%. But look at some of those clusters.. that's not coincidence or even just "helping someone out".

<comment><USER18> Ah, but a cluster doesn't mean they all collaborated with each other. For example, take a look at the big one in the middle: 3 identical ones and one pretty close, for a 4-person clique. Chances are that there are actually 3 connections instead of 6 - two collaborated, one shared with a friend, the other helped a friend by spelling out the pseudocode.

</comment></comment><comment><USER19> I don't know if publishing such a graph is a good idea. Imagine a jealous girlfriend going through some of those 2-person clusters and finding you there with some other girl. Besides, sometimes students just steal each other's work. I once caught a pair of students with two identical homework reports (me being a TA). It turned our the guy has stolen the homework solution from his classmate/girlfriend. She was not guilty. He was. In such a case, openly accusing both parties of cheating on the homework is just not fair.</comment>


I Interviewed Matt DeBergalis (Meteor Founder) on the Future of Meteor - <AUTHOR> http://www.meteorinterviews.com/7

<comment><AUTHOR> If you've ever heard Matt speak you know he's very eloquent on where software development is headed, and this one was no exception.

Matt talked about how Meteor came to be and where it's going. We talked about the forthcoming Galaxy hosting platform, React, being opinionated, and the Meteor Development Group's decision making process about which components make up the Meteor stack.

</comment><comment><USER2> This is great! Thanks for posting!

</comment><comment><USER3> great to hear Matt's kernel hacker background is being put to use putting kubernetes to work.</comment>


Ask HN: Weekend side projects? - <AUTHOR>

What weekend side projects are you working on?<p>I'm working on a mobile HTML5 social game that backends into Parse. <comment><USER2> My stale side project (haven't worked on it for a bit), a fun way to chat anonymously with other random Facebook users -- <http://www.letschattr.com>. If you want to try it, you'll need a friend to use it at the same time as well (or use two windows).

</comment><comment><USER3> Pro-tip for those without any: keep an ideas.txt file. Keep it on GitHub, too, so others can use it.

</comment><comment><USER4> Right now, a chrome extension for Steam, adds a bit of functionality to the store. Some extra links, prices from all regions, probably some other crap too.

Currently the goals for it are to implement and use redis in a production site, learn to make a chrome extension, and just to get another thing launched. Possibly also to install/config a server from scratch (on Linode).

</comment><comment><USER5> Currently working on a Dota2 fansite with my brother. I'm really groking the usage of Mercurial for source control. It's really amazing.

</comment><comment><USER6> Right now I'm working on a command-line utility for ripping albums off Youtube. It uses some music database APIs to lookup tracks for a specified album, and then finds individual youtube videos to rip for each track. Once a video is downloaded, it will be converted to m4a and metadata will be added to it as is available.

<comment><USER7> Sounds like fun, but won't the quality be fairly bad?

</comment></comment><comment><USER8> My friend Joseph (<http://josephcurley.me>) and I created ExploreMore as a fast and fun way to find interesting local events and happenings. We used Flask and the Eventful API. Feedback appreciated! <http://bit.ly/O5b2jU>

<comment><USER9> Looks promising, but the event list was cut off at the bottom, with no way to scroll. It was not intuitive at first, but then I clicked the "See a list of events?" link and it was all pulled up - but then the search field was on top of the last event.

<comment><USER8> What browser and OS are you using?

</comment></comment></comment><comment><USER10> I'm working on what is, for now, a demonstration single sign on provider. <http://prototype.projectmaelstrom.com/>

Test application: <http://nodetest.projectmaelstrom.com/>

</comment><comment><USER11> More of a side project than a weekend project: <http://localbeer.me> \- helps you discover locally brewed beer. I just added Facebook open graph actions last weekend

<comment><USER12> How do I add breweries? I'm in Boston and there are none on the map, but we have tons of breweries.

<comment><USER11> I add them manually, state by state. I'm about 1/4 of the way thought (there are thousands). Regular users can add them too, but in practice nobody does.

<comment><USER9> I like the idea, but I got to say the UI is a bit confusing... I really wanted to add a couple of places, but just couldn't figure out how.

</comment></comment></comment></comment><comment> adam-_- More of a side project than a weekend project but I'm working on <http://twitcherhq.com> \- a social media analytics and monitoring tool.

</comment><comment><USER13> <http://pouchdb.com/>

in browser version of couchdb, mostly its a database that works offline and syncs online.

<comment><USER14> We should exchange notes, I'm trying the same thing with BrowserDB - <http://srirangan.github.com/browserdb> \- 'cept the API is inspired by MongoDB.

</comment></comment><comment><USER15> I'm learning Xbox 360 (Xbox Live) Indie game development

</comment><comment><USER16> Screen candidate and conduct telephone interview for free at <http://simplyhire.in/>

</comment><comment><USER17> <http://www.sofreakinannoying.com> \- needed this to vent

</comment><comment><USER14> BrowserDB - <http://srirangan.github.com/browserdb>

</comment><comment><USER18> I am making a language learning HTML5 game using the Kinect through the Zigfu API.

</comment><comment><USER19> a photo processing tool on ipad.</comment>


Show HN: Audio Visualizer in C++ using OpenGL - <AUTHOR> https://github.com/indrajithi/Audio-Visualizer <comment><USER2> You left the binary and the object files in your repo, that's not a good thing to do.

Otherwise it looks pretty nice!

<comment><AUTHOR> That was added by mistake. It is removed now. Thank you for pointing that out.</comment></comment>


Skype 5 (beta) for Mac released - <AUTHOR> http://www.skype.com/intl/en-us/get-skype/on-your-computer/macosx/beta/

<comment><AUTHOR> If I can make a suggestion: Don't replace your existing, stable Skype. The new one throws away their previous UI and some of the changes are REALLY pissing me off. I usually have Adium, Colloquy, and Skype all lined up in a Spaces screen nice and neat with my current chats. Skype 5 makes this impossible, forcing you to have everything in one, excessively large window. You'll see...

Also, some features which I can't live without seem to have been excluded. (sharing only a portion of your screen, for example)

YMMV but I think the designers suffered a case of "Don't fix what ain't broke"</comment>