Patio11 launches his lifecycle emails course - <AUTHOR> https://training.kalzumeus.com/lifecycle-emails <comment><USER2> Raise prices (well, wait 2 days, so I can get my purchase through) -- I just sent a note to my boss that this is a no-brainer for the $999. And, we already do email campaigns like this, and probably do 80% of what you are going to suggest (at least), and we only have 3 people that would directly benefit from knowing this -- but, we think it would be a nice perk to employees to see the course.

Quote from co-worker: "It would be worth it even if we learn one new, non- generic thing to try" Of course, we sell software that goes for $x0,000+, so anything that moves the needle with leads ROFLstomps $999.

(I have been waiting to write a response to patio11 like this for a while)

<comment><USER3> I just want to mention that I really appreciate both this advice and your other comment below, and am starring it for future reference.

<comment><USER4> How does one save comments on HN? Do you access via some sort of overlay app with better functionality than the vanilla site or do you just bookmark stuff to your browser (or pinboard or whatever)

<comment><USER3> I think some people like Delicious but I actually use notebooks for this sort of thing.

</comment></comment></comment></comment><comment><USER5> Sorry for not being an ass kisser, but I think this is way too overpriced and I would not like to see HN turn into a marketplace. Imagine if every HN contributor started selling their knowledge this way - - it would be a bad community where everything was behind paid walls. And yes, I do know that Patrick has contributed a lot to HN, but so has thousands of others, and I am sure he has learnt a ton here as well. There's no need to monetize this or to encourage monetization of this kind of knowledge.

<comment><USER2> On the HN I read, there is a nearly constant stream of ShowHN posts with paid services and promotions of Y-Combinator startups who stand to gain from the exposure. It has always been part of HN culture to promote our projects -- particularly accepted if you are a major contributor and didn't just register to post.

For someone who stands to make a lot of money from acting on the information here, I am happy to pay for it.

Frankly, if it were free, I probably wouldn't bother to watch it -- I already do a lot of email dripping -- free, to me, would mean that it's basic, and that I wouldn't benefit from it.

<comment><USER6> > Frankly, if it were free, I probably wouldn't bother to watch it

Excellent point! I feel the same way about most free Internet-busines videos. Plus, I'm much more inclined to listen to, and take action on, advice from trustworthy sources. By contributing so much to HN, Patrick has built up a tremendous amount of trust.

</comment></comment></comment><comment><USER3> I'm happy to answer questions, as always, but would prefer talking about the business of doing this rather than about the product. (I'm not comfortable selling on HN.) I'll probably blog about it in more detail later, too.

<comment><USER7> I've been following your blog, podcasts, comments here, etc and learn a lot from you. I've gotta say you hit a big need with the email course, and though I wish the price was $99 I know you're delivering based on value and the course is probably worth more than the $300 price to me. So, I'll probably get it. I think a sample video from the course (ie., 5 minutes would help a lot) to help people take the leap. Or a 2 minute intro video to the course. There's something about video (especially when the author's face comes and he starts talking) that adds more legitimacy and seriousness to the offer.

<comment><USER3> That's the opposite of what I expect but, since it is entirely possible that video + text does outperform text, there's A/B tests running to that effect.

<comment><USER7> Just bought the course and I'm downloading some of the videos because I watch most of my videos on the go (ie., in the car or on my ipad).

