Show HN: Pushpin – A new way to build realtime HTTP and WebSocket services - <AUTHOR> http://pushpin.org/

<comment><USER2> Great idea, but all the marketing speak on the landing page just didn't make sense to me. Things immediately fell into places when I saw the diagram in the"About" page.

Pushpin is a proxy server that adds websockets to existing request-response apis. Why don't you just say that straight away?

<comment><USER3> Thanks for the feedback.

One thing I've observed over time (the website is new, but the project is not) is that Pushpin's value isn't immediately obvious from a one-sentence description. So instead of starting out by saying what it does, I often like to start out by discussing the problems that it is trying to solve.

But yeah, you're right. I, too, prefer when projects plainly say what they do. I'll see about reworking the text.

<comment><USER4> Yea. Front page looks nice, but does not explain to me in the terms i understand (technical terms) what it does. Assuming your target audience are developers/CTOs/etc I would re-think what text you have on your homepage. Possibly even get some kind of diagram on the front page.

</comment></comment></comment><comment><USER5> What is the intention of licensing the core server under AGPL?

Does the REST API represent enough of a boundary behind the Pushpin server to separate the web application from the AGPL's requirement to give the source code to public users?

Edit: Are there any widely-used proxies this tightly coupled with applications that are released under a similar license? (Translation: is this normal?)

<comment><USER3> Yes, the intent is that the Pushpin<->backend interface is enough of a boundary that you don't need to provide the source code of your backend applications.

The AGPL is used to protect Pushpin itself. Open sourcing it all was a big step for us. :)

</comment></comment><comment><USER6> I saw a presentation on this last month, and found myself wanting to invent a problem just so that I could solve it with this type of scaling. Great presentation and great product.

</comment><comment><USER7> Can you provide a real world example of an interaction, and how it would be improved with pushpin in front of it?

<comment><USER3> Sure. For example, we made a tool called WebhookInbox that collects HTTP requests. It has a realtime API that lets you know when requests have arrived:

[http://webhookinbox.com/docs/api.html#live- updates](http://webhookinbox.com/docs/api.html#live-updates)

The above API has the quality you'd expect from a long-polling or streaming API produced by companies like Dropbox or Twitter, except that the backend is just a basic Django app. There's no crazy stateful event-driven code in WebhookInbox.

So basically it makes realtime API development like this much easier.

</comment></comment><comment><USER8> Trying not to offensive. Two years ago I would find this useful. But I'm so glad I learned Node.js where this can be accomplished with high level sockjs module and nginx in less then five minutes.

[https://github.com/sockjs](https://github.com/sockjs)

<comment><USER3> No worries! Pushpin isn't really about providing the easiest answer. It's about radically changing how we architect and operate realtime web services. In fact, Pushpin and Node are complementary, and Pushpin has a Node library.

If you're already using a language/framework capable of WebSockets or long- lived HTTP connections like Node (or Tornado, or Go, or countless others) then Pushpin's value may not be immediately apparent. It just seems like yet- another-realtime-server thing, right?

The _long_ answer is that Pushpin restores the division between API designer, engineer, and operations that we all enjoy in the RESTful API world but that is currently non-existent in the realtime world. But, until you have many servers, a multi-tiered architecture, and a team, this may be hard to appreciate. ;)

</comment></comment><comment><USER3> Hey folks. The idea with Pushpin is to make realtime APIs easier to create. Think of it like Socket.io, but aimed at API creators instead of application developers.

Most realtime APIs today are implemented using low-level network code, because until now that was the only sophisticated way to do it.

<comment><USER9> I found Pushpin interesting when I heard about it a couple years ago. Haven't had the chance to use it yet, but I'm curious if you could give a summary of what's changed.

<comment><USER3> Aside from a host of fixes/refactorings, the biggest change is that it now supports WebSockets, with either a WebSocket origin server or HTTP origin server.

Also, the backend protocol (GRIP) was refined to work via HTTP headers instead of JSON instructions in the response body. This change helps simplify backend code and makes it more readable. The response body mechanism is still supported though, since it's more extensible and may be needed in rare cases (such as status code 304 with Apache).

</comment></comment></comment><comment><USER10> I absolutely love the API design here - running a realtime layer as a proxy in front of a traditional request/response webapp (which controls the realtime proxy through custom HTTP headers) is really elegant.

</comment><comment><USER11> This is fantastic! Thank you :)

For my use case, each client needs a separate channel which is short lived (they are generating a report which is unique and takes some time). Would pushpin have any problems with such a setup?

<comment><USER3> Shouldn't be a problem with Pushpin. There's no major resource overhead in having lots of channels, and since channels exist on demand there's no extra administrative work either. Just assert unique channels at hold time, and publish to those unique channels.

</comment></comment><comment><USER12> I notice that you can have Pushpin talk directly via ZMQ.

I would love to see an example ZeroMQ-based Ruby "web server" that can be used a backend for Pushpin to avoid the HTTP stack on the application layer.