First impressions (ie., first 60 seconds on the course), it really seems like something created for a person sitting at a computer to watch it all. I wish there was a downloadable zip file I could download all the videos at once. I'm trying to download the videos now and I'm running into all sorts of errors and such (I think it's only letting me download one video at a time). Actually I'm getting error messages right now for all the pages. Is your site down?

Update: Ok, it looks like it's back up and running. When I download videos and try to right-click to save mp4 file, it downloads an html file and not the video. I need to go into the video to watch it and then option-return the url to start downloading. Very strange. This happens to the opt-in videos in lesson 2. optins-teardowns video doesn't seem to be downloading at all.

Also, your video sizes are really large. Example, 235mb for an 8:10 minute video (1024x768 resolution). You should be able to get the file size down to 100mb or so. For comparison, Kevin Rose's interview of Dennis Crowley in 720p is about the same size, 237mb, but the interview is about 20 minutes.

Your copywriting video is 686mb for 19:53 length... compared with Kevin Rose's Dennis Crowley video of 235mb for 19:20 length. That makes your video 3x the size of Kevin Rose's video (which is great 720p quality).

Honestly, this is a really sucky first experience. This is going to take my all morning to download these videos because the file sizes are 2-3x what they should be and because the links aren't all working.

And then after I download the videos, since they're so large I'm going to have a hard time fitting them in my iPhone and iPad. Please investigate getting your file sizes down. I think you can shrink the file sizes of your mp4 video to 1/3 the current size but keep the same resolution/quality.

Update: Your optins-teardowns.mp4 file is absent. I can't download it. Please fix cause I don't want to watch the lessons out of order.

<comment><USER3> I'm looking into why it can't find that file. In the meanwhile, I'll send you a direct link.

<comment><USER7> Actually, it just got fixed a minute ago. I was able to download it.

</comment></comment></comment></comment></comment></comment><comment><USER8> Hi Patrick,

I'd like to preface this comment by saying that I'm a huge fan of your work. You've personally helped me a ton.

That said, I must ask what made you choose video as the medium for this content. Frankly, you're a much stronger writer than on-camera personality.

Even beyond congeniality, why is five hours of video at 150wpm superior to a medium-length ebook I can read at 800wpm?

Thanks!

<comment><USER9> I prefer reading too but most people will pay more for a video than they will for an ebook regardless of the value contained within because they've been trained repeatedly that books are cheap.

<comment><USER10> Patrick and Ramit Sethi discuss this very thing in the last Kalzumeus podcast.

Book pricing isn't as hopelessly broken as music pricing, but that is faint praise indeed. It's sad. Writing a good book is a great deal of work, reading a good book provides a great deal of value, but the psychology of the book market recognizes neither of these facts. People vaguely imagine that producing books costs approximately the time required to type them, and expect to buy books for the cost of buying, inking, and shipping the paper - if the paper is absent they expect the price to be negligable.

Whereas the one good thing to be said about modern college tuitions is that they provide a nice big anchor for the cost of a "course". Practically anything looks like a bargain next to the list price of an hour of TA instruction at Harvard. [1]

[1] That's a fun math problem: Assuming five courses at Harvard, five hours per week of lecture and recitation per course, a fourteen-week semester and $38k tuition and fees, I come up with about $55 per hour per student. Of course, Harvard does not bill by the hour, but that's a whole 'nother essay.

</comment></comment></comment><comment><USER11> This guy needs a few lessons on effective public speaking and presentation, this introduction video of him makes me cringe.. I couldn't watch more than just a few minutes of it. Oh, and a web designer couldn't hurt either, who's going to read those walls of text?

<comment><USER3> _who's going to read those walls of text?_

The buyers, mostly.

If you don't run marketing at a B2B SaaS company it is a wall of text. If that's you, I'll save you time: don't read it or, if you do read it, read it only for academic interest on doing copywriting.

If, on the other hand, one is in charge of increasing the sales of a B2B SaaS company, this page is basically designed to be total brain crack.

It presents an idea which is either new or which one is vaguely aware of, presents concrete suggestions for implementation, has a case study which the target customer will find _incredibly_ compelling, teaches one thing they can literally execute on by the end of today, and then _drumroll_ says that if you found the page to be valuable then there are five hours of very dense, action- packed video and guides where that came from, for a very reasonable price by the standards of B2B SaaS companies.

<comment><USER12> Long form sales copy is all about bullet points, headings, subheadings - essentially presenting a ton of copy in an easily digestible format - specifically avoiding looking like a wall of text!

<comment><USER13> He did something right. I read it start to finish without pause.

I am in the target demographic, we've just started implementing lifecycle emails at my company.

<comment><USER12> I'm not agreeing with the op. Just looking cross eyed at the wall of text statement.

<comment><USER13> But, are you in charge of a lifecycle email campaign? For whatever reason, it didn't feel like a wall of text to me.

But if the topic wasn't of intense interest, maybe it would have.

</comment></comment></comment></comment></comment></comment><comment><USER14> Selling shovels during a goldrush is a great way to make money! Patrick is sure to rake it in with this one, and with the 'money back guarantee' you really can't go wrong. HN is the perfect target demographic for this product.

<comment><USER3> I think there's a nuance to "selling shovels during a goldrush" suggesting that shovel-sellers exploit the naive 49ers, the majority of whom will end up with no gold. That really isn't the point of the exercise.

Most of my consulting clients, and the people I build this for, are not in a gold-rush. They run profitable businesses selling software to other businesses. This is a business input for them which they have a clear path to profiting from. It is about as speculative an investment as a pizzeria buying basket of tomatoes.

If there is anyone hypothetically thinking of buying this basket of tomatoes because they want to aspirationally run a pizzeria one day, please don't. I don't want your money. Go read my blog. Found a pizzeria. Find customers for it. When you need this you'll know, and it will be a screamingly obvious mutual win.

<comment><USER14> For someone who isn't comfortable selling on HN you're doing a stellar job of it! Telling people that you don't want their money is a great strategy.

<comment><USER9> It seems to me he's doomed either way.

If he comes on here and says _I built this and you all need to buy it right now_ , well then he's obviously just a salesman.

If he comes on here and says _I built this, don't buy it if you don't meet these criteria, I'm not even going to try to sell it because I don't want to turn HN into a sales venue_ , well then, he's a obviously just a particularly crafty salesman.

So while I see what you're saying I'm not sure how you expect patio11 to discuss this on HN without appearing like a salesman to at least a few people.

<comment><USER14> You make it out as if appearing like a salesman is a bad thing. Why not be proud of what you're good at? This product _is_ all about sales, it's aimed squarely at the HN demographic and the page does a fantastic job of proving that Patrick is good at sales (as if anybody needed convincing).

And if that did not convince you that this product rocks there is a glowing testimonial from a satisfied customer on the homepage right now.

<comment><USER15> I think there is a huge difference between a top commenter on HN trying to sell something and a non-top commenter doing the same after achieving a nominal karma rate. (I'm thinking specifically about what appears to be the recent spate of attempts by an company that rhymes with "muffer" to blog about all types of things in order to draw attention to their products.)

Anyone who spends considerable time on HN should be allowed to sell whatever they want that relates to their expertise within reason.

Perhaps the jealousy surrounding people who view "selling" and "business guys" as bad comes from people who don't have the makeup to take rejection that comes with selling. Lest anyone think there is no value to a "business guy" that it's all about technology.

</comment></comment></comment></comment></comment></comment><comment><USER16> Didn't like the video. From <http://ycombinator.com/video.html>:

"Please do not recite a script written beforehand. Just talk spontaneously as you would to a friend. People delivering memorized speeches (or worse still, text read off the screen) usually come off as stupid. Unless you're a good enough actor to fake spontaneity, you lose more in the stilted delivery than you gain from a more polished message."

<comment><USER17> Um, people who aren't gifted speakers come off as stupid when they talk spontaneously about a topic.

<comment><USER18> So if one comes off as stupid either way on the video, why not just write it down?

</comment></comment></comment><comment><USER9> That is a _really_ nice sales letter and I've bookmarked it to read through repeatedly when I need to write one. It nails the long form sales format and manages to do so without sounding sleazy[1].

I particularly like the _Do not buy this course_ section which qualifies potential customers.

[1] To be fair depending upon the target demographic the sleaziness can be increased without causing problems. If you were building a product for hard core sales guys _Your Customers Can Still Afford Branded Groceries: Learn How To Capture This Wasted Revenue Today!_ might do brilliantly.

</comment><comment><USER19> Patrick, I'd be interested in how you decided on your pricing. With all the pre-selling and your friendship with Amy Hoy I was honestly expecting prices to be about 10-12 times as high, or 5-6 times based on the full price starting next week. What makes you think you will sell 10 times as much at $249 than at $2490?

<comment><USER3> It actually might be underpriced, to be totally honest, but not _that_ underpriced I don't think.

To justify prices in the > $2k region I think I would need to add some sort of interactive component (webinar or what have you), and I have no time on the schedule for that in the next couple of months, so I went with something which was totally self-guided for my first try. I might revisit that eventually, if there's lots of demand for it and if it makes sense for the business.

<comment><USER13> I agree. I wasn't expecting it to be within my price range (though I'm glad that it is).

Buying is a trivial decision at $300. We sell a $350 product, with high margins. A _single_ sale and this course pays for itself. (2-3, if you include my time spent watching and implementing it)

 __edit: __turns out I didn't even notice the price. It's actually $250. I was prepared to pay anything up to $400 without thinking about it or discussing reimbursement with my company.

<comment><USER20> But if that price was $2,500 I am sure there'd be a discussion with finance and budgets become involved. In person 5 hour courses don't cost that never mind web videos. Quite frankly, he wouldn't sell many at $2,500 - not sure if it's a 90% drop in sales but it could be.

<comment><USER13> Mmm, you might be right on the corporate price point. I was only considering the personal one, didn't notice the 2K price tag on the other.

</comment></comment></comment></comment></comment><comment><USER21> Patrick has earned trust in the community by giving away so much valuable information. My first thought was that it's about time you sold some of this info. The reason is great: "I got tired of saying no." Good stuff, and thanks for all the free advice along the way.

</comment><comment><USER22> This is a 10 mile long sales page, down to the P.S. at the bottom. The copy itself, sounds genuine. However, the look of the page itself is a turn-off. Why did you decide to use this format as opposed to a simple, cut & dry page with a big "buy now" button?

<comment><USER23> Long form sales letters are proven, statistically, in many contexts, to convert more. It's really that simple. He could do a short and snappy page, but then he'd probably lose thousands of dollars a day. Or he can make people like you feel like it's a bit spammy, and make thousands of extra bucks a day. I know which one I'd choose.

</comment></comment><comment> grey-area This line from the article had a particular resonance for me given the slow drip feed of articles from Patio11 on HN gradually establishing credibility ↬

 _Drip marketing means sending a timed sequence of emails to educate, persuade, and only then sell._

</comment><comment><USER24> So basically you linked to your squeeze page at HN.

Here is a lesson in conversion: make your video auto play next time.

Other than that i really hate where HN is going upping this thread

<comment><USER25> > So basically you linked to your squeeze page at HN.

Note that patio11 _didn't_ link to anything--this was submitted by <http://news.ycombinator.com/user?id=_pius>

</comment></comment><comment><USER26> When did Hacker News turn into an MLM platform?

This page looks like a late night TV Amway infomercial, complete with third rate camera acting. Or rather looked before their webserver bit the dust.

</comment><comment><USER15> patio11 what you have written is great and I have the highest respect for what you do (and things that you have said).

But - separate from any conflict or cynicism that others have raised as far as HN becoming a marketplace, there was to much to read (and in fact I didn't read it, I skimmed it) so I wouldn't feel comfortable paying the amount you are asking which was located _at the bottom_.

I feel you should have started at the top with:

"If This Doesn't Create Value For Your Business, I Don't Want Your Money"

(pricing options)

Want to know more? Read below.

Just my thoughts. By the way I have no doubt that you have thought long and hard about putting that price at the bottom of the letter and could point to backup for that strategy (perhaps in something you've written before or generally accepted knowledge). But my reaction is my reaction so I just thought I'd throw it out there.

</comment><comment><USER13> How do you do credit card processing without asking for a billing address? Your checkout process was very simple, makes my company's process look cumbersome.

Also, I noticed you don't use paypal. Could you elaborate on that choice? My guess is that you know your demographic is used to using credit cards, and it eliminates a step, but I'd like to confirm

<comment><USER3> _How do you do credit card processing without asking for a billing address?_

Stripe.

 _Could you elaborate on that choice?_

Stripe! (No, seriously: I have the capability of running things through Paypal but a) that code is from BCC and written when I was young and stupid, and I was afraid of breaking something if I just copy/paste ported it over, b) this keeps my accountant happy, and c) there was a non-zero "risk" of this selling five figures in a day with $1,000 charges in the mix, which would mean Paypal and I would have to have a chat, and that was a complication I just didn't need right now.)

</comment></comment><comment><USER27> So for those curious, but not curious enough to sign up for WPengine's "course", here's the first email:

"I just wanted to say hello and thank you for your interest in WP Engine. I saw that you filled out our speed test form, and wanted to let you know that there is a real person over here, and that I'm interested to hear how you feel about us so far.

Do you have any questions or concerns? Can I help you make a decision either way?

Thanks!

Trafton Esler Lead Developer Champion"

There are so many things wrong with this email I don't know where to start. My only hope is that they inserted this email into the sequence /after/ Patio11's involvement; otherwise it's a warning sign (along with the awful video on the sales page) that his course is not all it's hyped-up up to be.

Good luck anyway, there's a sucker born every minute.

<comment><USER28> Hello! I'm Erica, and I consulted for WP Engine at the same time as Patrick. I worked side by side with Patrick during the week he was at WP Engine--Jason (their CEO) hired me to jump-start their entire marketing department for 3 months, vs. Patrick's specific "email drip feed" task.

I'm intimately familiar with the details of the open rates and conversion rates from WP Engine's email series; in fact, I was the one who helped sequence them and proofread/edit some of them after Patrick left.

I can tell you with 100% authority that you are dead wrong. That email converts extremely well. In fact, it used to go directly to Trafton's inbox and he had fun showing me all the responses people sent to him every day.

If you want the spoiler details, it converts well because people love to know there's a real human behind all this nonsense that we call "the Internet." (And it also converts well because Trafton is a machine who seems to never sleep and responds to everyone's questions quickly...another key ingredient. Everyone was always asking Jason how they could "hire a Trafton.") It speaks well for the people Jason hires, as well as the effectiveness of the email itself. There you have it, from the horse's mouth.