<comment><USER3> The communication protocol is called "ZHTTP" which works in either REQ/REP or PUSH/SUB modes. It basically wraps HTTP in ZMQ messages. We submitted a draft here: [http://rfc.zeromq.org/spec:33](http://rfc.zeromq.org/spec:33)

I'm not much of a Ruby developer, but I just committed a Python example using the REQ/REP interface. It should be readable enough so you can get an idea of what's involved: [https://github.com/fanout/pushpin/blob/master/tools/zhttpreq...](https://github.com/fanout/pushpin/blob/master/tools/zhttpreqhandler.py)

To activate the realtime stuff, you send the same Grip-* headers as you would with normal HTTP.

A word of caution: while this path is more optimized, it is super bare bones. As soon as you start doing anything advanced, you may find yourself wishing you were using a real web framework (I know, because this happened to me once already! haha).

<comment><USER12> Thanks for this, probably enough to get started.

The plan was to create a Rack-compatible injection point that uses ZMQ instead of HTTP which could be used with any of the standard Ruby frameworks, rather than getting too bare-bones.

I'm not sure whether there are any real _wins_ here though.

Although my real use case is to take queries from Pushpin and put them directly into a persistent queue for processing by workers before them pushing the responses directly back at Pushpin so that we can do a zero-downtime deploy, even if the workers are down for up to 55 seconds (with long-polling).

<comment><USER13> [https://github.com/rack-amqp](https://github.com/rack-amqp) 's Jackalope might be of interest to you. It uses AMPQ rather than ZMQ though.

<comment><USER12> Looks interesting. May be a good starting point, although it's ultimately Pushpin that makes this model interesting to me.

</comment></comment></comment></comment></comment><comment><USER12> I'm curious as to how much Pushpin is part of the Fanout.io stack?

Is Fanout.io just a (admittedly very affordable) hosted version of Pushpin?

<comment><USER3> Yup, Fanout.io is basically a hosted Pushpin service, among other things (like Webhooks, Bayeux, etc).

</comment></comment><comment><USER14> Meta question: is the use of "realtime" for this kind of thing already accepted or is there some discussion about it? I ask because the other meaning[1] is more natural for me and once in a while I get confused about which meaning is intended in articles' headlines.

[1] [http://en.wikipedia.org/wiki/Real- time_computing](http://en.wikipedia.org/wiki/Real-time_computing)

<comment><AUTHOR> For anything web development it's generally acceptable to use the term realtime/real-time, but it's really "near real-time".

</comment></comment><comment><USER15> Whoever is responsible for your site's design has done an excellent job.

</comment><comment><USER16> That's pretty exciting. Good to see new players in this space :)

</comment><comment><USER17> Is this similar to Faye?

<comment><USER3> Sort of. Faye and Pushpin are both publish-subscribe servers. The difference is that Faye speaks the Bayeux protocol with clients, whereas Pushpin is client-protocol-agnostic.

Use Faye for simple JSON messaging to applications. Use Pushpin for developing APIs.</comment></comment>


Ask HN: What would you do if you couldn't use a computer ever again? - <AUTHOR>

For whatever reason, this has been on my mind over the past few days.
We are a crowd that believes in the promise of technology. I probably spend more than 10 hours a day in front of a computer monitor building things. And that's when I'm feeling social!
Don't get me wrong, I LOVE it.
But what would you do if something caused you to never be able / want to use a computer again in the same capacity that you do now? The reasons could be one of many: a disability, loss of interest, law enforcement, etc.
What would you do with your life? <comment><USER2> I'd probably sink a lot of time into going to libraries and reading; I'd subscribe obsessively to various periodicals to try to reach the depth and breadth of knowledge that I'm used to (read: addicted to) getting online.

I might also try to start regular board gaming groups or something like that.

<comment><USER3> Presumably you'd still need to earn a living, somehow...

</comment></comment><comment><USER4> Assuming you include today's mobile phones and such as a computer...

I would be involved in art or photography. I'm far from being great (or even okay), but thats where I'd be.

For many of us, computers were a hobby before a job, so why not try to make other hobbies a job if we had no computers?

</comment><comment><USER5> Probably read. Earlier in my life I'm constantly on the computer because of games, but now it's all about the knowledge. Computer and the internet allows me to find the right information. If computer is no longer available, I could probably spend more time at the library instead of reading Ebooks or Hacknews

I would probably have to abuse myself by looking through the tech news section on New York Times, but oh well....

</comment><comment><USER6> Get an axe, a hammer, a saw, and a tape measure and build things in the real world.

</comment><comment><USER7> I'd try to find some way to use my math background. That, or teach.

</comment><comment><USER8> Become a white water rafting instructor, head to New Zealand, and live there for a few seasons rafting and in the off season, travel the world. Was really close to quitting everything and doing this a couple years ago until I got reinspired by web design.

</comment><comment><USER9> Read books, make music, build stuff, meet people, travel.

And I plan on doing plenty of those even while being capable of using a computer as much as I want.

</comment><comment><USER10> Build real things, with real tools, using materials like wood and metal.

</comment><comment><USER11> I would write a program/ build a device that will solve the problem...

Wait a second...

oh S#!T...

I would first check how much my life insurance will cover for """accidental""" death...

</comment><comment><USER12> I would spend 100% of my time Building the "Dell" model but instead of for computers, for fruits and vegetables. :-) . I have a small farm already. Nice start!

</comment><comment><USER13> That's easy, I'd be a musician.

</comment><comment><USER14> Take over the world.

<comment><USER15> Considering that most of the world is run through computers and you cannot use computers, how do you plan to do this?

<comment><USER14> I think that if only a fraction of all the brain power put into building software was dedicated to making the world a better place for humans (all of them) (aka "take over the world") ... then the world would most certainly BE a better place. Instead most of us creators/philosophers are stuck into "the box" while the world is run by marketeers and accountants.

</comment></comment></comment><comment><USER16> try and teach people to improve their cognition

</comment><comment><USER17> The world would be a happier place. Let's say it is enforced by law on all human beings there would be no unemployment with millions of men replacing computers. Probably all intelligent computer geeks will put their heads into solving world hunger and poverty!</comment>


Show HN: Track your time between deployments - <AUTHOR> https://github.com/cbartlett/heroku-average-deploy

<comment><AUTHOR> This is a little plugin I wrote to track something I've done manually for years. I blogged about it here: [https://blog.statusgator.io/how-often-do-you- deploy/](https://blog.statusgator.io/how-often-do-you-deploy/)</comment>


An artificial intelligence predicts the future - <AUTHOR> https://worldin.economist.com/article/17521/edition2020artificial-intelligence-predicts-future <comment><AUTHOR> The answers make sense. Could such an AI do consulting? Would one allocate money based on such interviews? Can you think of new types of applications of such a pretrained AI? It's an exciting time to be alive.</comment>


New hard drive write method packs in one terabyte per square inch - <AUTHOR> http://arstechnica.com/science/news/2010/05/new-hard-drive-write-method-packs-in-one-terabyte-per-inch.ars

<comment><USER2> > ...for example, a method that involved electron quantum holography was able > to store 35 bits per electron...

Um, given that this stuff is being stored roughly at room temperature, that's impossible (or misstated).

</comment><comment><USER3> That title contains a bug, that should have been 'square inch'.</comment>


Why my book can be downloaded for free - <AUTHOR> http://blog.plover.com/book/free-hop.html <comment><USER2> tl;dr</comment>


Ride-sharing services to be halted in Bangalore - <AUTHOR> http://www.thehindu.com/news/cities/bangalore/Ola-Uber-to-stop-ride-share-in-Bengaluru-from-Friday/article17119006.ece <comment><AUTHOR> If they submit a request seeking permission to ply, we will recommend to the Karnataka government that ride-sharing be allowed," Mr. Aiyappa added

This is the kind of inept and useless bureaucracy that needs to stop. In a city that is choc-a-bloc with traffic and has poor public transport options, why would anyone want to stop car-pooling services? Boggles the mind.</comment>


Hall of API Shame: The Boolean Trap - <AUTHOR> http://ariya.ofilabs.com/2011/08/hall-of-api-shame-boolean-trap.html <comment><USER2> Silly; most coding tools have hove-to-get-API-definition. No, I don't' assume destroy(false) doesn't destroy the object, that's just goofy. It means the 1st argument is false; hover and find out it means (whatever it means).</comment>


Ask HN: What's your favorite bookmarked HN thread? - <AUTHOR>

Also called the "Thread of Threads" and a follow-up on https://news.ycombinator.com/item?id=2158116 <comment><USER2> My favorite single post for practical value in the history of HN is tptacek's answer to "How to start a consultancy:"

[https://news.ycombinator.com/item?id=4245960#up_4247615](https://news.ycombinator.com/item?id=4245960#up_4247615)

<comment><AUTHOR> Simple and "easy" (once you dare it), ... I think i missed that post though, thx!

</comment></comment><comment><USER3> The one where the person scolds, "Did you win the Putnam? If not, please don't be "bolder" than..."

Just read the thread, laugh, and reflect on some of the talent that Hacker News has lurking:

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

</comment><comment><USER4> Without a doubt: How I Hacked Hacker News (with arc security advisory) by dfranke

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

</comment><comment><USER5> 'tzs on missile command. _Absolutely no question about it._

[https://news.ycombinator.com/item?id=6225951#up_6228350](https://news.ycombinator.com/item?id=6225951#up_6228350)

</comment><comment><AUTHOR> Let me kickstart this thread with:

[https://news.ycombinator.com/item?id=7367243](https://news.ycombinator.com/item?id=7367243) \- Ask HN: Successful one-person online businesses?

</comment><comment><USER6> Is there a way to search pinboard.in and/or delicious for the news.ycombinator domain? If so I'll be able to tell you.

<comment><AUTHOR> Yeah, over here : [https://hn.algolia.com/](https://hn.algolia.com/)

<comment><USER6> No, I want to search the bookmarking site pinboard.in for bookmarks from the HN domain. Make sense?</comment></comment></comment>


Microsoft Security Essentials: Free antivirus software - <AUTHOR> http://www.microsoft.com/security_essentials/

<comment><AUTHOR> The support pages seem to be full of broken links - but that's Microsoft.com.

An interesting move though - is this good timing or is it in support of Windows 7?

It will be interesting to see if Microsoft has the organisational skills needed to keep something like this up-to-date and current.</comment>


Test CSS for Harsh Widget Environments? - <AUTHOR>

Does anyone know of (or have) some test CSS that simulates a ridiculously harsh widget environment, e.g. sets all the possible CSS properties to crazy values? <comment><USER2> could give this a try

      * { outline: 1px dotted red }
      * * { outline: 1px dotted green }
      * * * { outline: 1px dotted orange }
      * * * * { outline: 1px dotted blue }
      * * * * * { outline: 1px solid red }
      * * * * * * { outline: 1px solid green }
      * * * * * * * { outline: 1px solid orange }
      * * * * * * * * { outline: 1px solid blue }

and tack on whatever other craziness you want to test.</comment>


Show HN: Lirik (Lyrics Syncing Tool) - <AUTHOR> https://lyrik.netlify.com/interpretations/1?a=12.083&b=23.228&lng=en <comment><AUTHOR> An easy to use lyrics syncing tool with the capability to export an ass subtitle file. I found it useful with aegisub and ffmpeg. I am willing to answer any question. Thanks

<comment><USER2> Looks great! How did you align audio with text?

<comment><AUTHOR> Is a manual job. I am confident is more user friendly, though. (when the user has to do something, i mean)

</comment></comment></comment><comment> th-ai pm if u wanna see alt tool to navigate text, sync syllables, also able to output plaintext (turn captions ON) thx

[https://www.youtube.com/watch?v=lc70jtgkZjA&list=PLVXb5NHhY9...](https://www.youtube.com/watch?v=lc70jtgkZjA&list=PLVXb5NHhY9zPiEYEhMJi0a5g7IXtnsgtK)

<comment><USER3> another product that does this with syllables? sure i'd love to understand how sound syncing works

</comment></comment><comment><USER4> Nice! I was attempting something similar a while ago. I couldn't login with Facebook (the app appears to be under developing mode) so I couldn't test creation.

Do you do any sort of automated frequency analysis use aid aligning the phonemes to the specific timings of the song?

<comment><AUTHOR> I wish. I am afraid is not that impresive, but with proper motivation i would like to get there. As i said to someone else, i will make the tool more accesible so you can check it out. Thank you.

</comment></comment><comment><USER5> The end result sync animation is cool, like being able to click the text to scrub to that part of the video.

But I wasn't sure how to use the Create form so I couldn't figure out what the tool was and how it worked.

<comment><AUTHOR> Now that i know people are willing to try it out i will make it more accesible. I will really appreciate you check it out soon. Probably tomorrow. Thanks again.

<comment><AUTHOR> Electricity goes out this morning, :( But now i realized, you can check it out already with the songs posted, just click the A button below the info, besides the pencil. (i am not a graphic designer, i admit)</comment></comment></comment>


Review UI: Resto-Net.ca - <AUTHOR> http://resto-net.ca/

<comment><USER2> It took a while to realise just how serious this site is, at first glance it looks a bit like a domain park landing site.

I should be able to click on "Latest Infractions" "Highest" etc to go to the full ranking.

In firefox: hovering over the links in the grey bar you have under your logo, the hover background image (light gray box) is larger than the normal image. Makes all content below it move when I hover over the links.

Over all, I think the site is too muted, either make it less grey or brighten up the red. Since you are dealing with transparency here, why not go for something more clear? eg, blue?

I think it's an awesome project though, and wish my local government was more open.

<comment><AUTHOR> Thanks for the comments, will put some into action.</comment></comment>


Ask HN: April Thread for Companies Seeking Entry Level CS Grads? - <AUTHOR> Every month HN has a Thread where companies post job openings. This month of April can HN have a separate thread for companies seeking Entry level CS grads with and without experience? This distinction would make it easier on students who are looking for full time / internships and F1 students.<p>There are many students who have some good experiences and contributions to Open source projects but are not CS grads. They have problems with interviews and it is a bit discouraging. Such a thread might be helpful along with any suggestions the community might have. <comment><USER2> Contact the moderators (link in footer).

I can point to an older comment by one of the moderators regarding 'whoishiring'-type submissions [https://news.ycombinator.com/item?id=15151412](https://news.ycombinator.com/item?id=15151412)

</comment><comment><USER3> This would be really helpful if carefully implemented.</comment>


There's a good reason Americans are horrible at science - <AUTHOR> http://qz.com/588126/theres-a-good-reason-americans-are-horrible-at-science/?google_editors_picks=true <comment><USER2> Upvoted in part for the awesome line "If he had told me something straight out of a superhero comic book, like that 95% of the universe is made up of some hypothetical invisible substance called "dark matter," I probably would have believed that too."</comment>


Binaural beats - <AUTHOR> http://en.wikipedia.org/wiki/Binaural_beats <comment><USER2> See also the coolest auditory illusion I know of: [https://en.wikipedia.org/wiki/Shepard_tone](https://en.wikipedia.org/wiki/Shepard_tone)

<comment><USER3> I _knew_ that sounded familiar!

"In The Dark Knight and the follow up The Dark Knight Rises a Shepard tone was used to create the sound of the 'Batpod' \- a motorcycle that the filmmakers didn't want to change gear and tone abruptly but to constantly ascend."

</comment></comment><comment><USER4> Many years ago I worked on a now defunct project (RapidLingual.com) that mixed binaural beats over spoken language lessons. Binaural beats had been marketed for a long time as a 'super learning' technique that could induce a state of mind that's more focussed and receptive of a lesson (though the theory was there, there was no study that confirmed it).

Unfortunately the guy who was supposed to write the lessons never really did his part and the whole thing collapsed, but it gave me a chance to play around with it and noticed:

\- Binaural beats are common in urban environments for things like air conditioner units that resonate at slightly different frequency, but pair up for a loud binaural pulse

\- Adding white-noise enhances the effect of the beats (you find similar backing noise in products like Holosync)

\- You can only encode to FLAC. Because of the lossy psycho-acoustic nature of Mp3 encoding, it strips out the inaudible part of waves that you apparently need

\- For a trippy experience, I wrote a program that fades the screen (red- black) in sync with the beats

<comment><USER5> > \- You can only encode to FLAC. Because of the lossy psycho-acoustic nature > of Mp3 encoding, it strips out the inaudible part of waves that you > apparently need

This is not correct. You can lossily compress the audio that produces binarual beats and it's just fine. All it really is is two pitches being played, one of the left channel and one on the right. The two channels play tones that are almost the same pitch (but not quite, usually separated by 4-20 Hz). There's no inaudible part of the waves. Two sine waves work great, with no harmonics, and nothing inaudible about them. Unless your mp3 encoder is changing the pitch of the sine waves (which it isn't), it will work perfectly.

You can find all sorts of (compressed) Youtube videos with binaural beats that are reproduced correctly.

<comment><USER4> I said "apparently" as I never noticed a difference between flac and mp3.

What I read was along the lines of - one technique mp3 uses is to remove the parts of a sound file that the human ear doesn't actually hear - parts which would appear in flac and that apparently do have an effect of the beats.

Could have just been marketing hocus pocus, but who knows as all the encoded beats online appear as mp3s.

<comment><USER6> MP3 tends to remove some of the phase information (though I don't know how applicable this would be at lower frequencies) from the signal, which would quite likely have some effect on binaural beats.

</comment></comment></comment></comment><comment><USER7> While we're on the subject of the brain handling things at a more raw level than you might expect, here's another interesting group of experiments: [http://en.m.wikipedia.org/wiki/Mental_rotation](http://en.m.wikipedia.org/wiki/Mental_rotation). At university, we carried out some of Shepard and Merzlar's experiments to measure the rate at which our minds could rotate objects. Even though it subjectively feels like the mind has a graphics card that can rotate objects, it was still surprising to discover that the perception isn't an illusion—and to be able to measure our own mental rotation rates in degrees-per-second. It's not mentioned on the Wikipedia page, but I remember carrying out an experiment that showed that if it takes you, say, one second to mentally rotate an object by 60 degrees, then at the 0.5-second mark, you really do have a mental representation of an object that's rotated halfway (i.e., by 30 degrees). Maybe this isn't surprising to some people, but psychology is full of examples of the brain taking outrageous shortcuts, so it surprised me that mental rotation—which would appear to require a prohibitive amount of processing power—isn't being fudged by the brain.

</comment><comment><USER8> Here's some software for generating them;

[http://gnaural.sourceforge.net/](http://gnaural.sourceforge.net/)

[http://discord.sourceforge.net/](http://discord.sourceforge.net/)

[http://sbagen.sourceforge.net/](http://sbagen.sourceforge.net/)

[http://entrainer.sourceforge.net/](http://entrainer.sourceforge.net/)

<comment><USER9> Or, since this is Hacker News, you can use ChucK, which is a realtime programming language for processing audio:

        SinOsc left => dac.left;
        SinOsc right => dac.right;
        300 => left.freq;
        310 => right.freq;
        while (1) 1::second => now;

<comment><USER10> The last time I looked at ChucK had to have been almost 5 years ago. I was doing some interesting phase shift work where I would offset one channel by a few samples. Lots of fun.

<comment><USER11> Are you talking about a fixed offset, as in [https://en.wikipedia.org/wiki/Haas_effect](https://en.wikipedia.org/wiki/Haas_effect), or a variable offset, sort of like a flanger?

</comment></comment></comment></comment><comment><USER12> Another entrant in the fascinating club of _" weird but cool sounding things tried in our teens/20s in the hope they blow your mind but invariably don't"_ alongside lucid dreaming, smoking banana peels, and staring at the back of someone's head to see if they can sense your voodoo powers.

<comment><USER13> Lucid dreaming is actually pretty cool and did blow my mind. It's essentially not that different to temporarily being a god, with complete control over your environment. Takes a bit of getting used to, to not wake up as soon as you realise you're lucid dreaming ("oh my god, how exciting! Wait, no, don't wake up now!"), but once you get that down, your imagination is the limit. Pretty mind-blowing imho.

</comment></comment><comment><AUTHOR> Make sure to try the demo at the top of the page. Our auditory system is really neat.

</comment><comment><USER14> I have been running [http://healingbeats.com/forum](http://healingbeats.com/forum) a large forum related to Binaural Beats for awhile, some good sbagen presets there.

Here is a good place to create and listen to binaural beats on your browser using the new html5 audio apis:

[http://mindstate.michielroos.com/binaural- beats/](http://mindstate.michielroos.com/binaural-beats/)

</comment><comment><USER15> 90 percent of them dont seem to have much effect, but i found a few that seemed to put me in a super deep sleep... like an audio mind massage. pretty sure it was a 3hz delta state, with out any weird static noises mixed in. i find those static sounds somewhat annoying, but did find a pleasant one with nature sounds mixed in there.

</comment><comment><USER16> You get theese when the instruments in a section of an orchestra or band are out of tune. It's a very good "lazy" way of checking to see who's out of tune if you don't have perfect pitch.

<comment><AUTHOR> As pointed out elsewhere in the comments, this is different.

</comment></comment><comment><USER17> This can be easily heard on a piano. Just play two adjacent low notes at the same time and volume.

<comment><AUTHOR> No, it's different. That's a real beating effect. This is an phenomenon that happens when the two tones are heard separately in each ear and the beating just happens in your head. It tells us that our auditory system retains some waveform data, up to about 1000 Hz.

<comment><USER18> This is what I find fascinating about it.

I understand from a math/physics perspective why a microphone places betwen two sound sources playing slightly different frequencies "hears" the beat pattern. I _don 't_ understand why that still works once the two individual signals have made their way into your audio nerves and brain. (If I didn't have actual _work_ I shoukd be doing now, I suspect I'd happily drop into a 6 or 8 hour wikipedia and google mediated deep-dive laymans research session.)

<comment><USER19> It's a phenomenon that happens to all waves, whether they are acoustic or electromagnetic. In fact, it's how your clock radio tunes to various stations. This property is a mathematical property of all waves, hence even when your brain mixes an electrical representation of the sound going into your left and right ears, you still get the effect.

<comment><AUTHOR> For higher frequencies your auditory system doesn't retain the waveform information, so this doesn't happen.

<comment><USER18> I wonder if that's an evolutionary thing – somehow we evolved out the ability to retain phase difference information outside the frequencies where it's useful for stereo angular location?

The "~1000Hz" upper limit is pretty close to a 1/4 wavelength for a "phased array" of two ears ~100mm apart. That'd make it pretty ideal for angular discrimination based on phase difference.

<comment><USER20> You're pretty spot on here -- up to approximately 1500Hz, the auditory brain can make use of so-called inter-aural time differences which allow estimation of a given source's azimuth. After that, phase differences become ambiguous and the brain relies more heavily on inter-aural volume differences.

[http://en.wikipedia.org/wiki/Interaural_time_difference](http://en.wikipedia.org/wiki/Interaural_time_difference)

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> it's the pulsing that induces the altered states, you can use a metronome-like sound for similar results, this ones at 9hz which is mid alpha - absorbed in a good book frequency

a quick bit of supercollider code: play{SinOsc.ar(369.99,0,LFPar.kr(9))}

</comment><comment><USER22> Knew about them for a long time. I am still not sure if these work for some people or not, because they don't work for me at all.

<comment><USER23> I don't think they work at all, especially because there are no studies proving binaural beats to be good for anything (except making money?). The only blind study Wikipedia cites was published in the "Journal of Alternative and Complementary Medicine", which isn't really a journal at all.

Edit: Found this study [1] looking at binaural beats and changes in EEG: "Analysis of changes in broad-band and narrow-band amplitudes, and frequency showed no effect of binaural beat frequency eliciting a frequency following effect in the EEG". This study is (conveniently) not cited in the Wikipedia- article.

[1] [https://www.sciencedirect.com/science/article/pii/S016787601...](https://www.sciencedirect.com/science/article/pii/S0167876012006241?np=y)

<comment><USER24> I'm convinced they "work" when done correctly. If the current brainwave frequency is too far from the desired state, the entrainment may not work, from what I've read. I hope they do more studies.

I first found out about binaural beats and brainwave entrainment in the 80's reading a book called MegaBrain by Michael Hutchison.

I went to his seminar. There was a device that generated binaural beats via audio and some flashing lights.

I closed my eyes, put on the headphone/helmet thingie. Did the program. My mind was 100% on the ball. Pshaaaw. Felt like nothing happened. Was skeptical. Gave up on it. Took off the helmet. Stood up. And fell back into the chair. Because the brainwave entrainment put me into a sleepy state.

While I understand that placebo's are powerful, I find it hard to believe that I imagined that deep a sleep, particularly when I had decided that it didn't work.

Flash forward years later, I figured they must have an app for the iPhone by now. So I searched and found several, but settled on an app called Brain Wave, by Banzai Labs. It isn't quite as strong an effect as with the light machine combined, but it does seem to get me into a deep sleep.

I understand this is anecdotal. Try downloading an app, do a program and judge for yourself.

</comment></comment></comment><comment><USER25> I have used brainwave entrainment before, to aid myself in meditation and to help me visualize. It did help me feel that I got into more of a meditative/trance state while using them, but sometimes it worked too well and I fell asleep (it doesn't help that I meditate lying down in my bed).

When I actively used stuff like that (many years ago), I had the impression that bineural beats in particular weren't useful. However I tried to Google it and I wasn't able to easily confirm my memory, so I guess it's up in the air for me.

</comment><comment><USER15> The UAE has banned some of the aps. Thats what finally got me to try them out.</comment>


Nuclear – Popcorn Time for music - <AUTHOR> https://github.com/nukeop/nuclear <comment><USER2> It seems like calling this "Popcorn Time" for music isn't necessarily a great comparison.

PT allowed streaming playback of torrented movies and was very clearly piracy and illegal.

Meanwhile, this seems like an aggregator for existing free sources of music (Bandcamp, YouTube, SoundCloud).

That said, it looks like a cool hobby project and a great alternative for folks who want/need a multi-source music client. Google Play Music was my go- to service for a long time since I could not only get streaming access but also upload my own local files to their servers for playback anywhere. Most of that local music came from Bandcamp.

<comment><USER3> I think everyone is tired of being ripped off by out of date copyright laws and industry shenanigans. The music industry is full of blood thirsty lawyers, big ticket prices, unjust YT algorithms, and death by a thousand cuts with all the monthlies from music streaming services. I for one am fed up with this oligarchy and am happy to see services like this pop up from time to time to remind me that technology will continue to displace these brokers until it murders the middle man entirely. I look forward to that day.

<comment><USER4> A little while back, a project named Supportify was posted here. It looks at your most played tracks, and tries to find Bandcamp links for the artists, so you can support them directly.

[https://tomduncalf.github.io/supportify/](https://tomduncalf.github.io/supportify/)

</comment></comment></comment><comment><USER5> Popcorn time was popular because it was way better than any of the legal alternatives. You just had to open it, type the name of the movie/series and you probably could start watching. You could also do this in the legal alternatives, but the chance of actually finding what you were looking for was pretty small.

Here I don't really see how this is better than Spotify/iTunes/Amazon Music.

<comment><USER6> Spotify recently removed six songs in my "offline" playlist from its library, so I can no longer play them. If this actually saves music files, that's a big plus.

<comment><USER7> You can use your own copies of music in Spotify. All you have to do is tell it where to find them on your disk.

And if you connect with a mobile device on the same network as the computer with the files on it, they'll automatically be transferred so you'll get them on mobile too.

Two of my favorite bands (Blind Guardian, Kamelot) put only their last couple of releases on Spotify, but with this method I can listen to their whole back catalog.

<comment><USER8> Reading through Spotify's docs, I really don't want to put control of my music life in the hands of Spotify's tenuous relationship with the music industry.

<comment><USER7> That's the point, you don't have to. The spotify software synchronizes your personal collection between all your devices and uses it to fill holes in their catalog.

Afraid that an artist is going to pull their stuff from spotify? Acquire digital copies of that artist's work some other way, and spotify will slot them right into your playlists where the old ones used to be. I did this when SPV Records pulled Silverthorn, it was practically no work.

Even if the whole industry abandons spotify, it will still be unique and valuable as a seamless way to synchronize your music library between all devices.

<comment><USER8> If the industry abandons Spotify, and my entire music life was wrapped up in it, then I need to acquire 600+ individual music tracks from 400+ artists, if I hadn't already done it already, all to continue listening to music the same way I do now. The problem gets worse the longer I remain on the platform. And that assumes I'll be able to get my data, about which tracks I need to acquire, out when the time comes. If not then I'm really up Shit's Creek without a paddle.

I'd rather pay more in the short term, paying for individual tracks, for a solution that will work indefinitely, than set up a situation in which extreme disruption of a part of my life I'm utterly reliant on can be afflicted at a whim of a dipshit music exec who doesn't understand how people can become reliant on music or worse, understands and does it anyway because it'll make him more money.

<comment><USER7> So you're saying, you're afraid of being reduced to small personal catalog in an unlikely future apocalypse scenario, and you are solving this problem by forcing yourself to use a small personal catalog today?

<comment><USER8> I wouldn't call it unlikely. Music services have a history of getting shut down. Sure, Spotify's star is bright now. But it could get acquired tomorrow by a company that decides it doesn't want to support all my use cases. If one of those use cases is something I'm reliant on, then Spotify all of a sudden becomes totally worthless.

Whereas my personal catalog will never stop supporting my use cases.

<comment><USER7> What music services have a history of getting shut down after 11 years of profitability and complete cultural and market dominance? Spotify is hardly comparable to Zune or whatever.

It's totally your prerogative to not use spotify or other music streaming services, I'm just saying fear of imminent market apocalypse isn't really a good reason to deny all of the upsides.

<comment><USER8> Cultural and market dominance? Where can I get some of that Kool-aid? Spotify is certainly more successful than _many_ of the alternatives, but it's a crowded space. Apple Music, Amazon Music, Google Play Music, YouTube Music, SoundCloud, Pandora, Bandcamp and 8Tracks are just the ones I've heard of. Any one of these, including Spotify, is subject to acquisition, spinning out, or outright shutdown at the whims of the music industry. Any of these events can change the service such that it's practically useless.

The ones already shut down or folded into different companies with different priorities include Rhapsody, Beatport, Rdio, Last.fm's streaming offering, and the aforementioned Zune. Forgive me if I'm a little cautious and not willing to depend on the magic of "the market," cue jazz hands, to ensure access to my music, especially when I have a solution that's _already working_ that isn't subject to those risks.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> >On an unrelated note, highly polarized opinions about languages and frameworks are characteristic of people who lack real-world programming experience and are more interested in building an identity than creating computer programs.

How incredibly arrogant. It can't be that people have legitimate grievances with elecron, like not wanting to use a program based on an incredibly bloated and poorly designed platform, oh no, they just "lack real world experience" and are "more interested in identity" (whatever that means).

High-and-mighty types like this are exactly why working in IT or contributing to FLOSS is so draining at times.

<comment><USER10> While I get why people are annoyed by that message, I get and understand it.

It's super annoying when you are trying to create a desktop app and you get issues (multiple of them) essentially going "Why are you using Electron? it eats up my RAM, please use X framework and you should be fine"

This would be fine if:

      1. You attached that with a PR for said framework or
      2. You searched before and read this being answered earlier

From a maintainer's point of view - this is super annoying.

I'm sure the author built this to satisfy his itch first and open sourced it because it might help others (either to directly use the product or to learn from the code). It's super annoying when you have people who think they know better come and tell you to use X because they have a problem with Electron (not necessarily your app in particular but Electron in general). I say this as it appears the author might be using arch linux and as a linux user, I always appreciate an electron app vs no app (obviously a native app is better but that's generally never the option - it's generally electron or nothing).

I'm sure it could have been worded nicely but eitherway it got the effect the author wanted - it drives away people who'd be annoyed by Electron in the first place.

<comment><USER11> > It's super annoying when you are trying to create a desktop app and you get > issues (multiple of them) essentially going "Why are you using Electron? it > eats up my RAM, please use X framework and you should be fine"

It's super annoying when I'm looking for a desktop app and everything I find is really a poorly-disguised web app which eats RAM.

Just develop programs for X11 & POSIX: every system, from Windows to Linux to macOS to *BSD supports them to one extent or another.

<comment><USER12> Please _don 't_ develop directly against X11 (or reach into X11 APIs when using a UI toolkit that runs on everything else too).

<comment><USER13> Why not?

<comment><USER12> If we're talking about cross-platform: X11 is not native on Windows, it's not native on macOS, it's not native on Wayland. (On the first two, it requires deliberate installation of some X server, and you won't even get direct rendering with that!)

Most annoying for me personally: it doesn't support proper HiDPI scaling. X11 apps are blurry on my HiDPI Wayland desktop, which makes me not want to use them.

In general, X11 is absolutely inadequate for the modern world. It's a legacy protocol that has the "any client can be a keylogger" security model, drawing primitives from the 80s that no one uses anymore plus all the history of bolting on more modern ways of rendering. (And don't get me started on the input systems, of which there are several and no one knows how that code even works.) And the protocol is synchronous, so you'll always have some slowdowns. Oh and the fucking screen tearing! In modern display systems, every frame is perfect, _by design_ , by _protocol_ design. X11 only has various "tearfree" hacks in the server that work with varying levels of success.

</comment></comment></comment></comment></comment></comment><comment><USER14> There was a time (Napster -> Bearsahre/Limewire/Kazaa) when I would have been excited about something like this. As I've become more financially stable, and have more hardware for music to integrate into I look at a project like this and think: How can I share music links with my friends easily? How do I get these songs on my watch? How do I get these songs on my phone? How do I play these from my home speakers? How easy is going to be for my partner to do all of the same things?

The user experience bar for a music service has gone up since the days of Napster. If you primarily use one computer and that's your audio experience, this probably works well. I've found that I'm increasingly playing podcasts and music in different locations and going back to a centralized playing source is not an experience I want.

<comment><USER15> Ten years ago evey respectable device had DLNA support, an agnostic way to browse and play all kinds of media content available on the local network. Sharing a song with a friend could be easily done by sending the whole song (duplicates were not an issue since well-formed MP3s usually included Musicbrainz UUIDs that the media players compared), or by simply linking to Youtube or Grooveshark.

DLNA is slowly going the way of RSS. It's too open of a standard for the current times. Google is already mounting an Embrace-Extend-Extinguish attack on it via the Chromecast protocol. I'm scared Bluetooth audio will be the next to be forgotten. Meanwhile, cloud music services are current trend, and it's not crazy to think they will follow the Nextflix-HBO-Disney steps and start creating walled gardens full of exclusive content.

So, which options do we have now? Users can surrender power and gain convenience by going with, say, Spotify. The app's slick, the multiple device support is awesome, and the social features, while nowhere near Audioscrobbler/Last.fm, are enough. Keep in mind Last.fm is more than 15 years old. 15 years without progress on the music social media front. Also, disappearing songs are a huge problem. A company that pulls a song from their catalog without notifying the user is borderline evil. I feel connected to music. It's almost like the company is deleting a memory from your brain, hoping you won't notice its absence.

Another option is to keep living in the 00s and maintain a home music library. You ensure no songs will disappear from your library without notice, which is good. The bad thing is you are more isolated. There's no easy way to access your library in other devices, there's no easy way to integrate a personal library with a cloud service, and there's no easy way to share your experiences with friends in the same way you can do it with Spotify.

What do I do then? I decided to go the Spotify way, while keeping a small "memories" library which contains the more obscure songs, plus the ones I want to keep with me forever. I'm wary, though. The day Spotify decides to become more profitable, it will be over. Half the features will be gone, and we'll have to start all over again in a worse position than before, because our hardware will be less open than it is now.

<comment><USER16> >Another option is to keep living in the 00s and maintain a home music library. You ensure no songs will disappear from your library without notice, which is good. The bad thing is you are more isolated. There's no easy way to access your library in other devices, there's no easy way to integrate a personal library with a cloud service, and there's no easy way to share your experiences with friends in the same way you can do it with Spotify.

I have ~40k songs uploaded and available to stream for free anywhere with google music. I'm still the kinda of crazy that maintains my own collection locally and it stays sync'd automatically. It also serves as a free offsite backup. Agreed that there is no easy way to share but I have vastly different musical tastes from my friends so that's never been an issue for me, though for a lot of people it might be a negative.

<comment><USER15> I used Google Music until recently, just to unify the cloud library with my personal library. The problem was how atrocious the Google Music player is. It's a joke compared to Spotify, or to any desktop app.

<comment><USER14> Does Spotify let you merge your personal library with their cloud library? I used to use Google Music but I switched to Apple Music when they allowed you to have a hybrid library.

<comment><USER15> You can have a local library in Spotify, but it isn't synced. Google Music allows you to upload your own songs and play them on all devices.

<comment><USER14> Ah okay. Apple Music works the way Google Music does.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> I have what is probably a very naive question, as I am not well versed at all in Electron or web frameworks. I understand the complaints towards Electron, but I also see the appeal of developing utilizing a cross-platform browser. Is there a reason why developers can't simply have their application run in a local server? (Jupyter Notebook is an example that comes to mind.) This way, the user can use their browser of choice and doesn't have to have several installations of Chromium, while the developer can still utilize the web. I imagine it's more complex than this, but it's something I've been wondering.

<comment><USER18> Some reasons off the top of my head:

1) Local servers are a no-go for multiuser environments unless you want to log-on every time you run your "native" app, as most (all?) browsers don't support http over domain sockets and there is no authentication for local sockets.

2) Managing the health of the service properly in a cross-platform manner is complicated. With electron if the app crashes, it just crashes. With a local server the browser tab just stops working. Sure technical users can figure it out, but if you are targeting a gui over a console, presumably you are trying to capture some fraction of non-technical users.

<comment><USER19> Ignoring the multiuser issue, could not some javascript be injected that displays "crash" instructions (or even just closes the tab) in the event the server becomes unresponsive? I'm not a web dev, but this sounds feasible.

</comment></comment></comment><comment><USER20> Best part is the text in the LEGAL document:

# Legal information My lawyer tells me I am allowed to smack anyone saying this program is illegal with a flyswatter.

<comment><USER21> So he's allowed to smack flyswatter-owning people who say it's illegal? Awesome, I don't own a flyswatter!

Isn't English grand?

<comment><USER22> No, they have to say that it's illegal by using their flyswatter.

However, that makes you safe anyway :P

</comment></comment></comment><comment><USER23> Isn't that just YouTube or Spotify? Free music is freely given out legally these days, don't see the need for this.

<comment><USER24> I wouldn't use this for my own moral reasons but we have different definitions of free. In this case you use "free" to mean: providing personal data and being subjected to a targeted marketing campaign in exchange for music.

<comment><USER25> Using youtube-dl circumvents both the personal data and the marketing. Just convert to audio with ffmpeg, and then you can listen on your own devices with a normal music player.

<comment><USER26> You can use youtube-dl to download just the audio stream directly, no need to remux with ffmpeg.

<comment><USER27> Are you happy with the audio quality with streams ripped from YouTube? I'm guessing it's been compressed more than once and that can't be good.

<comment><USER25> Using the flag shown at [https://askubuntu.com/questions/423508/can-i- directly-downlo...](https://askubuntu.com/questions/423508/can-i-directly- download-audio-using-youtube-dl), you can see all of the different stream qualities available (both audio and video). Some videos (particularly official music videos) have pretty good audio, while amateur videos, remixes, and parodies usually don't sound as good.

</comment></comment></comment></comment></comment></comment><comment><USER28> People who build on Electron should understand the technical tradeoffs they are making. On the one hand, they get a cross platform app, on the other, they have an extra Issue in their bug tracker to move to another platform, with occasional reminders thereof.

On an unrelated note, highly polarising comments about languages and frameworks are characteristic of people who lack real-world programming experience and are more interested in building an identity than creating computer programs.

<comment><USER29> I was recently tasked to build a cross platform win/linux/macos application. After looking around a few options, I plumped for Electron. (Also since I can write JS etc. pretty confidently)

Glad I did. The project was done way faster than I could have imagined. And everyone else was amazed and pleased as punch with the result.

Job done. :)

<comment><USER30> Great job optimizing for developer productivity!

</comment></comment></comment><comment><USER31> This looks great conceptually but the UX on my first run through was awful.

The prominent "Best new music" part had an Earl Sweatshirt album review, so I wanted to listen to it, but you can't click the album title... only the artist name. Then I had to sift through 30+ album covers (no titles... not ordered by release date) to find the one that looked like the one I saw on the previous page (it had a slightly different cover).

You'd think a "new" album would be at the top.

Then I double clicked the first song twice, then realize there is a popup that has a "Play Now" button on a SINGLE click (unlike Spotify or Google Music). I clicked that and it only added it to my "queue", I thought it was downloading for a couple min, but nope I had to click "Play" at the bottom to actually start it.

I went to another album, clicked "Play Now" on a song and it froze with the logo pulsing fullscreen, and I had to restart the app.

This is basic stuff.

<comment><USER32> I'm getting the same results. I've puzzled with it for 20 minutes and have yet to get sound out of it.

</comment></comment><comment><USER33> Title suggestion: nuclear - Popcorn Time for music

It's nice to know the project's name

</comment><comment><USER32> Once upon a time I used a program called iRate. It had an online database of freely available music, and would download music, and you could rate the music, and its algorithms would attempt to figure out what music you liked and provide you with more of it. While the algorithms sucked, it was really nice to listen to random music, with a menu item that said "download more music", and get more music you had never heard of.

More recently, I used Songbird (which went through a few name changes). It was a web browser that tried to include iTunes functionality. It really sucked - imagine trying to take a normal web browser and make it twice or thrice or more slower - but the idea was nice, you could go to music blogs, and click the play button and listen to all the songs they linked to, and click the download button if you wanted to keep the file.

I am trying to get Nuclear to work, just to see what it's about, but I literally can't get any audio out of the program. That makes it slightly useless.

I would love a program that collated legally available music and provide a music player interface (preferably VLC or WinAmp style and speediness). There is so much music out there that you would never have to listen to the same song twice. Digging through SoundCloud and BandCamp and Archive.org would provide endless music. Archive.org alone, if you wanted to avoid legal issues (even though lots of music is available free streaming at the other two websites I mentioned).

Perhaps I'll have to write this program myself. I already have too many projects as it is, though.

</comment><comment><USER34> I love this, it's so simple (at least the idea is) yet nobody has done this. (as far as I know). I use Popcorn Time almost daily and spent 60 700 minutes in 2018 listening to Spotify, so it's safe to say I need my music, yet to me 120 Euros a year is 120 spent elsewhere or saved. I already have a VPN subscription for Popcorn Time so this is really wonderful.

There was at one point an app that did something similar (I can't recall the name), except it used YouTube instead of torrents which made it pretty useless for me as I find 128kbps playback rate to be quite terrible.

"It's too late now to be Stripe, but there's plenty still broken in the world, if you know how to see it." (even if it is of dubious legality)

edit: nvm all that, got fooled by the title. This does not work with torrents but with free music streaming services, which will clearly be inferior to most premium services like Spotify, guess I'm starting another new side-project...

</comment><comment><USER35> Not sure making the UI look so much like Spotify was a wise move.

<comment><USER36> Looks worse, but just as slow!

</comment></comment><comment><USER37> Reminds me of AudioGalaxy back in the day, nothing else came close to finding anything. Eventually it shutdown and Grooveshark was ok for a bit but that heyday in the early 2000s of music "streaming" was really something.

</comment><comment><USER38> Didn't we already get a "Popcorn Time for music" (which didn't use legal sources) with [http://aurous.me/](http://aurous.me/) ?

</comment><comment><USER39> > Popcorn Time for Music

but where is the torrent client?

</comment><comment><USER40> Don't call it popcorn time for music.

It looks good enough to stand by itself.

</comment><comment><USER41> Is this another program which publicly exposes your IP address...and thus makes you vulnerable to copyright strikes from your ISP or potential legal action?

</comment><comment><USER42> It's amazing that some guy in a garage can do a better job then 500 guy's in a fancy office ...

<comment><USER36> It's worse in just about every way than the 500 guys alternative, to be honest. It's really slow, and try searching for a specific song, or recovering from a crash, or working out what failed etc.

</comment></comment><comment><USER43> I mean Spotify is built on CEF, so who gives a shit if this is on Electron or not. It's not like there's a huge difference. Adding a piece of text to the README just to alienate people isn't wise; it just makes the author look like a tool, ripe for criticism.

</comment><comment><USER44> Ah, an Electron app... :)

Something tells me it doesn't support gapless playback. (I might be wrong tho)</comment>


How to set up a mail server on a GNU / Linux system - <AUTHOR> http://flurdy.com/docs/postfix/ <comment><USER2> This looks like _a lot_ of work was put into the article.

Nevertheless, I think you shouldn't do this. This takes a lot of time and is basically copy/pasting things around. For something as crucial as your own mail server I'd go with a solution that is automated: If your server goes away you fire up a different one in a couple of minutes, restore backups and change DNS records, done.

Reasons for this might be, in no particular order:

\- VPS provider goes away

\- hardware failure

\- user error (think "Oh, I probably shouldn't have issued that command as root on my mailserver")

\- maintenance: This guide is (initially) from 2009. How are you making sure that your system is up to date, after you followed the instructions/installed it? Either you'll leave the system to bitrot or you need to actively maintain it and probably will run into issues upgrading the machine. Or .. you migrate to a brand new machine every 6-12 month, which gives you a decent excuse to verify that your backup/restore process is working as well.

<comment><USER3> That's why I use Virtualmin for this stuff.

1) It backs up every day to one of my own machines

2) If it goes down, I'll re-upload the backup file and my whole system (mail, web, DNS, MySQL, etc) is running again.

<comment><USER4> I actually wrote a script for Ubuntu server (works on 13.04) that encapsulates most of this tutorial. It doesn't include ClamAV or Spamassassin, but does everything else. You end up with a server that uses three mysql tables.

But then I discovered that Virtualmin does _all_ of what this tutorial does, with an understandable u/i and all of the same capabilities from Dovecot/Postfix/saslauth. Doh!

</comment></comment></comment><comment><USER5> The ridiculous length of this guide is a testament to the fact that it is still really hard to host your own mail.

<comment><USER6> Something as small as "your own mail" is one or two packages on one server; this guy is implementing most of an entire IT infrastructure including database server and virus scanning capable of operating a hosting company.

Sort of like the existence of Oracle's products and IBM's DB2 does not preclude end users being able to use SQLite.

<comment><USER7> Virus scanning is maybe not that important, but pretty much everything else is.

Spam filtering for example. Would you really want to run a mail setup without it?

What would be the "SQLite" in mail servers, including spam filtering, webmail, imap and all the other conveniences?

<comment><USER8> I was able to run my personal mailserver for nearly two years without having to learn what amavis-new was. After that, I started getting enough spam that it became an annoyance and I added it.

Webmail is not that important to me now that I have a smartphone (I really recommend K-9 Mail for Android, which is FOSS [https://play.google.com/store/apps/details?id=com.fsck.k9&hl...](https://play.google.com/store/apps/details?id=com.fsck.k9&hl=en_GB)). Failing that can always log into my machine using ssh and use mutt to read and send mail.

I think the mailserver SQLite is Postfix (SMTP), Dovecot (IMAP) and some DNS records.

<comment><USER7> Postfix is the mail server used in this very guide.

So I don't consider Postfix to be easy to set up.

OpenSMTPD looks like a step in the right direction.

<comment><USER8> I haven't looked at OpenSMTPD. This guide does include a lot of configuration, but it's worth mentioning that not only are the defaults pretty reasonable, but that Ubuntu (and Debian) can configure the most important options using dpkg-reconfigure.

</comment></comment></comment></comment></comment></comment><comment><USER9> I wrote something similar, that uses Postfix, Dovecot, OpenLDAP, Roundcube, DSPAM and OpenDKIM. [http://wiki.linuxwall.info/doku.php/en:ressources:dossiers:n...](http://wiki.linuxwall.info/doku.php/en:ressources:dossiers:nectux)

I presented it at my local LUG a while back, here are the slides [http://www.slideshare.net/jvehent/di- ymail](http://www.slideshare.net/jvehent/di-ymail)

</comment><comment><USER10> I moved off Abrahamsen's recipe 18 months ago or so for no good reason other than I like to make work for myself: it had been working just fine for me. You set it up on a cloud server, take an image, and that's that - you have a working base from which you can restore your mail server if anything bad should happen.

Last year I put up the Dovecot / Postfix / Postfix Admin / Horde recipe I used in place of Abrahamsen's, and judging by the feedback it's helped a great many people:

[https://www.exratione.com/2012/05/a-mailserver-on- ubuntu-120...](https://www.exratione.com/2012/05/a-mailserver-on- ubuntu-1204-postfix-dovecot-mysql/)

(You can replace Horde with Roundcube or any other webmail package you care to put in place if you don't like it).

The market here is for learning, not necessarily for setting up. If you don't know how to set up a mail server, it is well worth walking through one of these as it will teach the lay of the land. Then you can later move to a packaged solution, as you'll be knowledgeable enough to troubleshoot it when it breaks.

I was intending to put together a Chef cookbook for my recipe, but looking at what's already out there it seems like it would duplicate some good ones that already exist. e.g.:

[https://github.com/onddo/postfix-dovecot- cookbook](https://github.com/onddo/postfix-dovecot-cookbook)

I think that running your own mail server is certainly worth the initial effort; once you have the thing set up it ticks along with very little upkeep needed.

</comment><comment><USER11> Can I ask the obvious question Why? Email (IMAP/SMTP) is so standard, there are lots of companies out there that do it better and cheaper than you yourself can do. GMail (Google Apps for business) and Fastmail.fm are the 2 names I always recommend.

Another factor to consider is how you will keep your SMTP ip-addresses from being blacklisted. Companies like Mailchimp and Sendgrid spend a lot of time and effort on this. With your own very low volume, it takes only a couple of persons to mark your email as spam and suddenly all mails sent from your domain end up in in spam folders, no matter what DKIM or SPF settings you have configured.

Only reason I would see is when you want to keep your email away from the NSA and therefore out of the USA (Fastmail is Australian based btw [http://thenextweb.com/insider/2013/10/07/are-overseas- based-...](http://thenextweb.com/insider/2013/10/07/are-overseas-based- companies-free-from-nsa-requests-australias-fastmail-thinks-so/)). Keeping your server out of the USA will not mean that your email will never travel through the USA, where the NSA can still access it, as SMTP is very cleartext between MTA's.

<comment><USER12> As much as the NSA concerns me, and as a political issue it's far more important, I am interested in reducing dependency on Google because as far as I am concerned Google has broken its trust with me all by itself. It has nothing to do with the NSA debacle.

I don't have time for a rant but the short is: I'm sick of their identity management, their willingness to put blatantly obvious "search bubble" results based on recent (or even non-recent) activity-- stuff that is prominently visible to anyone who might be sharing a screen with me. Ditto for chrome's "most visited pages" thumbnails when you open a new tab, which I disabled but had to install a plugin to do. There's some other minor issues. But the final straw came a few weeks ago when my search history showed up unexpectedly on my girlfriend's phone-- I suppose because she logged into chrome on my laptop to check her Gmail. Until she logged out, auto-complete on her phone was using MY search history from chrome on my desktop. What the FUCK? Obviously I trust her enough to let her log into my laptop so it didn't cause me problems here, but I had no way to know that would happen. So what's it going to be next time? What's google's next clever/reckless silicon valley echo chamber idea that's going to cause me problems?

I'd rather not wait to find out. So I've begun the process of reducing google dependence. Email is a big one, Gmail is my single biggest google dependency.

</comment></comment><comment><USER13> I'd have a look at one of the newer kids on the block, OpenSMTPD. Being from OpenBSD, the man pages are actually good.

[http://www.opensmtpd.org/manual.html](http://www.opensmtpd.org/manual.html)

<comment><USER14> Ugh. I _want_ to use OpenBSD- alas, OpenVZ...

</comment></comment><comment><USER15> Does anyone have experience running a mail server on a home connection with a dynamic IP?

I'm imagining a system that will have a homebox (long term storage, privacy) and a cloudbox (provides availability) and the mail flow will be like this:

       sender ---(1)---> cloudbox  ---(2)--->  homebox

Assuming cloud stays up (1) will happen, and if homebox is reachable, then (2) will also happen. However, if (2) can't be done, then cloudbox will temporarily hold the email until homebox comes online (POP mail style).

Has anyone ever setup something like this before? Any pointers will be appreciated.

<comment><USER16> Certainly. There are several ways to set it up. For example, you can set cloudbox as your domain's MX with a lower priority than homebox. If mail can't get to homebox, the originating mail server will try cloudbox automatically. If cloudbox's MTA is running in secondary mode, it will try to deliver to homebox, but hold it in the queue until it succeeds.

Or, you could have all mail sent to cloudbox, and use imapsync or getmail or fetchmail to pull mail off of it whenever you want.

Or you can use UUCP-over-ssh.

<comment><USER17> > you can set cloudbox as your domain's MX with a lower priority than homebox.

This is one way to do this, but if you do, remember that a spamming tactic in the past has been to direct spam to the lower priority MX records as often they were somewhat forgotten and not kept up with the latest spam guards.

Basically, always make sure your primary and secondary mail servers have the same and latest of whatever you are using to stomp on spam.

You will also want to change the length of time things are held in the queue. The default is something like 7 days. That might not be long enough if you're using the secondary MX as a failsafe.

</comment></comment></comment><comment><USER18> [https://github.com/al3x/sovereign](https://github.com/al3x/sovereign)

<comment><USER19> I've been looking for a good introduction to Ansible -- this may be it!

</comment></comment><comment><USER20> Out of curiosity: people who are running their own mail servers for multiple users, where do you host?

</comment><comment><USER21> I have tried this guide and others a couple of times. Unfortunately, no matter what I do, Gmail and Hotmail always classify anything I send from it as spam. DKIM? Check. SPF? Check. Reverse DNS? Check. Spamassassin score? 0.0. Result? "google thinks this message is spam". While it was an interesting experience, the end result is invariably a server that can't send mail to most of the people it needs to, which is quite frustrating.

<comment><USER22> Here some links that may help you:

[http://www.brandonchecketts.com/emailtest.php](http://www.brandonchecketts.com/emailtest.php)

[http://mxtoolbox.com/](http://mxtoolbox.com/)

[http://www.codinghorror.com/blog/2010/04/so-youd-like-to- sen...](http://www.codinghorror.com/blog/2010/04/so-youd-like-to-send-some- email-through-code.html)

</comment></comment><comment><USER23> I run my own e-mail server and it's a lot of work. I have exim with ACLs, spamd and just mutt. Nothing "fancy" like other users, pop3/imap/smtp auth, virus scanning, additional mxs...

Still took me a weekend to get ACLs right, tune the threshold for greylisting (I greylist e-mails which score between two and seven points in Spam Assasin), set up DKIM and SPF... it's not difficult but there's a long list of things to do.

If you're doing it just for yourself, exim, spamd and mutt are enough. But I wouldn't want to be responsible for a larger installation with regular, non- technical users.

It's not just the configuration, your service will always be subpar. At least until there's a good webmail (I have high hopes for Mailpile).

<comment><USER24> I don't know what you're doing then, because I run postfix+procmail+mutt and nothing else and it is zero maintenance and hardly any config. I don't use DKIM or SPF or SpamAssassin. All I have is a RBL client restriction and recipient/helo restrictions. I get possibly one spam a week and I can deal with that manually and I post to a lot of lists.

I've also built a couple of very large mail clusters (full 42U rack sized, 20+ machines) for ISPs before running courier, sendmail and procmail and it's really not that much management or effort to get it off the ground. The real bugger is getting a management front end on it all (postfixadmin doesn't cut it on that scale so it's LDAP time which isn't much fun).

I've rather horribly dealt with Exchange (2000, 2003) and that's just a whole pile of pain. My noble Exchange battling colleagues inform me that it still stinks.

<comment><USER25> If it's so easy, I am sure you have your own article detailing how you did it, right?

Also, you spam statistic sounds way off for a setup that doesn't explicitly deal with spam.

<comment><USER24> Yeah here you go on Debian. I just pasted this from my notes and added some formatting...

       == set up mutt ==
       $ sudo apt-get install mutt
       $ echo "export email@example.com" >> ~/.profile
       $ source ~/.profile

       == postfix ==
       $ sudo apt-get install postfix
         .. answer system mail name as your host name
         .. add your domain to domains to accept email for
       .. Follow instructions here WRT SPAM:
          https://wiki.debian.org/Postfix#anti-spam:_smtp_restrictions
          .. basically add two lines to /etc/postfix/main.cf
       $ sudo service postfix restart
       $ ufw allow 25 # allow smtp in firewall. I use ufw.
       .. add your hostname as the MX for your domain (I use 123-reg)
       .. Visit mxtoolbox.com and check the machine isn't an open relay and is functioning correctly

       == procmail ==
       $ sudo apt-get install procmail
       .. add following to /etc/postfix/main.cf
          mailbox_command = /usr/bin/procmail -f- -a "$USER"
       $ sudo service postfix reload

       == root alias ==
       $ echo "root: youruseraccount" >> /etc/aliases
       $ sudo newaliases

Done.

I genuinely get virtually no SPAM. RBLs and postfix sender validation above seems to work pretty well on its own.

I've done the same on OpenBSD with OpenSMTPd and spamd with even less effort.

</comment></comment></comment></comment><comment><USER26> I remember actually understanding sendmail.cf syntax. Those were the days! The problem is not the daemons; those are easy. The problem is spam on the inbound and deliverability on the outbound. And I do /not/ want to fight that fight on my own!

<comment><USER27> I've personally not found this difficult. Unless perhaps you're dealing very large volumes of mail and overhead of SpamAssassin is an issue. Mail volume in 10s of thousands/day on a low end VPS has been no problem for me.

</comment></comment><comment><USER28> I would definitely recommend using Virtualmin, its a hosting control panel that can control mail/websites/dns in one via a simple control panel.

All works like Plesk, but without breaking everything.

They've got a script that sets up dovecot, postfix, apache, bind, clamav, spamassassin, Mysql, and loads of other hosting software and then you configure every thing via a web interface.

Linux install script is at [http://software.virtualmin.com/gpl/scripts/install.sh](http://software.virtualmin.com/gpl/scripts/install.sh), instructions at [http://virtualmin.com/download](http://virtualmin.com/download)

</comment><comment><USER29> This is really cool. Amazing work.

I am looking at running my own mail server out of a Linode instance. It would service a number of our domains and serve to migrate from having web and email live on the same machine at other VPS's. I want to have email serviced from a dedicated instance that does nothing but email for all of our sites.

This seems like a better overall strategy but it's been hard to get motivated to get it done due to the amount of work this represents. I have not studied this guide in detail yet but it seems to really take you down the path step by step very nicely. Thanks!

</comment><comment><USER30> Good tutorial with detailed set up instructions. On some configuration values I would say the default would suffice as well, but mentioning what can be configured might also be helpful.

However, from experience, setting up a database is overkill for a small mail server instance hosting only a few mail boxes. It's way easier to use system user accounts (just disable remote login for them). That avoids the hassles of setting up the virtual mail delivery. Only for a large mail server using a database backend would make sense to gain more performance.

</comment><comment><USER31> I run my own email since about 20 years. My current setup is different from the author and I like it better. I had his setup a few years ago I think.

\- postfix

\- Dovecot

\- RoundCube

\- SpamAssassin w/ sa-learn sa-update and razor

\- Clamav + Clamav-milter

\- MariaDB

Spam: Not an issue.

Features: DKIM, DMARC, SPF checks

Maintenance: what maintenance? I update the programs with my distro package manager and that's basically it.. Whoever talked about this being hard....

Webmail: I like RC much better than gmail, nuff said.

<comment><USER32> What about the reliability of your home Internet connection? Isn't that a major issue? You can have a power outage, ISP problems, or your server might simply die. What happens to the important emails you might miss?

<comment><USER33> Mail servers are made to attempt redelivery if a mail is undeliverable. Most mail servers will attempt redelivery for multiple days before disposing of it so it shouldn't be an issue.

<comment><USER34> Furthermore, to address the 'server on fire' issue. If you build the mail server and its ancillaries up in a VM ( or number of VMs ) then you can sync VM to another host on a schedule, or even live.

Set-up a heartbeat ping and the alternative host can bring-up its copy of the mail server VM in a few seconds.

</comment></comment></comment></comment><comment><USER35> That's nice. I have for a long time been running just Postfix + Dovecot IMAP and relying on OSX Mail's spam detection, which is not that great (lots of false positives, learned data not synched between computers, etc). This inspires me to try using a SpamAssassin + ClamAV combo on the server.

</comment><comment><USER36> Few hours of work: sudo apt-get/yum install postfix dovecot openldap roundcube.)

OpenLDAP schemes and ssl certs are the bulk of it.

Hint: never put postfix's spool and dovecot's storage on the same physical device _and_ I/O controller. /var/log must live on the separate device too.

<comment><USER27> > never put postfix's spool and dovecot's storage on the same physical device > and I/O controller. /var/log must live on the separate device too.

This probably depends on the mail volume, no? I host all mail related services for myself and some family on a $9/month VPS (1 VCPU, 512 MB RAM, and pedestrian I/O capabilities) without any issues. My mail volume is typically under 20K messages/day.

</comment></comment><comment><USER37> The problem with things like this is, since I'm not super confident with any of the technologies involved, it leaves me with an uneasy feeling of having messed something up somewhere.

It is extremely easy to set or forget one extra parameter or something and everything falls apart.

</comment><comment><USER38> Is it recommended to use a relay for postfix (for private usage) like Mailgun?

</comment><comment><USER39> I've been doing web/mail hosting since 2002 and it amazes me that it is STILL this hard to do a mail server. I gave up and started using iredmail 2 years ago, so far it's been great.

</comment><comment><USER40> Respect for all the work done - this is a long but detailed guide!

</comment><comment><USER41> I would change that Courier or any Dovecot with a Cyrus IMAP implementation... it really rocks in terms of stability (and works smoothly), is fast and replication :)

<comment><USER42> Really? My experience has been the complete opposite.

Almost every time I've even been involved with or ran any medium/large mail infrastructures (200K active mailboxes) I've always found Dovecot to be a better choice.

<comment><USER27> Good to hear that Dovecot scales. I personally went with Cyrus because at the time I was picking an IMAP server, Cyrus was already a well tested solution known to scale. As I recall, Dovecot back then was still young and developed by one person. I've heard a lot of good things about it since though. I'm sticking with Cyrus since it works fine for me, but it's good to have options.

</comment></comment></comment><comment><USER43> What do HNers think of the Mac OSX server solution? Assuming you have an apple machine, isn't it rather easy to set up a mail server?

<comment><USER44> Yeah, last I looked its dovecot and postfix for OS X. It is a pretty easy setup. Just buy server from the App Store and follow the instructions.

</comment></comment><comment><USER45> How do you handle cut-over to your server when waiting for the DNS changes to propagate?

</comment><comment><USER46> Comprehensive, well written article.

</comment><comment><USER47> save.

</comment><comment><USER48> This is a very nice article!</comment>


You Don't Have to Be Good at Math to Learn to Code - <AUTHOR> http://www.theatlantic.com/technology/archive/2015/09/you-dont-have-to-be-good-at-math-to-learn-to-code/403342/?single_page=true

<comment><USER2> I think most of the people always forget most of Math in a few years after getting degree if they're not actually using it on daily basis. That's why, yes, it's not mandatory to be good at math to learn to code.

But what they will never forget, are the skills which they got while learned math: logic, analysis, passion to improve the solution, patience and so on. Because in general the mathematical problems are the same as development problems and to be able to find an optimal solution you need to use the same ways. That's how Math helps.</comment>


The rapid rise and fall of daily deal Web sites - <AUTHOR> http://www.washingtonpost.com/blogs/innovations/wp/2013/11/22/the-rapid-rise-and-fall-of-daily-deal-web-sites/ <comment><USER2> From two years ago, submitted here to Hacker News, an article "Why Groupon Is Poised for Collapse"[1][2] identified problems for Groupon's customers in Groupon's business model. My comment back then noticed something interesting in the article:

 _I think this is the most interesting paragraph in the submitted article: "As critical as I am of Groupon, the slam dunk case is to sign up with Groupon if you're going bankrupt. I strongly encourage every business that is about to go under to call Groupon. (Don't tell them Rocky sent you.) It makes total financial sense--as a Hail Mary play. If you're lucky, the upfront cash will be enough to help you stay afloat. If not, well, you were already going out of business. It may be your best option. In the short term, you're actually helping Groupon because they're being valued on revenue and no one is taking into account risk."_

 _If word of this gets around, the incentives set up by the typical Groupon agreement with a merchant will be responded to by merchants for whom those incentives are the most perverse. Groupon may discover that it is inexorably moving into the business of last-ditch financing for failing businesses._

[1] 13 June 2011 TechCrunch story by Rocky Agrawal: [http://techcrunch.com/2011/06/13/why-groupon-is-poised- for-c...](http://techcrunch.com/2011/06/13/why-groupon-is-poised-for- collapse/)

[2] Hacker News discussion of story: [https://news.ycombinator.com/item?id=2649739](https://news.ycombinator.com/item?id=2649739)

<comment><USER3> This is actually optimistic. There's an assumption of hope, a possible light at the end of the tunnel.

I purchased a voucher for a Sushi restaurant in NYC on LivingSocial. Two days after purchase, I went to the place for dinner. I was surprised to find the place closed and a big sticker from the State of New York on the door stating that the property has been confiscated due to failure to pay their taxes.

Somehow, I think the proprietors knew what was going to happen and when ... and scheduled things appropriately. I got a refund, but I'm not sure LivingSocial did.

</comment></comment><comment><USER4> If you want to see what business models will survive the for the long-term, analyze them in terms of neutral value. If there was a hypothetical Groupon where the consumer saw $10 of value, Groupon saw $10 of value and the merchants saw $10 of value, it would still be growing.

The actual Groupon business model was a loss for merchants from day one, but they were sold on potential benefits (new customers or regular customers increasing their spend). It doesn't take long for a business owner to notice they're losing money on a deal, and so it should be no surprise that Groupon's reality quickly overcame Groupon's sales hype.

<comment><USER5> That's an oversimplification I think. Groupon was a method of advertising that merchants paid for with their goods. This article argues that it turned out to be a bad method of advertising because of disappointing conversion rates. That said, if it was so terrible I don't know why the founders didn't know that in the first few months.

<comment><USER6> There were mainstream articles published about how bad for businesses Groupons were wayyyyy early on in their existence. I'm sure it can work for businesses with a low marginal cost and a product that's designed to be a recurring purchase (e.g. yoga studios that aren't already fully booked), but businesses apparently didn't take the time to do these estimates. For a long, long time, Groupon has just been burning businesses (who tend not to come back) and counting on hype to keep signing up new ones. I can't see how this wasn't clear to Groupon years ago. That is to say, I'm sure the founders _did_ know in the first few months, and either were fine with fooling investors/businesses or were desperately hoping that they'd find some way to "pivot".

<comment><USER7> It does seem like the Groupon model has promise for businesses that have low marginal cost of goods like an under utilized yoga studio. What other kinds of businesses have this quality? Sellers of digital goods for sure, in wich case the Groupon model becomes a form of price segmentation.

</comment></comment></comment></comment><comment><USER8> As the manager of an apparel manufacturer's e-Commerce arm, flash sale sites are just useful. We have essentially unlimited goods to move, any additional channel that can actually move volume is awesome. NoMoreRack is never in tech circles, but shit they move product.

<comment><USER9> I can agree with this, but I think that most flash sale sites have diverged from Groupon and the like (or the other way around). Physical goods based limited deals offer more value than purchasing a voucher (discount, massage, restaurant, vacation, etc...).

Also, flash sales sites tend to be more focused and give the appearance that you are dealing directly with the site owner; not a third party aggregating deals.

So, to me, there are two types of daily deal sites.

1) Flash Sales (Steep and Cheap, NoMoreRack)

2) Voucher Sales (Groupon, Living Social)

I feel like the physical goods space will always do better than a voucher- based deal site.

<comment><USER10> Yes the physical goods deal sites did well before groupon and have continued to do so since. I run a mobile aggregation app that I launched before groupon. When local coupon deal sites came along I included them for completeness but the physical goods, online, flash sites have always done better for me. It's interesting to see groupon, etc move into the physical online flash deals.

</comment></comment></comment><comment><USER11> This article should instead be titled "The rapid rise and fall of the daily deal _business model_"

Talk to any Groupon sales associate and they'll tell you the company is doing just fine.

The company is already transitioning (successfully) beyond a daily deals site; the deals now represent about 20% of their total revenue.

<comment><USER12> Was there some point where you could talk to Groupon sales associates and be told something other than that the company is doing just fine?

<comment><USER11> Actions speak louder than words. Sales folks keep score by how much commission they make. If there weren't money to be had at Groupon, their sales folks would be leaving in droves.

Sales turnover is always high in any position that involves a lot of cold calling. It's nothing to do with Groupon per se and everything to do with the inherent nature of the position. Relative to other high-frequency, transactional sales organizations, Groupon's turnover is likely below average.

<comment><USER13> I've heard that their turnover is exceptionally high, and if so I think their actions are ambiguous at best.

</comment></comment></comment></comment><comment><USER14> This demonstrates something we all ought to remember: whenever a new business idea pops up in the consumer web arena, some people are optimistic and hail it as the future of that business, while some dismiss it as a fad saying "that'll never work". The last group is often considered conservative and old fashioned by the first, as people who just don't get it. Then the idea takes off, generates a lot of buzz and a lot of investment. But those initial signs and that meteoric growth don't mean much. In the end, it turns out that sometimes the optimists are right and sometimes the naysayers are, and it's really hard to tell who's right and who's wrong for quite some time.

<comment><USER15> >In the end, it turns out that sometimes the optimists are right and sometimes the naysayers are, and it's really hard to tell who's right and who's wrong for quite some time.

Or: Both parties are right for their own reasons and are simply talking past each other.

</comment></comment><comment><USER16> I think the author failed to recognize the advertising effect of running daily deals. Yes you are likely losing money for the deal itself as a merchant, but how do you quantify the advertising effect of having your restaurants featured on a nationally known website. Advertising on Groupon.com should not be free, should it? I agree that daily deals does not magically make a business more successful. I think business should focus on quality and innovation of product and service for long term success.

<comment><USER17> This is always the stated benefit to merchants. The author didn't miss it.

What's failed to materialize is any ROI on the Groupon "advertising" channel. The ads aren't working. Therefore the merchants are no longer buying.

</comment></comment><comment><USER18> No mention of Woot and the other original "daily deal" sites?

<comment><USER19> Woot is a liquidator, not really related to Groupon, LivingSocial, et al. Liquidators have existed for eons, Woot simply brought it to the general public - instead of dollar stores and cheapo stores.

Maybe Woot is the post-Groupon. After you Groupon'ed your business to death by slashing your revenues 75% at a time, folks like Woot get to sell off the skeleton. As long as businesses keep failing and inventory management keeps sucking, Woot will have plenty of business.

That's actually a thought though: a lot of liquidation inventory comes not from outright failing businesses but just really poor demand forecasting and logistics. With improvements in these fields Woot may find it harder and harder to source compelling products.

<comment><USER10> Woot! doesn't actually liquidate so much. A lot of their sales are on products that are not available in the market yet. Plus their own products such as their t-shirts.

</comment></comment></comment><comment><USER20> I'm still visiting daily deal websites every day...

I never visited Groupon, that's not the type of deals I'm looking for.

Sites I look at are woot.com, dealnews.com, bitsdujour.com slickdeals.net, etc...

Groupon is for the masses.

</comment><comment><USER21> For people like my SO who is always looking for a deal, this was a goldmine, but I knew the bottom had to drop out at some point as we used these at places we already went to. I'm still expecting Restaurant.com to do the same thing.

</comment><comment><USER22> Rocky erroneously thought Groupon was going to zero and has been incessant in his criticism. I guess I don't expect him to ever admit he was wrong about Groupon. If he's still short the stock, he's losing.

</comment><comment><USER23> The merchants and small businesses were hurt. Many copy cats went under. At the end, the person who got rich was the founder of Groupon. How ironic...

<comment><USER24> Business is the finest art, and he's painting every day.

* [http://rapgenius.com/Andrew-mason-look-no-further-lyrics](http://rapgenius.com/Andrew-mason-look-no-further-lyrics)

</comment></comment><comment><USER25> What percentage does Groupon charge merchants nowadays? I presume their 50% commission had to move back somewhat?

</comment><comment><USER26> Dont know why daily deal aggregators did not shine?

</comment><comment><USER27> [http://TheCentsAbleShoppin.com](http://TheCentsAbleShoppin.com) is growing since 2009, over a million pageviews/month and it's steady traffic. Disclosure: One of my clients and she really puts in the hours. It's definitely a full-time job, not a "get rich quick" scenario.</comment>


Gamedev Weekly - <AUTHOR> http://gamedevweekly.com

<comment><USER2> Cool - signed up. The shrill colours almost made me close the page immediately, but maybe that's just me. =)

Glad to see genuinely interesting articles there (good mix of technical & 'qualitative' stuff), instead of the usual 'anything goes' list of gamedev topics.</comment>


Retro: Neat use of ports as high-level API from inside a VM (stack language) - <AUTHOR> http://retroforth.org/docs/The_Ngaro_Virtual_Machine.html#port-4-file-operations

<comment><AUTHOR> An overview of the language:

[http://retroforth.org/docs/An_Introduction_to_Retro.html](http://retroforth.org/docs/An_Introduction_to_Retro.html)</comment>


In about 2 hours it's 1400000000 unix time - <AUTHOR>

date +"%s" <comment><USER2> Not sure why people suggest programs that people must run several times to view that timestamp, instead of solutions for everyone.

Here's a webpage for it: [https://thefiletree.com/jan/html/time.html](https://thefiletree.com/jan/html/time.html)

<comment><USER3> If you use Windows, UNIX time probably isn't very relevant to you.

</comment></comment><comment><USER4> Roughly every three years, the "exciting" change will be in 2033 when it rolls over into 2000000000.

<comment><USER5> The MOST exciting time will be when it hits 2147483647.

</comment></comment><comment><USER6>
      while true; do echo "I'll have a life in $(expr 1400000000 - $(date +"%s")) seconds" && sleep 1; done

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

</comment><comment><USER8> Basic countdown timer; tried to get that updating every second, what am I missing here?

[http://jsfiddle.net/BPKdQ/](http://jsfiddle.net/BPKdQ/)

<comment><USER9> It should be setInterval(updateClock, 1000) not setInterval(updateClock(), 1000)

<comment><USER8> Thanks!

[http://jsfiddle.net/BPKdQ/1](http://jsfiddle.net/BPKdQ/1)

</comment></comment></comment><comment><USER5> I remember having recently survived Y2K having to go through all our code and databases again before UNIX time went from 9 to 10 digits in September of 2001.

</comment><comment><USER10> Why does anyone care about a _decimal_ milestone? I thought the excitement would be when you flip a big bit.

<comment><AUTHOR> Unix time is representing seconds, and seconds are a human measurement which use decimal notation.

<comment><USER3> Seconds are base 60 actually, just like minutes

<comment><USER10> I thought about that too, but then we would just be encouraging people to watch as the year wraps around at midnight on 1 January. That milestone is usually overshadowed by other things.

</comment></comment></comment></comment><comment><USER11> Hacky shell script...

while [ True ]; do sleep 1; clear; echo $(date +%s); done

</comment><comment><USER12>
      package com.example;

      /**
       * 	./Main/src/com/example/Main.java
       */
      public class Main {

      	public static void main(String[] args) {
      		System.out.println(System.currentTimeMillis());
      	}

      }

</comment><comment><USER13> The title of this post seems to be rather out of date.

<comment><AUTHOR> 6000 seconds. That's still about 2 hours. :)

</comment></comment><comment><USER14> For unix people:

watch -n 1 date -u +%s</comment>