</comment></comment><comment><USER29> God, I'm so envious reading all these comments -- patio11 struck a gold mine of the golden mean!

You know you've priced okay when (1) people bitch it's too high and (2) people bitch it's too low.

You know you've MVP'ed when (1) people bitch it's too ugly (walls of text!) and (2) people say it's not.

You also know you've MVP'ed when (1) people bitch the video's terrible (WTF? he didn't comb his hair!) and (2) others don't give a flip.

Now back to the price: it's not like big pharma has some kind of insta-power pill that chomps down all that consumer surplus. For a one-man show he did great.

</comment><comment><USER30> Wow ... now here's a testimonial!

<http://news.ycombinator.com/item?id=4587080>

 _EDIT_ \- Linked to the other HN topic. Just click through for the story

</comment><comment><USER31> If you guys want to learn direct mail marketing, print and read all these letters from Gary Halbert from the 80s. It still applies now very much so. [http://www.trafficplusconversion.com/1345/gary-halbert- lette...](http://www.trafficplusconversion.com/1345/gary-halbert-letter/) There is a limit how much you can learn by reading and watching million dollar videos. Its all about doing and testing for your business.

</comment><comment><USER32> "Switching customers to annual billing radically decreases churn, one of the key risks to SaaS businesses long-term."

Where I can I read more about annual billing decreasing churn? I've read your blog post (or email?) about switching to annual billing to free up revenue to acquire new customers, but I don't remember reading about how it decreases churn as well.

<comment><USER3> Dharmesh Shah has talked about it extensively -- basically, of people on monthly billing, at any given time approximately 100% are at risk of churn. Of people on annual billing, < 10% are at risk of churn at any given time. They also have less opportunities to hit involuntary churn like, e.g., getting a CC declined or expired.

<comment><USER33> Indeed, that's true.

One additional point: Customers that commit to annual billing generally tend to churn less often overall -- because they've made a more "considered" purchase and committed more time to the purchasing decision.

</comment></comment></comment><comment><USER34> Looks like your site is throwing an error right now Patrick: <http://dl.dropbox.com/u/546067/Screenshots/cpc58_yeew2b.png> (I realize that message shows nothing but it's all I could come up with to help out right now)

</comment><comment><USER35> That sounds really cool. How does one learn to write a sales letter like that? I found it really compelling.

<comment><USER3> Read a lot of them, learn what works, implement them for clients, test, learn what works, take off anything you'd be embarrassed to put your own name on, try writing one for yourself.

There's also a _lot_ of books and products available on copywriting. The only one I've ever liked is, well, everything CopyHackers has ever done.

<comment><USER36> Thank you. Copywriting resources are always valuable, and I'd not heard of Copyhackers. Subscribed.

</comment></comment></comment><comment><USER37> I seem to be A/B tested out of the sample video. Anyone have a link?

<comment><USER3> Append ?video=yes to the URL. It will shortcircuit A/Bingo. (n.b. This behavior ships off by default in A/Bingo for a variety of reasons -- think very hard before enabling it.)

</comment></comment><comment><USER38> Was this inspired through talks with Ramit? I am seeing a similar model appear. He uses free emails to sell courses, and you use free blog posts to sell emails.

</comment><comment><USER39> @patio11 - Typo: "The course is on sale for until October 5th"

</comment><comment><USER40> Patrick,

Congrats! You've shipped something of value to the world.</comment>


An independent crew is taking control of a NASA satellite - <AUTHOR> http://betabeat.com/2014/08/civilians-in-abandoned-mcdonalds-seize-control-of-wandering-space-satellite

<comment><USER2> There are so many half truths and lies in this story. I wanted to mention just this one:

"Until now, when NASA wanted to conduct research, they'd collect data and disappear with it for a few months before publishing. But the data from ISEE-3 is going to be available to anyone who wants access to it."

This is grotesquely wrong.

Plenty of space weather data is available in near real time form, as soon as it is received by ground stations. E.g., for relevant imagery, [http://sdo.gsfc.nasa.gov/data/](http://sdo.gsfc.nasa.gov/data/), but many other space weather sources are available. The time stamps on the images at the above link should be only a few hours old. Those are quick look products (jpegs), but the science formats are also available, for free.

Significant Earth science data ([https://earthdata.nasa.gov/data/near-real- time-data/rapid-re...](https://earthdata.nasa.gov/data/near-real-time- data/rapid-response/about-rapid-response)) are also available free, within hours of receipt, for anyone, including disaster responders.

Other data is broadcast directly, with open formats, so any ground station underneath can receive it directly. ("Direct Broadcast," [http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=565052...](http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=5650520&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D5650520)).

The people involved in these programs have spent a lot of effort in engaging disaster responders ([http://www.nasa.gov/applied- sciences/disasters.html#.U-hc5WK...](http://www.nasa.gov/applied- sciences/disasters.html#.U-hc5WK9KSM)) to make end to end data services that will actually be useful.

Sure, there are other disciplines in which space data are sat on by the PI -- planetary missions, cosmology. The reason is that the data is not well understood and there would be too many bogus results. But even, say, for Mars data, there has been a lot of outreach to make sure both US and international scientists can be part of the team and share in initial results. This slower timeline is special to these disciplines. The article is making a broad statement that is not true.

<comment><USER3> The team is making space science and technologies accessible and understandable to a wider technical public audience than any previous project. That's the key point that the article tries unsuccessfully to relay. The team calls this "citizen [space] science" in their Education and Public Outreach post. [http://spacecollege.org/isee3/education-and-public- outreach-...](http://spacecollege.org/isee3/education-and-public-outreach- lunar-orbiter-and-isee-3.html) "Imagine what feats of exploration might be possible if an empowered and engaged citizenry realized that exploring space is really something anyone can do."

</comment></comment><comment><USER4> This article made me think about Travis Goodspeed and his "southern appalachian space agency". If you are interested in real DIY-space stuff, you should check it out.

</comment><comment><USER5> I thought they'd discovered there wasn't any propellant left in the spacecraft?

<comment><USER6> Looks like you're right, but it still will be able to collect and send some kind of data in a solar orbit. [http://arstechnica.com/science/2014/08/crowd- funded-isee-3-r...](http://arstechnica.com/science/2014/08/crowd-funded- isee-3-reboot-mission-to-begin-sunday-after-lunar-flyby/)

</comment></comment><comment><USER7> This article is starting to bug me.

First, the author makes the claim that the team was given the McDonalds for use for this particular mission but that, as far as I know, is false. They have had the space for some time while they were restoring lunar orbiter images.

Second, the team's/company's news updates show that they had to buy more equipment than an old radio, a mac laptop and some parts to fix a broken tv, specifically, a software defined radio (sdr).

<comment><USER3> The team bought the old McDonalds for use as a hackerspace, and also to prevent it from being torn down.

Their $159,602 crowdfunding on [http://www.rockethub.com/42228](http://www.rockethub.com/42228) paid for necessary equipment and services, the most expensive being access to large radiotelescopes to transmit commands and receive telemetry.

</comment></comment><comment><USER8> Do we really need the reddit headline editorialization on HN?

When you're working with NASA, and they officially help you with the encryption, you're not "seizing" anything. This is a very cool and interesting story without the L33T HAXX0R DUD3Z angle being weirdly inserted into it...the McMoon team are heroes many times over and awesome in their own right.

<comment><USER9> It's the EXACT headline from the article! Maybe HN should penalize people for complaining about the titles of submissions, because it seems like no matter how someone titles their submission, _someone_ is going to have a problem with it. Complaining about "headline editorialization" doesn't do anything to fix the problem.

Downvote and move on. We don't need to have this stupid conversation every time.

<comment><USER10> The HN guidelines call for using the original title except when it is misleading or linkbait. trackofalljades is right that this one was linkbait, so we changed it to a phrase from the first sentence.

You're also right—complaints about titles are tedious. It astonishes me how much time and energy they take up.

There is a way to complain about titles productively, though: suggest a better one.

</comment></comment></comment><comment><USER11> Hasn't this been going on for a while?</comment>


What are your favorite startup/tech engineering blogs? - <AUTHOR>

I think http://nerds.airbnb.com is pretty good. <comment><AUTHOR> <http://eng.yammer.com/> seems legit too</comment>


Unikernels: The Next Stage of Linux's Dominance [pdf] - <AUTHOR> https://www.cs.bu.edu/~jappavoo/Resources/Papers/unikernel-hotos19.pdf <comment><USER2> This is a really exciting result. I don't have anything else to add, but this line really made me smile,

"To accomplish this, the Linux kernel has been continuously expanded to support a wide range of functionality; it is a hypervisor, a real- time OS, an SDN router, a container runtime, a BPF virtual machine, and a support layer for Emacs".

<comment><USER3> I haven't heard this before, why does emacs need a support layer in the kernel?

<comment><USER4> It's a joke. emacs is the operating system, Linux is only the kernel for emacs

<comment><USER5> Actually, its just a driver.

</comment></comment></comment></comment><comment><USER6> The real promise of unikernels is not a a "library OS", but "librar _ies_ OS". I.e. we should be combining reusable parts, not linking one huge chungus library.

I hope their initial demo really is just a straw man to get something in mainline which ends up realizing their most important longer term goal of modularizing the kernel.

</comment><comment><USER7> Would enjoy a debate between these authors and the authors of [https://www.nccgroup.trust/globalassets/our- research/us/whit...](https://www.nccgroup.trust/globalassets/our- research/us/whitepapers/2019/ncc_group-assessing_unikernel_security.pdf) discussed at [https://news.ycombinator.com/item?id=19738905](https://news.ycombinator.com/item?id=19738905)

<comment><USER8> Theoretically unikernels have the potential to be secure, but the ones analyzed above did not integrate the most basic of hardening techniques. I think it's better to take that paper as "current implementations of unikernels suck" rather than "unikernels suck".

</comment></comment><comment><USER9> More info [https://next.redhat.com/2018/11/14/ukl-a-unikernel-based- on-...](https://next.redhat.com/2018/11/14/ukl-a-unikernel-based-on-linux/)

[https://github.com/razaaliraza/ukl](https://github.com/razaaliraza/ukl)

<comment><USER10> I think it would be interesting to make a patch that turns a viable Linux kernel and glibc into just such a system. I'd want to run it off of the work of KSPP though.

</comment></comment><comment><USER11> This becomes really interesting once some of the proprietary software such as libcuda can be used this way.

<comment><USER12> I like the idea.

</comment></comment><comment><USER13> Not really, as most Unikernels don't have anything to do with Linux.

And the less of them use C, the better.

<comment><USER14> The unikernel which Ali is writing is based on Linux. That is indeed quite a big difference, but it's our belief that pulling in all the existing work done for Linux means this unikernel will ultimately be a lot more useful than the other ones.

(Disclosure: Although I'm a co-author of the paper, I haven't done much except help out Ali on a few technical things and run the meetings)

<comment><USER13> Still it feels a bit far from "Dominance".

<comment><USER15> My question might sound harsh, but did you actually read the paper ? Your comments seem a bit off regarding the actual content (not just the headline)

<comment><USER13> Yes, I did read it.

If anything what makes sense are POSIX unikernels, which as the paper mentions, are already a thing.

I don't envision a Linux monoculture, and having unikernels written in unsafe languages is contrary to the whole security idea that they bring into the table.

As proven by "unikernels" that get deployed on IoT devices, written in a mix of C and Assembly.</comment></comment></comment></comment></comment>


Ask HN: From Idea to Product - <AUTHOR>

You have a awesome idea, how do you take it to the prototype.
What steps you employ from being mere Idea to Product.
You check for market feasibility , You refine your idea, you write your use cases, you find your users, you draw your wireframes, you decide upon technology, you contact few early stage alpha customers, you refine based upon the feedback, you open to the product for general beta.
How you operate on these steps, everybody has different of doing things, HN will be immensily helpful if whose product has worked in past can show they did it.
Some of you might have very short cycle, I want to know your secrets. <comment><USER2> I was just reading this yesterday [http://steveblank.com/2011/09/22/how-to- build-a-web-startup-...](http://steveblank.com/2011/09/22/how-to-build-a-web- startup-lean-launchpad-edition/)</comment>


My antisocial version of social bookmarking, feedback welcome - <AUTHOR> http://links4later.com

<comment><USER2> It's a little bit like <http://l8tr.org/>

<comment><USER3> seems more like www.instapaper.com to me...

<comment><AUTHOR> try using instapaper with NSFW links at work. with links4later you dont have to visit a link, you can just right click it. that makes a difference to me</comment></comment></comment>


Ask HN: What makes you happy in life? - <AUTHOR> It could be anything. I'm curious to hear about new ways to become or remain happy :) <comment><USER2> Independence, being in great physical shape, and sharing as many meals as possible with friends. Having interesting friends outside of tech. Enough money to never worry about money, which varies widely from person to person. Never, ever worrying about hierarchies of any sort.

I need to fit this in here somehow: [https://www.youtube.com/watch?v=xdfeXqHFmPI](https://www.youtube.com/watch?v=xdfeXqHFmPI)

(Note: That's what I want, not necessarily what I have atm.)

<comment><USER3> This is the dream.

</comment></comment><comment><USER4> To crush your enemies. See them driven before you. And to hear the lamentations of their women.

<comment><USER5> Found the sales guy!

</comment></comment><comment><USER6> Helping others around me. As Ive grown up and become (I guess) a little more successful, material things dont matter so much, but helping my employees grow and fulfill their potential is very satisfying.

As a gay man I wonder if theres some latent paternal forces coming through here, any straight people (bosses) with employees, do you also feel some sense of crossover with your children and employees? Just curious

<comment><USER7> I do, for sure. Feeling like you're helping your employees (and they're sending signals that they feel helped) definitely relates to the delight you get from watching your children grow.

</comment></comment><comment><USER8> Having enough money to buy a pizza whenever I want.

Listening to a song that exactly fits the mood I'm in.

Being so enthralled in a new TV show or book series that I stay up way too late even though I have to go to work in the morning.

Being in the same room as my wife.

Waking up after 9AM.

The feeling of leaving work and knowing I won't have to think about it until Monday.

Accelerating quickly, especially when driving a car.

Watching it rain heavily when I know I won't have to go outside in it.

Weather that is cold enough for me to wear pants but not anything more than a long sleeve shirt.

</comment><comment><USER9> People reaching out to me to do things instead of me reaching out to them.

</comment><comment><USER10> In no particular order:

Aimless bike-riding and urban exploration that takes up the entirety of a weekend day (depending on your area I suppose—definitely doable in Austin and the Bay Area, in my experience).

Time with family and friends.

Meaningful work at a company which values having a functional workplace and innovation (in that order).

Exploring music technology (SuperCollider, VCV rack, and interfacing software with hardware).

YMMV.

</comment><comment><USER11> Sitting by the fire with my feet up. Tea. Coffee. A good book. My dog. Music. Klipschorns. Watching children discover something new. Tutoring. Walking in the woods. Napping.

</comment><comment><USER12> I've given up on trying to find happiness and instead, find things to be happy about in things I do.

I have an old project I've been working on, on and off. Fixing bugs doesn't make me happy; but I asked the client if I could spend some time / billable hours updating some of my old code and they approved; that made me happy.

I don't particularly like going for walks, but the girl friend and her son do; spending time with them makes me happy so I go for the walk.

Paying bills, cleaning the apartment, doing laundry, doesn't make me happy. But being out of a bad 8 year marriage and on my own (when the girl friend isn't around) makes me happy so I do them, willingly (and they need to get done, lol...)

You can find happiness in anything around you that you do; you just need to be willing to find it.</poetic>

</comment><comment><USER13> Last year I got myself a copy of "The Happiness Hypothesis: Finding Modern Truth in Ancient Wisdom" by Jonthan Haidt. It has an interesting take on what really makes people happy.

To quote wikipedia -

 _In it, Haidt poses several "Great Ideas" on happiness espoused by thinkers of the past – Plato, Buddha, Jesus and others – and examines them in the light of contemporary psychological research, extracting from them any lessons that still apply to our modern lives. Central to the book are the concepts of virtue, happiness, fulfillment, and meaning._

I have been following some of the suggestions in there - more vacations and holidays, meditation, helping people etc which has surely helped me become happier.

</comment><comment><USER14> -spending as much time out in the wilderness as possible with people who also enjoy being there and are somewhat committed to being better athletes. Surfing, kayaking, climbing, hiking, biking, whatever.

\- drinking beer with those same people around a camp fire.

\- Playing soccer/ ultimate/other team sports.

\- Set design and construction for small theater. It's my side gig. The money is shit but I love building stuff and hanging out with theater people.

Looking back at this list, nothing that made the cut involves screens, and pretty much everything involves real-world social interaction.

</comment><comment><USER15> To all those who answered - are you really sure whatever you mentioned, _actually_ makes you happy? And not it is what you _think_ makes you happy?

Not trying to be a wise ass here - just curious how people know what makes them happy. Asking because I have a hard time answering OP's question

<comment><USER16> well, not sure about others, but for myself, I know what makes me happy after paying attention to my feelings I have after doing various stuff and reflecting on the circumstances in which I have had them. I do it pretty often.

Sometimes, though, I do fall into a trap of mixing up causality and correlation.

I may feel happy after talking to someone... and only after concluding a thorough analysis of my feeling and the timeline, I may realize that the fact of _finishing_ the talk with that person makes me happy and not the talk itself 8-( )

</comment></comment><comment><USER17> First it was appreciation. The ability to appreciate everything. When I hit my bottom in college, that was the first piece that shaped the rest of my life.

There is a difference between having your goals and lifestyle preferences hinging on your ego, or simply just that, enhancements.

Now, it's about controlling my schedule indefinitely. Having control of my queue (time) in life is top priority. From there, everything is possible.. your health, family time and so on. On a daily basis, I take inventory through appreciation of waking up today, the things that have been, are, and becoming. The people plus my intentions which are manifesting is some of what keeps happiness remaining daily.

</comment><comment><USER18> warning: possibly preachy post ahead...

Ebullient happiness is an epiphenomenon. It's a fleeting thing that happens as a result of actions whose ultimate goal is satisfaction and a sense of peace.

Shooting for happy is, to quote bruce lee, "...like pointing a finger at the moon. Focus on the finger and you miss all that heavenly glory." It's a gift, but it's not a reward. Treating happiness as a reward or something you deserve is a great way to make sure you never get it.

I appreciate and revel in the happy moments that come, for me, from service and exploration and study.

</comment><comment><USER19> Super deep and intense flow state. Usually from programming, but sometimes from writing or doing 3D art.

Comedy(TV and Standup). Community, HIMYM, Rick and Morty, Louis CK, Bill Burr.

Jogging in the park and listening to audiobooks.

</comment><comment><USER20> Nothing. Literally nothing. So I have stopped trying to be happy.

<comment><USER8> Well I hope you find something that makes you happy someday. It doesn't get better for everyone but it does get better for most people.

</comment></comment><comment><USER21> Unsolicited praise and adoration.

<comment><USER22> Well said! Truly inspiring!

<comment><USER23> have you heard how awesome pram is

</comment></comment></comment><comment><USER24> Love, defined widely.

The classic dyad, caring about someone deeply and having them care about you, is a great way to do that.

But even if you're unpartnered, or partnership isn't your thing, the best parts of life are often when you're caring for others.

After that, it's more about knowing how you're wired and doing whatever serves that. I need to spend a lot of time in physically beautiful places and experience novel sensations and adventures. Other people are homebodies.

</comment><comment><USER25> Right now:

\- Spending non-screen time with my wife and 2 year old daughter.

\- Exersize.

\- Unsolicited positive reviews of a product I built, talk I gave, or book I wrote from someone I don't know and don't want anything in return.

And something a lot of people on HN probably is thinking but doesn't want to admit:

\- Out innovating and out performing the products I compete with. Especially if they are a much larger company than mine.

But I hope I can soon also add to the list:

\- Relaxing without worrying about a deadline

\- Reading books again

</comment><comment><USER26> For me, it boils down to 3 things:

1\. Company of close friends & family.

2\. Independence to do things I like.

3\. Having a clear and conscious though.

According to Epicurus, greek philosopher these are some of the key ingredients for a pleasurable life.

Source: [https://www.youtube.com/watch?v=irornIAQzQY](https://www.youtube.com/watch?v=irornIAQzQY)

</comment><comment><USER27> "You have a right to perform your prescribed duties, but you are not entitled to the fruits of your actions. Never consider yourself to be the cause of the results of your activities, nor be attached to inaction." \- from the Bhagavad-Gita

I think a "results-oriented mindset" is often a source of unhappiness

</comment><comment><USER28> Hope in the afterlife.

Having such a hope has been shown (in numerous studies) to have many benefits.

</comment><comment><USER29> Doing things independently. Especially things which directly contribute to the necessities of life. The (mostly fruit and vegetables) garden is going pretty well so far this year...

</comment><comment><USER30> Hugs, ice cream, doing crafts with my kids. Simple things.

</comment><comment><USER31> Gratitude. The action, not the feeling "thankitude" often conflated with gratitude. Being thankful is fine, it's just gratitude requires action.

</comment><comment> the-peter Simple: To crush your enemies, see them driven before you, and to hear the lamentations of their women.

edit: sorry I see below I was too slow posting this...

</comment><comment><USER32> It's cliche, but mastery, autonomy (control over your time), and purpose really does ring true.

Also relationships.

</comment><comment><USER33> In the past, being good at sadness was a major contributor. Now, doing things for others helps a lot.

</comment><comment><USER34> Traveling light and far. I enjoying visiting new places, trying out new food and meeting new people

</comment><comment><USER35> My girlfriend, job, where I live, windsurfing, mountain biking, travelling, eating well

</comment><comment><USER36> when I understand something I've been struggling with. Long walks listening some nice podcast, playing with my dog and traveling (to some places only). Money also works but it's a different feeling, more like excitement.

</comment><comment><USER37> free time where i don't have some deadline and am able to do whatever i please

</comment><comment><USER38> Any chance I can get for pure solitude. I love being alone.

</comment><comment><USER39> Try to be well. Flourish. Happiness is fleeting.

</comment><comment><USER40> I'm not happy

</comment><comment><USER41> Traveling, calmness of perfect day at a beach

</comment><comment><USER42> Surfing, the ocean, walking my dog

</comment><comment><USER23> being outside walking seeing things I've never seen before coffee laughter

</comment><comment><USER43> good weather good food good conversation

</comment><comment><USER44> Alcohol and teenage prostitutes. Really.

</comment><comment><USER45> The big physical hormonal events — sex, food, muscle contractions, sleep, endocannabinoid ingestion.

That's it. When I make happiness any more complicated than that, it instantly begins to elude me.

But when I take happiness down to those basic elements — I'm happy :)</comment>


Do not learn Perl - <AUTHOR> http://ubermonkey.net/blog/2008/02/24#DoNotLearnPerl

<comment><USER2> Python and Ruby have most of the fundamental advantages of Perl. I don't really miss Perl itself all that much when using them. CPAN on the other hand is damned hard habit to kick. It's addicting having a massive collection of (often) battle hardened code available for virtually any task.

</comment><comment><USER3>
      You'll see

      Dictionary someDic = new Dictionary();

      And dream of

      %someDic = ()

Seeing that has me dreaming of:

      someDic = {}

<comment><USER4> I actually don't mind Perl's type indicators which show up in front of variable names, as it makes it clear throughout the code what you are working with (this coming from someone who rarely uses Perl anymore).

<comment><USER5> The 'problem' with Perl's type indicators are that it's slightly unintuitive to, say, create a hash using %, but to access a hash (and return a variable) you use $, so the punctuation indicates the return type rather than the type you are accessing and might not make sense without context. Whatsmore, it requires you to remember two things - the type of brackets required and the return type, one of which is largely redundant.

Incidentally, I'm pretty sure they're changing this with Perl 6 and making it to that the symbol indicates the type you are accessing. I'm split as to whether this is a good idea or not, especially as they're retaining the still largely redundant curly brackets when ordinary brackets will now do.

</comment></comment></comment><comment><USER6> Do not learn how to use a pen and paper. The paper will get under your skin, especially if you give yourself paper cuts. You'll be able to bend and twist C++ code in ways you never dreamed of, like into a paper airplane. You'll miss all the intricate quirks and nuances, like how your pen stops writing when you use it upside down.

In short, if you wish to keep your sanity, do not learn how to use a pen and paper.

</comment><comment><USER7> To me it is still a good idea to learn Perl, for the following reasons (different from the article):

You figure out why Python and Ruby were invented

It'll help you can figure out how to port existing Perl programs (that no one in your company wants to touch) to either Python or Ruby

You can more easily write code so hard to read that it virtually offers lifetime job security

(to be fair, without Perl I don't think the Internet would have had as much success in the very beginning since it was easier to put up a site with it. not to mention many of the major sites I still go to were built on it)

<comment><USER8> It's not about websites -- raw text is what Perl was made to handle. It really is the Swiss Army Chainsaw, the Duct Tape of the Internet -- I try never to use Perl anymore, but when I need it, it's there, along with CPAN, calmly biding its time.

Perl is horrible, ugly, unclean, unmaintainable in the general case, inelegant ( _ahem_ accessing nested arrays by multiple index? _ahem_ )... and in spite of all that, used sparingly and in the right situations, it cannot be beat.

CPAN is the key to Perl. Lots and lots of code that Just Works. Sometimes the elegant, bulletproof solution is not the best one -- sometimes the solution that takes 2 lines and 5 minutes is, in fact, the correct solution for the task at hand. And that latter task is whence Perl sprang. It also amply describes the chaos of the Interwebthingy from around 1994 to 2001.

Things are different now. Corporate-like. But in the beginning, it was the Wild West, and you used the sharpest tool you had handy. Perl was often that tool.

<comment><USER7> "It's not about websites"

I only mentioned websites to be fair to Perl.

"CPAN is the key to Perl. Lots and lots of code that Just Works."

The problem with CPAN is that a lot of times the stuff on there only just works with certain platforms. Besides, with Google, the advantage of having a CPAN is neutralized.

<comment><USER8> > with Google, the advantage of having a CPAN is neutralized.

I could not disagree more strongly. Perl has CPAN, R has CRAN, Ruby has Gems... why does this pattern recur, over and over, in successful languages? Probably because _it works_. Someone is working on a problem, thinks "gee, I wonder if someone else has solved this in _insert language here_??" In some languages they get to head off on a wild goose chase via Google. In others, they type 'install Foo::Bar' or 'install.packages(fixMyProblem)' or whatever, and with luck, continue on their merry way, _NOT_ switching contexts or handling an interrupt. From a programming perspective, _THAT RULES_.

Google does not solve all problems, not by a long shot.

</comment></comment></comment></comment><comment><USER9> Is this one of those Internet "memes" making the rounds?

<http://webmat.wordpress.com/2008/02/20/do-not-learn-ruby/>

<comment><USER10> A refreshing deviation from the tired "10 reasons to do whatever" meme...

<comment><USER11> <http://10-reasons-to-do-whatever.blogspot.com/>

<comment><USER10> brilliant!

</comment></comment></comment></comment><comment><USER12> Ok, I'm guilty. I upvoted this "Do not learn Perl" post before reading that the article actually meant the opposite.

Please downvote this comment so I can pay for behaving like this was a different site.

<comment><USER4> I downvoted you because I think discouraging learning is a bad thing in general. Perl may be ugly in some cases, but it also has some good ideas. Even if it's the worst language ever, though, it would still make sense to learn it so that you would know _why_ it's the worst language ever. Otherwise, you're just asking someone to accept it on faith.

</comment></comment><comment><USER13> For me, perl's killer app these days is the one-liner.

Where python has (for me, at least) muscled in on perl's niche as general- scripting-language-of-choice, perl remains unmatched as the most terrifyingly useful extension to the command-line that ever there was.

</comment><comment><USER14> hmm ... couldn't almost every point in the article (and many more not in the article) be said of Lisp/Lisp-like languages ?

<comment><USER15> He almost says so at the very end.

</comment></comment><comment><USER16> See <http://www.linuxjournal.com/article/3882></comment>


Rust as a gateway drug to Haskell - <AUTHOR> http://xion.io/post/programming/rust-into-haskell.html <comment><USER2> Something that I found about going from Haskell to Rust was that Rust provides many powerful abstractions without compromising on performance. It was very frustrating to try reasoning about performance in Haskell due to its laziness. Every language has quirks about how to write performant code, but Haskell is notorious in my mind for being quite easy to write obscenely slow code in.

<comment><USER3> Comparing it against Rust doesn't really seem fair. If I wasn't using Haskell, I'd be writing Erlang, and last I checked GHC is much faster than Erlang/OTP. Certainly faster than CPython, Ruby, and most Node.js.

Trying to compete with Rust or C++ performance in Haskell is certainly frustrating to reason about :)

<comment><USER4> While "GHC is faster than CPython" is a fairly accurate generalization, I still think python performance is easier to reason about. Haskell can give you fast code, but sometimes it will be super slow for no obvious reason.

<comment><USER5> _super slow for no obvious reason_

Obviousness is hard to pin down. What may be completely obscure to a Haskell beginner is obvious to a veteran. Is it really fair to count people's strict- language preconceptions against Haskell? I don't know.

GHC provides a wealth of profiling tools that an expert Haskell user can employ to find space leaks. Heck, experts generally know where to look (excessive use of lists, spine-nonstrict data structures) so that the profiling tools become a last resort.

<comment><USER6> A sufficiently smart [compiler | developer] can [make it so that | think] anything is easy.

Since performance is exactly a measure of the number of imperative steps that need to happen in a program, low level imperative langauages are going to win in performance-obviousness every time. (Rust probably beating C in terms of avoiding memory problems, C probably beating rust in terms of not supporting language constructs that can make a single line worse than O(1).)

"Accidentally" asking the language to do something time-expensive is as impossible in C as forgetting a free() in Haskell.

<comment><USER7> _Since performance is exactly a measure of the number of imperative steps that need to happen in a program_

This is an oversimplification. Writing fast code for modern processors is all about how much time you spend waiting for memory.

<comment><USER8> Cache locality will never beat algorithmic complexity as a performance factor. Don't exaggerate its importance.

<comment><USER9> It can, when the constant portion of the algorithm chosen is high and the number of items being pushed through the algorithm is low.

e.g. bubblesort will beat quicksort for tiny lists or large lists which are already sorted.

Or, put another way, 1000 operations against 1ns latency memory (L1) has the same performance as 10 operations against 100ns latency memory (RAM).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Haskell/GHC will soon have an extension for linear types, which will bring the languages much closer: [http://blog.tweag.io/posts/2017-03-13-linear- types.html](http://blog.tweag.io/posts/2017-03-13-linear-types.html)

<comment><USER11> Yeah right. If only the standard library (the base package) could immediately be converted to use linear types and we can all benefit from that! (Hint: it won't. Even the fairly no-brainer AMP and BBP took an absurdly long time. This is extremely slow by Rust standards. The Haskell community might, but the stewards of the standard libraries don't have the move-fast-and-break-things attitude.)

<comment><USER12> Did rust ever have a large scale breaking change? Anyway, the linear type proposal is designed to be completely backwards compatible so that shouldn't be as big of an issue.

<comment><USER11> Yes I know it's completely backwards compatible. But in practice if the standard libraries don't change, (a) there won't be a ready source of inspiration and examples to copy from; (b) actually the feature is really geared more towards libraries than applications, so it's less useful if the base library doesn't adopt it wholeheartedly.

<comment><USER12> Fair enough, although it would be easy to have an alternative prelude with linear types that libraries could depend on. Just that the extra dependency would really suck.

Haven't sunk a lot of time into it yet to be honest, I think the biggest beneficiaries will be streaming libraries and non-gced data structures like long lived queues?

</comment></comment></comment></comment></comment><comment><USER13> The similarities are striking. Both have a problem with undocumented or experimental modules for everyday tasks, both use compiler plugins to make sure that every package is using its own superset of the language (although in Rust this only applies to nightly), both tout lofty goals while rarely producing production grade systems. Rust is the first toe dip into the world of blog posts heralding the"coming of the age of reason" when we all see the error of our ways for writing dangling pointer references and impure functions. To be a complete cynic, I hope Rust runs right away from over generalized abstractions and the Haskell indifference to achieving real success by overcomplicting even the most mundane of problems.

<comment><USER14> Yes. Complex languages are not required to solve complex problems. This is why Go and JavaScript are so popular.

<comment><USER15> I'd say neither Go nor JavaScript are predominantly used to solve complex problems. The main use cases for both are solving mundane problems by mundane programmers. In case of Go that's an explicit design philosophy.

</comment></comment></comment><comment><USER16> I wonder if Idris could some day take Haskell's place. It sports default eager evaluation. Seems like the tooling (package managers etc.) isn't quite there yet, though.

<comment><USER17> Is a difference in a default option really enough for a language to take the place of another? And if it's not just a change in a default option, but the removal of laziness, we lose something, which will make the choice less obvious.

I think it's more likely that, if dependent types prove really useful, Haskell will adopt these, and people will adapt their code, rather than port everything to a new language.

As far as I can see, Idris is too much like Haskell to take its place. Porting thousands of libraries to a new language is a huge effort, so a huge advantage is required, which I don't see Idris offering.

<comment><USER18> A System F type system can't be replaced by a dependent type system without affecting existing code. There is no way to turn the libraries in Haskell into libraries in dependently-typed Haskell without "porting them to a new language" and all the work that entails.

<comment><USER19> This is 100% false. The Calculus of Constructions is a superset of System F. You may be thinking of the fact that if you want your type system to be sound when interpreted as a logic, then termination must be guaranteed (which would break backwards compatibility). Dependent types and totality are often found together, but are in actuality orthogonal features.

</comment></comment></comment></comment><comment><USER20> Isn't the most significant line: "For work-related reasons, I had to recently get up to speed on programming in Haskell"?

I was somewhat disappointed not to have a followup to what work-related reasons there might be. Note also that the About page says "work at Facebook".

<comment><USER21> If you're puzzling at the connection between Facebook and Haskell, [https://github.com/facebook/Haxl](https://github.com/facebook/Haxl) is the most obvious one.

</comment></comment><comment><USER22> I have heard the same thing about Kotlin now - [https://hackernoon.com/kotlin- functors-applicatives-and-mona...](https://hackernoon.com/kotlin-functors- applicatives-and-monads-in-pictures-part-1-3-c47a1b1ce251)

<comment><USER23> Err kotlin as a gateway drug to haskell? They might wanna fix type erasure first....

<comment><USER24> maybe kotlin as a gateway drug to scala as a gateway drug to haskell

</comment></comment></comment><comment><USER25> I have found them to be very similar too. I started learning Haskell in earnest last September, following along with the exceptional "Haskell: First Principles" which I highly recommend. I had been toying with Rust around this time and I found a confluence of ideas between the two languages. Most things I learned in Haskell I was able to carry over to Rust.

The inverse was not quite as true. But I still love Rust. Any time I need something performant, or I just want to play around, it's my first choice.

</comment><comment><USER26> "the legacy C++"

Interesting reading but the author seems intent on pushing some buttons.

<comment><USER27> Maybe that's just his way of saying "C++ without concepts."

</comment></comment><comment><USER28> Maybe the other way around.

</comment><comment><USER29> The article references using trait objects for dynamic dispatch. FWIW, I found them extremely limited: you can't use generics, can't return Self... I wonder how often people use them.

<comment><USER30> What do you mean you can't return self? I'm just starting out with learning rust, but from what I've gathered you can use objects in a myriad of ways that will allow you do what you need.

Instead of returning self, you could just pass a reference - you need to mutate self then just pass a mutable reference. Did I miss something here?

<comment><USER31> Returning Self in a trait object isn't possible; it's not object safe. In order to return Self, you'd need to know the concrete type of the thing, and when you have a trait object, that's erased.

Returning a trait object instead of plain Self would work though.

</comment></comment></comment><comment><USER32> > More advanced type systems, however, allow to specify the generic > constraints explicitly.

Well, Java allows it, even if it looks a bit unglier than the Rust example.

        <T extends Comparable<T>> T min (T a, T b) {
            if (a.compareTo(b) > 0) { return b; } else { return a; }
        }

And even without general availability of concepts (already in gcc 6.x), one can achieve it in C++ via _if constrexpr_.

<comment><USER33> The difference with Rust is that you can apply a trait to an extant type you don't "own" \- you can't do that in Java or C#: you would need to use the decorator-pattern (boilerplate ahoy!). C++'s checks are closer to duck-typing in practice.

<comment><USER34> Actually you can do ad-hoc polymorphism in C# (and I assume Java too, although I've not used it). Here's an example of implementing an Eq and Ord 'type class' in C#, with 'class instances' of OrdInt and OrdString. Then a simple generic bubble-sort function which works on any type that has an Ord instance:

        public interface Eq
        {
            bool Equals(A x, A y);
        }

        public interface Ord : Eq
        {
            bool GreaterThan(A x, A y);
            bool GreaterThanOrEq(A x, A y);
            bool LessThan(A x, A y);
            bool LessThanOrEq(A x, A y);
        }

        public struct OrdInt : Ord<int>
        {
            public bool Equals(int x, int y) => x == y;
            public bool GreaterThan(int x, int y) => x > y;
            public bool GreaterThanOrEq(int x, int y) => x >= y;
            public bool LessThan(int x, int y) => x < y;
            public bool LessThanOrEq(int x, int y) => x <= y;
        }

        public struct OrdString : Ord<string>
        {
            public bool Equals(string x, string y) => x == y;
            public bool GreaterThan(string x, string y) => x.CompareTo(y) > 0;
            public bool GreaterThanOrEq(string x, string y) => x.CompareTo(y) >= 0;
            public bool LessThan(string x, string y) => x.CompareTo(y) < 0;
            public bool LessThanOrEq(string x, string y) => x.CompareTo(y) <= 0;
        }

        public static class Testing
        {
            public static void Test()
            {
                var x = new[] { 3, 8, 1, 2, 10 };
                var y = new[] { "mary", "had", "a", "little", "lamb" };

                BubbleSort<OrdInt, int>(x);
                BubbleSort<OrdString, string>(y);
            }

            public static void BubbleSort<OrdA, A>(A[] values) where OrdA : struct, Ord
            {
                bool swap;
                do
                {
                    swap = false;

                    for (var i = 0; i < values.Length - 1; i++)
                    {
                        var x = values[i];
                        var y = values[i + 1];

                        if (default(OrdA).GreaterThan(x, y)) // Ad-hoc polymorphic call to GreaterThan
                        {
                            swap = true;
                            values[i] = y;
                            values[i + 1] = x;
                        }
                    }
                }
                while (swap);
            }
        }

<comment><USER33> But you just proved my point: your OrdString and OrdInt types there are implementations of the Decorator pattern (just using interfaces instead of superclasses).

<comment><USER34> No they're not, they are not wrapping an object instance, they are providing ad-hoc functionality only. The generic parameters provided to BubbleSort are constraining the arguments and allowing access to the ad-hoc functionality, something that can't be done with inheritance unless you own the type.

This is exactly how traits, implicits, type-classes, class-instances, and concepts work in other languages like Scala, Haskell, etc.

</comment></comment></comment></comment></comment><comment><USER35> That's the most HN post title in a while

</comment><comment><USER36> i imagine they both provide a similar hipster code high. while being fairly hard to do something useful in or make money with.

</comment><comment><USER37> Rust and Kotlin destroy any previous claims about practical usages of Haskell.

<comment><USER38> Languages without HKT are horribly impractical for large codebases.

<comment><USER39> Yet there are not many large codebases in languages with HKT, and even those which are there (mainly big Scala projects) do not use HKT

<comment><USER38> Most large codebases are terrible, and these facts are not unrelated.

<comment><USER40> I could be wrong, but I don't think that there are enough large codebases that use HKT for us to be able to know whether most large codebases that use HKT are _not_ terrible.

I suspect that it is closer to the truth to say that most large codebases are terrible, regardless of language, and that HKT won't save you. (Using HKT may help, some. Using HTK well may help more. But the problem with large codebases is that enough programmers work on it that the talent level tends toward the average of the universe of programmers. That's... not good. It means that whatever tool or technique you choose won't be used well.)

</comment></comment></comment></comment></comment><comment><USER41> Rust still allows imperative programming whereas Haskell doesn't. This makes a big difference.

Rust is closer to Alan Turing than it is to Alonzo Church.

<comment><USER42> Haskell definitely allows imperative programming, it's just not particularly good at it.

<comment><USER43> What is it lacking for imperative programming? I find it to be immensely good at it!

<comment><USER44> I tried implementing some simple imperative algorithms (like union-find) and found the Haskell code very noisy. For example, "var x = f(y)" in an imperative language might translate to "let x = f y" or "do x <\- f y" in a Haskell do block, and the wrong variant won't compile. There's no general purpose idiom you can use to replace all loops, only tons of special purpose HOFs you must memorize. Writing code that mixes different types of side- effecting calls is combinator hell. And so on. Usually an imperative algorithm will be much clearer in an imperative language than in Haskell, and easier to get right on the first try.

<comment><USER45> > There's no general purpose idiom you can use to replace all loops, only tons > of special purpose HOFs you must memorize.

Well, yes, there is: general recursion. You can recreate any loop with plain old recursion.

But stating that as a problem is a little like coming to Java and saying that "there's no general purpose idiom you can use to replace goto, only tons of special semantic branching constructs you must memorize." Sure, a valid complaint if you've been forced to only use goto in your life, but not a reflection on good programming practise.

<comment><USER44> I don't think that's true. Say you have an imperative algorithm that modifies an array in a loop. Then the Haskell encoding of that algorithm will use writeArray. But since it's monadic, it won't look like general recursion, it'll need to use a combinator like forM. You could say it's general recursion plus bind and return, but it gets worse. If the loop body needs to use both writeArray and randomness, you need more combinators. I'm not sure anyone can reliably write that stuff on a napkin, the way I can write a loop. That's not like the situation with gotos, because code with gotos is harder to write on a napkin.

<comment><USER46> What's wrong with this?

        import qualified Data.Vector.Mutable as V
        import           Control.Monad       (when)
        import qualified System.Random       as R

        main = do
            v <- V.replicate 10 0
            putStrLn "Initialised to zero"
            printThemAll v

            setIncreasing v
            putStrLn "Set with values increasing by 2"
            printThemAll v

            addRandomness v
            putStrLn "Added a random number to each"
            printThemAll v

        printThemAll v = loop 0 (V.length v)
            where loop i n = do
                    when (i < n) $ do
                       e <- V.read v i
                       print e
                       loop (i + 1) n

        setIncreasing v = loop 0 (V.length v)
            where loop i n = do
                    when (i < n) $ do
                      V.write v i (i * 2)
                      loop (i + 1) n

        addRandomness v = loop 0 (V.length v)
            where loop i n = do
                    when (i < n) $ do
                      r <- R.randomIO
                      e <- V.read v i
                      V.write v i (e + r)
                      loop (i + 1) n

<comment><USER44> That's indeed nice, and made me change my mind somewhat. I wonder if you can write a napkin example that mixes ST with randomness, instead of using IO for everything?

<comment><USER46> It's not too bad to manually thread a seed around.

        import qualified Data.Vector.Mutable as V
        import           Control.Monad       (when)
        import qualified System.Random       as R
        import           Control.Monad.ST

        st = runST $ do
            v <- V.replicate 10 0

            setIncreasing v

            addRandomness v

        printThemAll v = loop 0 (V.length v)
            where loop i n = do
                    when (i < n) $ do
                       e <- V.read v i
                       print e
                       loop (i + 1) n

        setIncreasing v = loop 0 (V.length v)
            where loop i n = do
                    when (i < n) $ do
                      V.write v i (i * 2)
                      loop (i + 1) n

        addRandomness v = loop initial_g 0 (V.length v)
            where seed       = 1234
                  initial_g  = R.mkStdGen 1234 -- Seed
                  loop g i n = do
                    when (i < n) $ do
                      let (r, next_g) = R.random g
                      e <- V.read v i
                      V.write v i (e + r)
                      loop next_g (i + 1) n

<comment><USER44> I see, thanks! The imperative version would still look more direct to me, but your versions are very nice.</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


Make Your Own RSS Superfeed - <AUTHOR> https://zapier.com/blog/2013/03/20/make-your-own-rss-superfeed/

<comment><USER2> Their pricing is a bit confusing for me.

Using their free plan, from what I can tell (though I may be wrong), you can create a single RSS feed from 5 different RSS feeds, as long as there are only 100 new items per month.

This doesn't seem like a worthwhile use of their free plan. And upgrading to pay $15/month to consolidate 20 feeds fo a maximum of 3000 news items per month, seems a bit excessive, too.

I'm sure there are good uses for Zapier, but this doesn;t seem like one of them.

(Of course, this is all provided that I understand their pricing correctly. I might be misunderstanding what a "task" and a "zap" are.)

</comment><comment><AUTHOR> We're especially proud of our RSS support because not only can we combine multiple RSS feeds into one, you can bring other non-RSS sources into your superfeed (think Dropbox/Github/Evernote/etc...). You can browse a ton of them here: <https://zapier.com/app/explore?services=RSSAPI>

Happy to answer any questions or take suggestions!

</comment><comment><USER3> I <3 Zapier. I hated the old site, but the new one feels like a straight copy of IFTTT. That being said, it's a tight space and the winner is the one with scale. It is, as they say, a volume game.

If I were Zapier, I'd look for a quick exit to a company like Dropbox, Microsoft or any of the other large storage companies. It seems like this tech is tailor-made for archival initiatives.

</comment><comment><USER4> How does Zapier order items from multiple RSS feeds when no publish date is available in the feed? I imagine that feeds with high churn, like that of hacker news, would be tough to mix with those that update more slowly, like a blog.

</comment><comment><USER5> i'm a yahoo pipes user. why should i switch?

<comment><USER6> That's what I've been thinking. For RSS-to-RSS, pipes can potentially build one gigantic feed.

<comment><USER7> Yes. I used to subscribe a pipes quizblogs' feed.

</comment></comment></comment><comment><USER8> I just wanted to put out there that this has nothing to do with Superfeedr...

</comment><comment><USER9> Try <http://rssident.com>

You can combine as many feeds as you want.</comment>


Demoscene - The Art of the Algorithms - <AUTHOR> http://www.metafilter.com/114704/Demoscene-The-Art-of-the-Algorithms <comment><USER3> THIS ([http://www.mobygames.com/game/windows/kkrieger- chapter-1/scr...](http://www.mobygames.com/game/windows/kkrieger- chapter-1/screenshots)) Entire game (interactive demoscene) is only 96kb. It's all procedurally generated which is what demoscene is all about. Everything you see, sound, music, textures, models, is just code. No images or audio what-so-ever. Just algorithms that generate shapes within shapes, within shapes. Like fractals almost.

I was devastated to find the group's website is gone and the game's page no longer on the internet. For those of you who want to experience it I've got it on my server here: <http://data.chrisnorstrom.com/hosting/kkrieger-beta.zip>. They were probably the best group out there. Looks like they closed up show because their site theprodukt is closed for good.

I knew a really good Demoscene coder, and he introduced the culture to me. He worked on synthetic procedurally generated voices (which is really hard). But the problem is that the bar to entry is extremely high because it's all algorithms and the culture is all about fun, not profit. So the community stays small. Why spend months making lights and patterns react to music in a 64kb file when you can make a 200mb game or animated and sell it. The means do not justify the ends, thus most people will never know the awesomeness of demoscene.

<comment><USER4> A lot of the members of .theprodukkt joined Farbrausch[1]. You can still find the productions by that team, including .kkrieger on the Farbrausch site[2].

[1] <http://www.farb-rausch.de/> [2] <http://www.farb- rausch.de/prod.py?which=114>

<comment><USER5> IIRC, .theprodukkt is/was Farbrausch's commercial "arm."'

<comment><USER6> Farbrausch is simply a demogroup...

<http://www.49games.de/> was the 'commercial' arm of Farbrausch (most Farbrausch members worked there) and they got bought by the german game developing company Bigpoint: [http://bigpoint.net/2011/09/bigpoint-takes-over- the-entire-d...](http://bigpoint.net/2011/09/bigpoint-takes-over-the-entire- development-team-of-49games-gmbh/)

Here's Kebby (FR) talking a bit about the demoscene at MIT: <http://www.ustream.tv/recorded/17875473>

</comment></comment></comment></comment><comment><USER7> I used to be the coder of a small demoscene team in the early 2000's. I never had as much fun writing computer programs ever since then. It was creating awesome stuff just for the sake of awesomeness.

<comment><USER8> What do you think is stopping demos from taking off as a serious commercial art form? Just culture, or something more fundamental?

<comment><USER9> I'd argue it's because they're universally rather dull.

On a technical level, demos are highly impressive and how they manage to overcome the limitations imposed by the scene to create the works that they do is ingenious, but it doesn't make the resulting product interesting from an artistic viewpoint.

For me at least, the glaring weakness is the lack of narrative - there's no stories being told, there's nothing that engages or challenges the viewer. They're akin to videos that show off the features of a game engine where they engender the "that's pretty" reaction, but little else.

To my mind, this is caused by two things - primarily, it's a side effect of the restrictions imposed by the artform. With the limitations of the scene in play, there simply might not exist the scope to create enough content for an engaging narrative structure to be based around and procedural generation only takes you so far when it comes to creating assets in a resource limited environment.

Secondly, I'd argue that the types of people who are primarily interested in creating narrative are going to gravitate to different creative areas - creating short films, or animations for example. As a result, the demoscene is likely to be made up of people who mostly interesting in the question of how pretty the output is, rather than how interesting it is. This is of course also related to the fact that people who 'grew up' in the scene are likely to have a relatively narrow view of what the scene looks like and are unlikely to buck that trend and break out into doing something completely different.

The above is naturally just my two euroyencent of course.

<comment><USER10> > how they manage to overcome the limitations imposed by the scene

It's pretty telling that the scene adapted to the increased hardware by imposing their own limitations instead of anything-goes. If we can't be wowed by what they do on limited hardware, we have to be wowed by what they can do under their own very harsh limitations.

<comment><USER11> I'm not sure what you are referring to. 4k/64k have been around for a long time, close to 20 years. Demos are generally "anything goes" and for anything else there are usually a "wild compo".

<comment><USER10> I remember demos on Ataris, Amigas, and early PCs, 286s, 386s. Back then there were no scene-imposed limitations, because the hardware was seriously limiting what you could do, and the awesomeness of demos lay in overcoming the crap hardware.

But when hardware stopped begin crap, when you started getting hardware accelerated graphics, when you could do mp3 playback in realtime, it got too easy to make something pretty, and less awesome.

If the demo scene had been about making pretty things, they would have just continued using the new hardware, but since the most important thing has been overcoming difficulties, making something pretty DESPITE the limitations, making something awesome, you know they value the challenge most.

And that is hard to communicate to regular people, because they can only value the prettiness of a demo, and that limits the popularity of it.

</comment></comment></comment></comment></comment></comment><comment><USER5> Woooooooaaaah! A demoscene link appears on HN! I'm really excited that you guys seem to be interested in this!

You guys should watch this movie! <http://molemanfilm.com/about-moleman/about- moleman-2/>

It's very good, and also on Youtube. It'll tell you all about the demoscene! you'll enjoy it!

-mkC/3LN: The clumsiest ever

Note: This post used to have a lot of redundancy inside of it, but that's gone now!

</comment><comment><USER12> This was an awesome documentary, even though I am not currently writing anything for the scene I still like to watch what they do and I generally try and tune into streams of the parties. Fun times

</comment><comment><USER13> Don't miss the BBS Documentary's Artscene episode. <http://www.youtube.com/watch?v=2ReS4Bp4IPY> seems to be a copy of it.

</comment><comment><USER14> This is a _great_ collection of links. And it's extremely up-to-date - <USER2> last demo, Gaia Machina, just came out last week!

<comment><USER15> Wow. Just wow. 64kb: <http://www.youtube.com/watch?v=4Kx66_i3ue4>

<comment><USER14> Somehow, to me anyway, it loses something if you just watch a video of it. If you have the hardware for it, you can download the binary from <http://www.pouet.net/prod.php?which=59107> and run it in real-time on your own machine, the way it was intended :)

</comment></comment></comment><comment><USER16> More links:

<http://capped.tv> \- recordings of demos

<http://pouet.net> \- combination forum and demo repository

</comment><comment><USER17> I was wondering: how recruiters perceive demoers ?, in: \- start-up \- big companies Should you put this activity on your resume or totally hide it ?

</comment><comment><USER18> Good to see the Demoscene is alive and well in Europe! I haven't dabbled in the Demoscene since way before I left the continent.

</comment><comment><USER19> Actually, demo scene could get some jobs if flash player 3d content spins well. Anything procedural is great in there.

</comment><comment><USER20> well. there is only one thing left to be told: amiiiiiiiiiiiiiiiiiigaaaaaaaa (::</comment>