Facebook, Twitter more addictive than alcohol, tobacco - <AUTHOR> http://www.zdnet.com/blog/facebook/facebook-twitter-more-addictive-than-alcohol-tobacco/8530 <comment><USER3> 1) "205 participants between the ages of 18 and 85 with BlackBerry devices in and around the German city of Würtzburg" -- ridiculous selection bias.

2) "the participants were asked to message whether they were experiencing a desire at that moment or had experienced one within the last 30 minutes, what type it was, the strength of it, whether it conflicted with other desires, and whether they resisted or went along with it." -- volunteer bias (the desires and outcomes reported are exactly that: _reported_ ).

It looks to me like a case of a researcher using a heavily-biased study to project their views onto society at large, using a small sample and _totally_ untrustworthy data.

</comment><comment><USER4> Great, another almost content-free article with a link bait title. Can we start submitting/upvoting interesting things instead, please?

</comment><comment><USER5> So then could Reddit and HN be considered more addictive than Heroin?

In all seriousness.

</comment><comment><USER6> Meanwhile, breathing continues to top the list of addictions, with 100% of test subjects unable to desist for any appreciable amount of time in studies performed.

<comment><USER7> If you didn't need to breath to stay alive (aka a biological need) it would certainly be an addiction.

<comment><USER6> It's only an addiction when it's harmful.

</comment></comment></comment><comment><USER8> I'll call bull shit on this. Its a great temptation to check it when its just there. I check mine a lot.

But when I'm busy I can easily go an entire week without missing it. I spend easily 80 hours per average week on a computer so I guess I'd be in the upper thresholds of users out there.

I recently spent a month in thailand which included a fortnight without power, did I miss the internet? not really, only in the evenings when I realised I was't tired and there wasn't anything else to do. If anything the amount of entertainment I expect has increased but nothing else. Perhaps an emotional dependancy thats easily placated by other mediums.

But not addiction, theres no physical dependancy, no withdrawals, you aren't going to go into shock and cold sweats from missing out on twitter after 24 hours. I sure as hell don't get a stress headache like when I haven't had a coffee in a few days...

<comment><USER9> Personal anecdotes do little to sway statistical significance.

</comment></comment><comment><USER10> I think not only twitter, facebook, etc, etc... - but the whole sphere of entertainment in internet is like a drug! because what is drugs ??? - substances that give us the opportunity to provide endorphins - <USER2> hormones. And we live for this.

</comment><comment><USER11> The net waste & damage from unbridled access to social networks, online content, "social games", porn, etc is going to be the subject of many a sociologist of the future, have to wonder where it's taking us.

Paul Graham's "Acceleration of Addictiveness" is a great primer on the subject, and he sums up beautifully that the iPad is the "hip flask" of digital addiction:

<http://www.paulgraham.com/addiction.html>

<comment><USER12> Why did you put porn in there? There are plenty of porn users (most males with access to the internet) but very few of them are addicts (in the sense that they can't function correctly without it not in the sense that they keep using it regulary because they enjoy it). Facebook, or even hn, is far more addictive.

<comment><USER13> Do people become nonfunctional via HN / FB over Pornography? Sex addicts ~3-5% of populace, harder to narrow down to nonfunctional stats. "There are plenty of HN / FB users but few are addicts (in the sense that they can't function correctly without it not in the sense that they keep using it regularly because they enjoy it). "Far more addictive" is a strong and weird statement.

GOOG search:3-6% social media. [http://cybercrimenews.norton.com/articles/social_media_addic...](http://cybercrimenews.norton.com/articles/social_media_addiction/index.html)

Higher % to support your statement: "Is Generation Y Addicted to Social Media?" [https://docs.google.com/viewer?a=v&q=cache:IWRpW7Mg81gJ:...](https://docs.google.com/viewer?a=v&q=cache:IWRpW7Mg81gJ:www.elon.edu/docs/e-web/academics/communications/research/vol2no1/01Cabral.pdf+&hl=en&gl=us&pid=bl&srcid=ADGEESg_8lK-5wStApGrKsfZmtlrt- hHLdQkgYPyg3VVD9XB6KNPnISSOB3c4mHQjnqpvq74Bd- uYjO1LgapPWhTzKxE5C4N_HBL6Ldh1wLNW1kq15Djp9cPFzMuKWWrQgPOf7PIe3s0&sig=AHIEtbTAXOFzxOaVZtLNAPxPqM9-Ih1Hng)

[https://www.google.com/webhp?sourceid=chrome- instant&ix=...](https://www.google.com/webhp?sourceid=chrome- instant&ix=seb&ie=UTF-8&ion=1#hl=en&sclient=psy- ab&q=populace+addiction+social+networking&pbx=1&oq=populace+addiction+social+networking&aq=f&aqi=q-w1&aql=&gs_sm=e&gs_upl=4496l25768l0l25873l29l23l0l0l0l4l236l3391l0.15.6l21l0&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb&fp=4d179b11806c7eeb&ix=seb&ion=1&biw=1199&bih=645)

[http://www.myaddiction.com/education/articles/sex_statistics...](http://www.myaddiction.com/education/articles/sex_statistics.html)

<comment><USER12> During the sopa protests I was annoyed that I couldn't access my favorite porn site, but nothing more than that.

When I restricted myself from hn for a week, I spent way too much time thinking what I was missing and too much time waiting for it to become Friday.

</comment></comment></comment></comment><comment><USER14> I spend more time on hacker news. I get scared I'm going to miss an interesting tidbit.</comment>


The Translucent File Service (1988) [pdf] - <AUTHOR> http://mcvoy.com/lm/papers/SunOS.tfs.pdf <comment><USER2> Neat! I didn't know the copy-on-write semantics for filesystems went back that far, the first I knew about was UnionFS[1][2], which features the same semantics in a larger package.

[1] [http://unionfs.filesystems.org](http://unionfs.filesystems.org)

[2] [https://en.wikipedia.org/wiki/UnionFS](https://en.wikipedia.org/wiki/UnionFS)

<comment><USER3> > I didn't know the copy-on-write semantics for filesystems went back that far

WAFL [1] from NetApp was/is widely in use, utilising CoW, and possibly older than this paper (wasn't able to verify but I know its from '90s at least).

This paper might've been interesting for the legal dispute between Sun and NetApp. Got settled with Oracle in 2010 though.

[1] [https://en.wikipedia.org/wiki/Write_Anywhere_File_Layout](https://en.wikipedia.org/wiki/Write_Anywhere_File_Layout)

<comment><USER4> TFS introduced copy-on-write in 1986 (with SunOS 3). This is probably the first such implementation. Not sure if there was anything comparable before that, meeting the same definition of _layered_ and _copy-on-write_.

WAFL came a few years later - in development in the early '90s, reached production in 1994.

<comment><USER3> My bad, I read through the document but I misread it as 1998.

</comment></comment></comment></comment><comment><USER5> [https://exif.tools/http://mcvoy.com/lm/papers/SunOS.tfs.pdf](https://exif.tools/http://mcvoy.com/lm/papers/SunOS.tfs.pdf)

</comment><comment><USER6> NSE was an awesome development environment when it worked. Unfortunately, it often became corrupted and suffered a lot of down time. Just a touch too much cleverness for the systems at the time.</comment>


Minlzma – Minimal LZMA Project - <AUTHOR> https://github.com/ionescu007/minlzma <comment><USER2> In a similar spirit, I wrote a simple decompressor for DEFLATE. Here is around 500 lines of Python code: [https://github.com/nayuki/Simple-DEFLATE- decompressor/tree/m...](https://github.com/nayuki/Simple-DEFLATE- decompressor/tree/master/python)

DEFLATE is a ubiquitous compression format that is used in ZIP, GZIP, PNG, Git, and more. It is decades old and much less space-efficient than LZMA.

<comment><USER3> This is great. I poked around your site, too, and just subscribed to your feed. You have a really great style, and I like the charter you establish in your GitHub profile. Please keep doing what you're doing.

</comment></comment><comment><USER4> > The entire input stream must be available (multi-call/streaming mode are not > supported)

> The entire output buffer must be allocated with a fixed size -- however, > callers are able to query the required size

I have not seen a compression library ask for this before. Chunk-at-a-time is not supported? Whole file in RAM? So no-go for memory constrained environments or large files?

This is from the Windows Internals guy? His reputation is pretty good, maybe I am missing something here.

Edit: The code also keeps the input buffer in a global variable. Weird.

I am going to guess he has a very specific use case in mind for this library, like a bootloader or something, where memory management and multiple files are not as important because you decode once and throw out everything shortly after.

<comment><USER5> Not supporting streaming decompression simplifies the implementation a lot, which seems to fit well with the project's goals (hwzip does this too: [https://www.hanshq.net/zip.html](https://www.hanshq.net/zip.html)).

It should still work with large files on systems where they can be memory mapped.

</comment></comment><comment> phoe-krk It's good that this happened! The original LZMA sources from Peter Pavlov are highly condensed and unreadable; they contain little to no comments and are hard to understand, and therefore reverse engineer.

<comment><USER6> Oh man, in my times "reverse engineer" was something about restoring functionality from compiled compressed (with some homebrew compressor) encrypted obfuscated binary executable, which could possibly actively resist to in-memory debugging.

<comment> phoe-krk Here I used it in context of heavily optimized, little commented and very dense source code, which has some resemblance to the "encrypted obfuscated binary" that you mention.

<comment><USER6> Okok, I agree - my old skills in all of that often help with modern, especially business software, a lot.

</comment></comment></comment></comment><comment><USER7> Interesting. What sort of testing you do? How is performance compared to original version?

</comment><comment><USER8> Worth reminding ourselves that the xz container format is awful. Actually, a lot of people don't realise that xz is a container, and not the compression format.

[https://www.nongnu.org/lzip/xz_inadequate.html](https://www.nongnu.org/lzip/xz_inadequate.html)

<comment><USER9> This is a polemic written by the author of a competing tool.

You can tell xz isn't so bad by the complete absence of any real world report of xz causing issues.

<comment><USER10> The only experience I have had with xz is uncompressing Apple's Xcode archives. All I know about that is that it takes forever to do some sort of useless "signature verification".

<comment><USER11> Apple's xip format is based on xar, not xz.</comment></comment></comment></comment>


Linux-based open source game handheld nears production - <AUTHOR> http://linuxgizmos.com/gcw-zero-linux-based-game-handheld/

<comment><USER2> Interesting. I don't see many MIPS-based handhelds coming out any more.</comment>


How I got featured on the AppStore - <AUTHOR> http://appstore100k.com/blog/how-i-got-featured-on-the-appstore/

<comment><USER2> "How I got featured on the AppStore"

I was expecting an explaination.

<comment><USER3> Same here. So far the only answer to that posed question is "Apple called and said I will be featured. Send in artwork."

So basically, "How do you get featured in the AppStore?" Answer: "Apple tells you so."

The really pressing question here is, how did an app that got released and apparently never seen any attention from the developer after the release show up on Apples radar Re: Promotion Opportunity?

<comment><AUTHOR> I think this is what surprised us the most... For the most part, the app wasn't really performing well at all, so regular attention would have been somewhat a waste of time. Apple must have just been REALLY struggling to find apps that fit with their promotion I guess?

</comment></comment></comment><comment><USER4> A decent read, though it seems like more luck than judgement. Any idea what caused them to request the artwork?

<comment><AUTHOR> They said they were featuring "apps for developers", I guess the app fitted that description. We were still lucky though.</comment></comment>


First sign this NDA - <AUTHOR> http://svhacks.wordpress.com/2012/07/17/first-sign-this-nda-2/

<comment><USER2> Three words important to business types: Sustainable competitive advantage.

Two words important to technical types: Working code.

For "pure" tech ideas -- where the product primarily consists of software with unique functionality -- these two things are equivalent, and staying in "stealth mode" and protecting yourself with NDA's until you're ready for release is important, because it's easier for an adversary to develop an equivalent product than it is to develop equivalent relationships.

For more "businesslike" tech ideas -- where network effects, marketing, positioning, or inter-business relationships are most important -- the business-side execution is more important than the software details.

Of course, your mileage may vary, and most real companies require both technical and business competence to be successful.

The more time you've spent on your code, the harder it is for your competitors to replicate it. As a very rough rule of thumb, the time it takes to build a meaningful competitive advantage is probably approximately equal to the time it takes to get a working prototype, so you can stay at least one major release ahead of your competitors, but this can vary a lot.

</comment><comment><USER3> Anyone signing an NDA without knowing what it is the NDA covers is needlessly incurring legal liabilities. I would never sign an NDA unless I knew what it was covering _AND_ it was properly scoped (most NDAs tend to be too broad).

Even then, there has to be a really good reason for doing so - everything you agree to is something you have to keep track of and make sure you don't accidentally break at some point in the future.

</comment><comment><USER4> While I can see some validity in some of the points I can't really say that an NDA is a completely useless tool. I have never dealt with one before so I might not be the ideal candidate to talk about them. Nevertheless I think that if the NDA is reasonable and restricted to the matter at hand, in this case it seems to be some kind of consulting for a new startup, then is OK to use one. After all, wanting to protect a cool new idea is perfectly reasonable and understandable, specially in a highly competitive field.

</comment><comment><USER5> For me, it's gotten to the point where NDAs just scream "junior! junior!" about the people asking me to sign them.</comment>


Review: The 10.5-inch iPad Pro is much more "pro" than what it replaces - <AUTHOR> https://arstechnica.com/apple/2017/06/review-10-5-inch-ipad-pro-is-pro-hardware-patiently-waiting-for-pro-software/ <comment><USER2> I have an ancient iPad 3 that is slow as molasses after the last software update they put on it, but it's still functionally the same as a new iPad "Pro" a family member has.

I struggle to see how an iPad Pro is "pro" at any capacity, with or without iOS 11. An iPad "Pro" is still an iPad. Maybe for professional artists if they buy the optional $100 stylus?</comment>


ESPN's Folly - <AUTHOR> https://ottsquared.com/espns-folly-170808d4c37e <comment><USER2> "Addicted to professional sports" is a poor way to describe the situation of ESPN.

If I want to watch professional sports I use my OTA antenna and I get ABC, CBS, NBC, Fox in beautiful HD. Between the big 4 networks and some others that broadcast sports, you can usually find something really good on any given weekend.

ESPN might add another game or two at peak times, but most of the time ESPN is playing sports hilights, lowlights, or gossip. If you really wanted to pay money to watch games, you might rather get regional sports networks: for instance, if you are a New Yorker you probably want to watch the Yankees or the Red Bulls and that would mean YES or MSG, not ESPN.</comment>


App.io acquired for $1500 - <AUTHOR> http://hack.ly/articles/app-io-acquired/ <comment><USER2> Apparently it's fine when "we" walk WHOIS files looking for domain names to sit upon purely for resale... just not when "they" (faceless non-geeks) do it.</comment>


Russia Quietly Tightens Reins on Web With 'Bloggers Law' - <AUTHOR> http://www.nytimes.com/2014/05/07/world/europe/russia-quietly-tightens-reins-on-web-with-bloggers-law.html?hp&_r=0

<comment><USER2> Getting to this 5 hours late. This should have made the front page.

What makes it (not just dramatic but also) interesting is that it highlights the danger of "solving" the internet's identity problem, as it oftentimes comes at the expense of freedom of speech.</comment>


You don't need an Apple Mac laptop–everything you need is in a Google Chromebook - <AUTHOR> https://qz.com/1314197/you-dont-need-a-mac-laptop/ <comment><USER2> This is _surely_ a paid piece 'sponsored' by Google?

<comment><USER3> Netbooks are the next big thing! Oh wait, we already tried that...

</comment></comment><comment><USER3> Assuming you don't need to compile software

<comment><USER4> Crostini. The latest (bleeding edge) version of ChromeOS supports (with a GUI) running almost any Linux software, including Visual Studio Code, Android Studio, etc. It's fantastic, supported, and does not require an insecure switch to "dev mode" or anything.

</comment></comment><comment><USER5> You don't need a car. You can just walk everywhere.</comment>


Free Will vs. Determinism as the Core of Political Disagreement - <AUTHOR> http://danielmiessler.com/blog/free-will-vs-determinism-as-the-core-of-political-disagreement <comment><USER2> Let's think about this for a second.

The Abrahamic religions (which are the ones that the author is skewering here) teach that all humans are made in the image of God. This implies that (a) human life has inherent value, and (b) humans have a moral responsibility to God. This means that people have a reason - really, an obligation - to be compassionate towards each other.

On the other hand, an atheistic worldview backed by determinism implies that (a) humans have no more intrinsic value than a tree, and therefore (b) humans don't have a moral responsibility to anyone. This means that there is no real reason for people to be compassionate to others.

So, religious people with a proper understanding of their religion's doctrines should be far more compassionate than equivalent atheists. The fact that we don't see that compassion borne out can be attributed to three factors:

First, there are unfortunately many religious people who have bought into the "Gospel of Ben" - "God helps those who helps themselves." This isn't actually anywhere in the Bible, Ben Franklin made it up. And unfortunately this is something that appeals a lot to politicians.

Second, many religious people believe that charity should be handled by church, and not by the state. They also believe in separation of church and state and the limitation of state power, which were actually principles developed by Christians. The author is committing a fallacy in assuming that all charity must be state charity.

And third, many "organic atheists" are still operating based on their conscience, which the atheistic worldview does not actually have room for. There cannot be a supernatural conscience if there is no supernatural, and evolution has no solid way to explain the development of a moral system that goes _against_ survival.

<comment><USER3> Actually, it's not even all Abrahamic religions. Muslims and Lutherans believe in predestination, Catholics seem confused and Jews like to argue about it (the wikipedia article doesn't describe Jews/Catholics views very well).

<http://en.wikipedia.org/wiki/Predestination>

</comment></comment><comment><USER3> I'll ignore all the political baiting the author does ("...hate-filled healthcare-reform protesters...") and actually focus on his core arguments since they are intellectually interesting.

 _the belief in free will leads to a lack of compassion for those who suffer_

The belief in free will merely suggests that one should look more closely at why a person is suffering.

I.e., was the person born into bad circumstances, from which virtually no set of choices could have allowed them to escape? Or are their circumstances caused by choices they made themselves?

To borrow examples from my own life, I (an atheist) have a great deal of sympathy for the average hard working upper middle class Indian. I have far less sympathy for the typical "poor" American (far richer than the Indian) who chooses not to look for a job.</comment>


The Financial Times Writes About How The City Of Medellin Has Changed - <AUTHOR> http://www.ft.com/intl/cms/s/5be744d0-8aac-11e2-9da4-00144feabdc0,Authorised=false.html?_i_location=http%3A%2F%2Fwww.ft.com%2Fcms%2Fs%2F0%2F5be744d0-8aac-11e2-9da4-00144feabdc0.html&_i_referer#axzz2PeY8CvkM

<comment><USER2> Here is a working link: [http://www.ft.com/intl/cms/s/0/5be744d0-8aac-11e2-9da4-00144...](http://www.ft.com/intl/cms/s/0/5be744d0-8aac-11e2-9da4-00144feabdc0.html)

But you should use incognito/private browsing/whatever, because of the FT's absurd price discrimination strategy.</comment>


RealCrowd (YC S13) Raises $1.6M to Bring Crowdfunding to Real Estate - <AUTHOR> http://blogs.wsj.com/venturecapital/2014/03/26/realcrowd-raises-1-6m-to-bring-crowdfunding-to-real-estate/

<comment><USER2> Congrats!

I really like the site and the concept. Two things:

1.) How do you make money? As a potential investor, I wish this was more transparent. One of the reasons I use Betterment and Wealthfront for equities is that their fees are very clear on their homepage. Because real estate has a history of hidden fees, I think it's important to highlight this right away.

2.) What does "$235m+ in Transactions" mean? Closed through RealCrowd? In funding? Previous closes with the principals of the company?

Wish you guys the best of luck, and am excited to watch you grow!

<comment><AUTHOR> 1.) We charge operators listing fees and use typical recurring SaaS pricing for the investor/asset management features. We're (of course) working on a home page redesign that communicates this clearly. RealCrowd pricing is not unlike an MLS or other marketing platform.

2.) $235MM+ is the total value of the assets that have received equity funding through RealCrowd. Kind of like PG saying YC portfolio companies have a total value of $XXB. Though in our case that number is based on the value of real property at the time of acquisition.

Thanks!

EDIT: Grammar

<comment><USER2> Makes sense - thanks for the quick response!

</comment></comment></comment><comment><USER3> This is really great! One comment I would have is that it'd be great if you had more educational materials.

Your site eases entry into this type of investing for folks that might technically fall under the accredited investor umbrella but never have taken advantage of that fact, and don't know the in's and out's of real estate investing. For example, the deal structure for a particular offering has a really brief description in the mouseover text, but I couldn't find it explained anywhere in detail.

<comment><AUTHOR> Thanks for the feedback! We do have two eBooks (you get them upon signup), with another in development. We are also working to create a dedicated educational section and will definitely include more inline help in the future. Feel free to contact us with any questions.

</comment></comment><comment><USER4> Fintech entrepreneurs: If you want to help solve the underfunded pension crisis in the world, and/or help increase the wealth of the bottom 95% work on building a product that allows non-accredited investors to crowd fund real estate, where the investors own 100% of the property and the sponsors earn a fee for managing it.

If the bottom 95% were allowed to crowd fund real estate wealth would very quickly be more evenly distributed.

<comment><AUTHOR> Regulations are currently prohibitive in this area. Look for that to change soon as the JOBS Act implementation gets finalized.

</comment></comment><comment><USER5> Why would I use this instead of a REIT?

Why can't these development companies get traditional funding?

<comment><AUTHOR> RealCrowd co-founder here...

The investments are direct with the real estate operating companies, avoiding layers of fees imposed by the REIT structure.

These sponsors do get traditional funding. The operators we select to be able to post on RealCrowd do not need capital from the internet at large. Instead they augment their fundraising or recapitalize an existing property so they have more free capital, allowing them to do more deals. Since we do not charge any carry or other fees to investors, sponsors also bring their traditional investors onto the site to make the fundraising process easier.

More info on our operator-focused page: [https://operators.realcrowd.com](https://operators.realcrowd.com)

<comment><USER5> But the real estate operating companies could "augment their funding" equally well from traditional investors, unless those investors are capital constrained (I don't think they are).

<comment><AUTHOR> "Augmenting their funding" through the site also allows operators to build relationships with new investors and expand their network. It's lead gen for them for future deals.</comment></comment></comment></comment>


Ask HN: Do you like HN's karma system? - <AUTHOR> I really think they do a good job of enforcing a certain style of communication. I like how I know very little about the benefits more karma gets me. I think it's really an under-appreciated aspect of modern day forums.<p>This is speaking from someone that does a poor job of following the rules of the place. <comment><USER2> I think downvotes are fundamentally broken.

If upvotes are agree/approval and downvotes are disagree/disapproval then why are downvotes used for automatic moderation too? It is a problem in this site and other sites that double-use downvote to mean two different, contradictory, things.

The strange thing about HK in particular is that they already offer a "flag" button. If the flag was dedicated to moderation and the downvote dedicated to discussion, the site would be fine, but downvote will auto-hide comments, grey them, shadowban people in certain cases (like green accounts), and is weighed during flagging/dead-ing (e.g. one flag for a grey comment Vs. multiple flags for others).

I think it has a chilling effect. People are hesitant to post controversial opinions no matter how well written because the consequences (via simple downvotes) can be problematic to even accounts in otherwise good standing.

In an ideal world a site should have an upvote/downvote and flag button. The first two should be dedicated to discussion only, and having a controversial viewpoint should be noteable but not punishable. The latter (flag) should be for comments thats that violate the site's guidelines or community standards (e.g. -isms, trolling, insulting, etc).

PS - Part of the problem right now is that for comments the flag button is hidden below the fold. Many new users may never see it.

<comment><USER3> Do you really feel that people here don't allow opposing viewpoints? IMO that is an area where Hacker News shines, especially in comparison to sites like Reddit. I rarely see, respectful, well thought out counter-viewpoints downvoted simply for disagreeing.

<comment><USER4> I have showdead on, and often see dead comments where I don't understand what the problem is with them.

I'd say it's about 10% of dead comments where I would understand if they were just dimmed, but they're dead so you can't upvote to help resurrect them, and you can't reply.

<comment><USER5> > they're dead so you can't upvote to help resurrect them

That's why we added the vouching feature. If there's a comment that's [dead] that shouldn't be, you can vouch for it by clicking on its timestamp and then clicking 'vouch' at the top of its page. When enough users vouch for a comment, it is restored to visibility. (There's a small karma threshold before vouch links appear.)

<comment><USER4> Oh, thanks. I'll look for it next time.

</comment></comment></comment></comment></comment><comment> open-source-ux One thing I notice sometimes is that insightful, well-written comments will sink to the bottom of a thread (presumably from posters without a high karma), leaving less interesting comments percolating at the top of the discussion (presumably from posters with high karma). That's a shame and I don't really know how it could be resolved. But it's also a problem on many discussion sites (Reddit, Slashdot etc)

In long threads, I suspect many posters will never scroll towards the bottom of the discussion. Thus, the comments at the top of the discussion continue to accumulate upvotes while good quality comments further down never get a chance to rise up. But I guess that is more due to user behaviour rather than some algorithmic logic.

<comment><USER6> Like yours? :) .

With no evidence I blame downvotes, which seems to be a common thread with other users on this thread.

I don't think it's about high karma. I've got a few comments that gave me like 1/3 of my karma. It doesn't appear to bias towards established users. More likely, a few downvotes (luck) is what sinks you

</comment></comment><comment><USER7> I don't think the karma system is the important part. Once I had enough karma to post/comment/downvote I've always had more than I ever needed.

I do wonder though if a few users are posting a large volume of stories (even automatically) adding to the general mainstreamness of content. Is there a per user daily post limit? I think there ought to be.

What's important is the rules by which we act. This is of varying consistencies. In particular downvotes shouldn't be used for disagreement or dislike but rather identifying clearly incorrect statements or noncondusive/worthless comments--an opposing view well presented shouldn't be downvoted.

Instead of the karma system, I wish there was an update to the story points. HN now has so many users that unexceptional stories of general interest get far too many points.

I would be great if posts could be tagged (e.g. 36 point 'physics' label) and the reader could vary weights of labels to surface or partially bury some categories.

</comment><comment><USER6> I like upvotes of course, and flagging is fine. IMO downvotes tend to greatly increase the echo chamber effect and should either be removed or less weighted.

The least controversial comments usually bubble to the top, even when they're not the most informative or constructive, due to downvotes.

Controversial but otherwise fine comments should not be punished by downvotes if they don't violate site policy (flagging). IMO a site that promotes good discussion shouldn't allow users to tank comments they don't agree with

</comment><comment><USER8> 1\. Separate submissions karma and comments karma. It's very easy to accumulate a lot of karma by submitting an article on some hot topic. This karma should be a lot less valuable than karma earned through writing high quality comments.

2\. Limited number of upvotes/downvotes, or downvotes substracting your own karma (perhaps not 1:1).

3\. Mandatory justifications for downvotes (e.g. choose from dropdown menu), with this information publicly visible for each comment.

<comment><USER6> I agree with #1. It's super easy to write a blog post that gets more upvotes than any comment ever will. If most HN readers are like me, I immediately go to comments before checking out the article. The current karma system encourages posts over comments, while comments are actually the vast majority of reason we visit HN. Comments are the community, especially in recent years where ask and show hn posts rarely breach first page :'( . Weighting non- article posts higher would achieve similar, bringing back importance of community over posting stuff.

I also agree with #2, a single unpopular comment can ruin your karma, and seems to rapidly contribute to a rate limiter that impedes your ability to interact with the site. I tend to comment on spurts when I've got a bunch of free time. It's common to have a comment downvoted below 0 and end up with "you're doing that too fast" rate limiting. I'm not 100% that downvoted comments are the cause, but it seems likely.

I disagree with #3. The few mods HN has already work hard. I don't think we should give them more to read. I would rather remove downvotes, I don't see a point besides encouraging echo chamber mentality

<comment><USER9> > If most HN readers are like me, I immediately go to comments before checking > out the article.

And what do you do if most HN readers aren't like you?

But seriously, for number 3, what if the tallies for the reasons for downvotes are visible to the comment poster, as a form of feedback for that person?

</comment></comment></comment><comment><USER10> No. I think is good to have communications without it. I would like to be able to disable it, so that when displaying messages to me, the karma is not taken into account. (Even if other people want to keep it enabled for displaying messages to them.)

<comment><USER11> AFAIK, a user's total karma isn't used to sort comments. Only the score on the individual comment is. Do you mean you want to see the comments sorted only by time?

To help convince people that your idea works, perhaps you could take a popular comment page and mock it up the way you think it should be and post it somewhere.

<comment><USER10> Yes, I would like to see it sorted only by time and by what comment it is in reply to. Possibly I could try to use GreaseMonkey to reorder them by ID number, maybe. (Are the order of ID numbers the same as the order by time?)

However, I am not saying that it should be sorted only by time for everyone, but only by the user who has changed their account options to specify that as the default sort order.

<comment><USER11> Yes, IDs are monotonically increasing over time. So you could write a script that, within each comment nesting level, extracts the ID and sorts.

</comment></comment></comment></comment><comment><USER12> I think HN has one of the better systems. The waiting period means you kind of have to learn the norma before you can apply them.

Sometimes people can using voting for the wrong purpose. In general, it seems to work well.

</comment><comment><USER13> If karma is a prinicple, then only the one person know why its reciveig bad karma. And when its given from a system, admins, users or an AI, then its worthless. Only makes me think, who the f. you are, to judging (my) other peopels thoughts, words, meaning or intentions, life. Better go 5 stars system wit 1-2 Extra points. helpful or not, funny and bad behaveiour, or maybe toxic, whatever. Just read about a better definition, so wich sort of karma this system think its used? ? [https://en.wikipedia.org/wiki/Karma](https://en.wikipedia.org/wiki/Karma)</comment>


The Tumblr Architecture Yahoo Bought for a Cool Billion Dollars - <AUTHOR> http://highscalability.com/blog/2013/5/20/the-tumblr-architecture-yahoo-bought-for-a-cool-billion-doll.html <comment><USER2> I hope it goes without saying that Yahoo!'s architecture is orders of magnitude more robust, complicated and scalable than Tumblr's. [1]

And of course they didn't "buy the architecture". They'll probably fold Tumblr into their own.

[1] Nothing against Tumblr but Yahoo operates at a scale much larger than Tumblr so their architecture isn't of much use.

<comment><USER3> Given how they say it will stay independent, why do you reason they will ot simply keep using their current stack?

<comment><USER2> Ex-Yahoo. Yahoo has infrastructure for a bunch of things which are really beneficial. Abuse detection/prevention, internationalization into like 40 languages and a ton of scaling services - to name a few.

Tumblr might not need them but Yahoo! might feel like they'd benefit from all of it.

If I were the Tumblr team I wouldn't want to deal with the man hours to get onto Yahoo!'s platform but I'm not sure how much of a choice they have.</comment></comment></comment>


The Start-up from Hell - <AUTHOR> http://jacquesmattheij.com/The+start-up+from+hell <comment><USER2> > Fred's reason for not paying out from the money he took was that we'd > betrayed the company, and after all, it was his money.

There's no better way to learn the true character of a man than to ask him to write a very large check based on an oral contract.

<comment><USER3> That's why there's statute of frauds (<http://en.wikipedia.org/wiki/Statute_of_frauds>)

<comment><USER4> a man's ability to write a large check is directly proportional to his ability to navigate the court system in his favor.

</comment></comment></comment><comment><USER5> Wow, Jacques, it doesn't sound like you feel much that "Fred" basically stole a bunch of money from you. You explain that you didn't have a contract drawn up, and that Fred's justification for not sharing proceeds from the company sale was that, after all, it was his money invested. I'm sorry, but if money invested was the only determinant factor in a company's success VC's would simply produce hits every week. Also, you may still feel some misplaced guilt/responsibility/loyalty to that venture, even in hindsight, but to me, looking at it as an outsider, it appears you contributed around 80% of the overall value to that company. Even Fred wasn't delusional enough to believe the company wouldn't crash and burn without you. You also say Fred was the "driving force" of the company. Yeah, sure, but he was riding on top of you doing the driving. This was a great and graphic story, and I'm glad you choose to look at the benefits of knowledge you took away from it, but man, that Fred seems a real charlatan/a-hole.

<comment><AUTHOR> I've tried (very) hard not to let my feelings (in so far as there are still smoldering embers about this) either current or remembered shine through and to depict things as objectively as possible.

Part of that is giving credit where credit is due. The vision was his, the implementation, and dealing with the fall-out of all the bad decisions in every way except monetary (he never missed a payment of the agreed upon monthly amount) was mine. All of us, also those that were brought in later worked quite hard.

There would not be much point in writing this in any other way, the only thing you'd get out of that is that I am either vindictive or that I still haven't come to terms with all this, 20 years after the fact.

I think I have come to terms with it, I see it as a very expensive but ultimately very useful lesson that I apparently needed to learn in order to do better.

<comment><USER5> I'm sure Fred worked hard enough, but I think you're being lenient and modest to compare his efforts to yours. It's unbelievable the level of technical prowess you pulled off 20 years ago, by yourself, on an ill-advised platform, working so many hours that your wife left you, for a minimum base salary and the promise of equity which was later disregarded. You know better than I do, of course, but I can't imagine Fred truly appreciated or understood just how advanced the engineering work, and sheer hacking, you were doing was.

<comment><AUTHOR> > but I can't imagine Fred truly appreciated or understood just how advanced > the engineering work, and sheer hacking, you were doing was.

That is probably true, at the same time he knew full well to sell when I announced my departure so he must have had some idea. The interesting thing is though, in retrospect, the 'ill advised platform' brought out the best in me in many ways, and I wonder if I had learned as much as I did had the platform been more powerful. There's nothing more satisfying than taking something that any sane person would say can not be done and then doing it anyway simply because nobody told you it couldn't be done.

I think of the whole thing as a character building exercise ;)

And I have learned to have great respect for the people that make industry work, the guys behind the lathes and the mills, the 'operators' that have more knowledge in their pinky about metal and metal working than most people will acquire in a life time of book knowledge.

They taught me more about feeds and speeds and materials than I ever wanted to know. And they also taught me that I'll never be a good machinist, even though I'm safe and can make what I want I just can't spend the lifetime on gaining all that knowledge.

One nice anecdote about that. One guy was complaining about the precision, this was in a factory of gears called 'Mak aandrijvingen', the guy told me while listening to the machine (in a factory full of noise at that) that it was running about 1/100th wide close to the chuck.

I thought he was pulling my leg, brought out the micrometer, sure enough 1/100th wide. We adjusted the table a tiny bit with to reduce the offset but overcompensated, during the next trial run he told me it had gotten worse, probably around 0.05 mm. Sure enough, the exact amount was very close to that. After that I started to slowly believe that this guy was so attuned to his machine that he could hear how much material it was taking off and as a consequence knew how much was left. When he finally said it was good it really was. By then I was a firm believer :)

Incredible.

<comment><USER6> Truly amazing. Reminds me of the anecdote about Jim Gray wherein he was able to figure out that the database was not tuned based on the the hard disk noise.

</comment></comment></comment></comment></comment><comment><USER7> Jacques, it was fascinating and terrifying to see how "over your head" the project became. Do you feel like hiring someone who had expertise in the industry would have been a good solution to the death march of iterative re- writes that you ended up locked into?

<comment><AUTHOR> I suggested that quite a few times in fact, but the answer was always 'there is no money' so the only thing to do was to try to somehow make it work. (edit: and because I almost always found a way 'Fred' became convinced that that was just me trying to get out from under work that I could do but didn't want to do, so every time I managed to fix something[1] I proved him right in a way deepening the misery and the complexity of the next challenge).

Another option would have been to take time out to study the underlying theory better. The initial spec was trivial, if there had been any indication of how immense the requirements were going to be I would have either refused the work or I would have taken out a year or more to educate myself on the subject matter.

Funny thing though, even now, knowing as much as I do I would probably refuse that job. This is not a one person thing, there are too many specialties involved and the codebase is far too large for a single person. The demands placed on such software have only gone up over the years.

One thing is funny though, even today in terms of ease of use the UI I came up with _still_ is better than anything else on the market, as is the toolpath optimizer that is built in.

Eventually, during the creation of a parallel development (the milling software, which I've left out of the story, it would not have added too much I though, but now I realize it would have added one more thing), I got so stuck on a piece of very hard math that I managed to convince Fred that we needed outside expertise and by great exception I was allowed to spend some money on a consult with a real mathematician.

Another thing where we brought in an outsider was when the display requirements went up way beyond the initial spec (real time zoom during the runs), I was allowed to hire a friend of mine (Maurice), a guy that I'd worked together with on programming games to write a chunk of assembly given a datastructure. This was doable because it was a fairly isolated part of the code, but Fred was totally paranoid about bringing on board other programmers having access to large chunks of the source.

[1] A nice example of such a situation was when we had to do the thread cutting that was so easily discarded in the beginning after all. This required a synchronization with a third axis spinning at anything between 50 and 1500 RPM or so, yielding a pulse train of up to 25Khz, something that none of the interrupt inputs of the chosen computer could handle with any reliability, especially not while driving a stepper at the same time with very tight constraints on latency. Normally encoder output is fed in to specialized counter boards but those were way out of the budget, and besides would only fit the IBM architecture. So I designed our own counterboard, and fed the output in to the midi port with a bunch of trickery to be able to re-construct the position of the toolbit relative to the index on the main axis.

This was a very nasty bit of code, because it depended on a lot of things that could change in real time (such as the density of the material being hit, the supply of coolant and so on) and there was not a whole lot of margin for error here. Once a thread has been 'started' you can't back out, you have to complete the sweep. So what the program would do is look in a table to figure out how much lag we could reasonably expect after hitting the material with the toolbit, then measure the sitation as it actually occured and compensate. Eventually I got it to work reliably enough for production but of course that was a total hack.

<comment><USER8> Thanks for the story. There were some very good lessons in it.

> every time I managed to fix something[1] I proved him right in a way > deepening the misery and the complexity of the next challenge

I have a similar situation with the startup that I work for now. I've done some decent work, even though I don't nearly have the toolset (or background experience, tbh) that would usually be required or available. This has been interpreted as "you've validated working with what we've got" as opposed to "you can do impressive work, in spite of what we've got." Now I'm asked to do the usual improvements (better performance, more features, and lower cost), and expected to figure a way out with this "validated" workflow.

I guess this is just a wordy way of asking if you have any advice on that matter. It would be appreciated.

<comment><AUTHOR> Is this a company wide phenomenon or does it just apply to you?

<comment><USER8> Company-wide, with some occasional exceptions (but 'company-wide' refers to a dev team of four people). It is a boot-strapped startup so there isn't money to throw around either.

(edit: the more I think about it, the more I want to claim that it happens to me a little more, because I end up taking on the challenges and producing results, without the support I think I should have)

<comment><AUTHOR> A couple of pointers: read 'the soul of a new machine' by Tracy Kidder, if you find yourself agreeing with the fact that you are 'signing up' then the problem may be on your end.

But the fact that you think that it is company wide suggests the issue may be with your management.

In that case I would confront them with this. Maybe suggest that that is not a long term workable solution and if they refuse to change tack start looking for other options or put down your foot once to see how they respond to that.

good luck, that's a tough situation to be in.

Don't fall like I did for the 'I've already invested so much in to this, one more thing I can do' trick, that carrot can be moved ahead of you for ever.

<comment><USER8> Thank you, again. I like to think I'm pretty good at ignoring sunk costs (the "I've already invested, I'd better keep on trying here" mentality), I think a bigger trap is that I'm an EE, and there is not much opportunity to be involved in research/design unless you have an even more advanced degree or a fair bit of work experience.

<comment><AUTHOR> drop me an email if you feel like, address in the profile

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Harsh.

I wonder if having a catastrophic start-up experience is practically a rite of passage for the serious entrepreneur.

Obviously some people hit it big first time, but your very first business is obviously the one that's most likely to fail catastrophically, and if you can take that kind of blow (and it is a very big blow) and keep going, it's probably a predictor of success. Thoughts?

<comment><USER7> _I wonder if having a catastrophic start-up experience is practically a rite of passage for the serious entrepreneur._

I'm sure there are many serious entrepreneurs out there who did not need to lose their spouses to see that they were working too much!

<comment><AUTHOR> And if one of the others reads this and changes course it was worth writing.

<comment><USER10> It was interesting that your summary at the end of your article didn't make a mention of the personal impact. Why didn't that stand out?

<comment><AUTHOR> Because I don't feel like putting my private life out for the world to dig around in.

It's painful enough as it is to dig through this old stuff and to try to abstract out the lessons learned in such a way that someone might get some mileage out of it.

As for the private aspect, what happened is that we completely lost focus on what was important in life and what was not (or at least, I did) and that I allowed myself to be used in a way that was not healthy. The fights about money, the talks they would differ so much from one person to the next that I don't think that it would contribute much to the story.

I'm still in contact with the woman I was with back then, she has since found someone else to live with and has a really nice kid so at least I know that she landed on her feet. She was/is a good person that stood by me until she couldn't take it any more and I really don't blame her. After I quit the company we tried to get back together again but it never felt like it was before and it fizzled out.

The carrot was being held about a week to a month ahead of where we were all the time so we really believed that we'd be out of trouble shortly. And I think that 'Fred' believed that too, he was no longer objective about any of this.

The road to hell is paved with good intentions.

</comment></comment></comment></comment></comment><comment><USER11> Thanks. A few things caught my attention which haven't been discussed yet in this thread:

 _that was some of the nicest work I ever did_ \-- it's interesting how destructive processes can also produce great work. (This is not to say that the results are worth the destruction.)

 _Take the feedback you receive and use it to improve the product but unless something is really trivial it is better to sell what you have than to make some promise you can not keep_ \-- another general lesson I would take away is, "be very wary when the salesperson is allowed to write the spec". I bet this is true across all business domains.

 _Fred never did hire a replacement, and hoped that I would stay on because I would not let my buddies down._ \-- I think this dynamic is built into the business models of some companies, especially consultancies. You feel guilty if you go home to sleep while your friends are coding 'til their eyes bleed, even when the overwork is brought about by extrinsic factors (see above).

<comment><USER12> >I think this dynamic is built into the business models of some companies, especially consultancies. You feel guilty if you go home to sleep while your friends are coding 'til their eyes bleed, even when the overwork is brought about by extrinsic factors (see above).

why do programmers allow this tactic to work?

This is the problem; if you give me better work when I pressure you and treat you like shit than when I treat you respectfully and let you set your own hours, what do you think the result will be?

<comment><USER13> If you work harder when I put a gun to your head, why shouldn't I do that all the time?

We aren't nice to people because it makes them work better, instead we "aren't nasty" to people because it's nasty.

<comment><USER12> If people can maintain a sustainable advantage through being nasty, those that are willing to be nasty will rise to the top.

I think that relying on feelings of "don't be nasty" to keep businesspeople in check in the face of nastiness that confers sustainable advantages is... not so sustainable. Some people /enjoy/ being nasty. So yeah, we have to build the world we want, and social mores are strong things.

One thought, from a market efficiency perspective, is that when I see an apparent sustainable advantage to being nasty, when there are successful people not being nasty in that way, is that maybe it's not as much of a sustainable advantage as it seems?

In this case, I think that jacquesm nailed it when he pointed out that this can happen, at most, one time for each programmer, and relying on only fresh programmers is difficult, just because without past experience, it's very difficult to judge the quality of a programmer.

</comment></comment></comment></comment><comment><USER14> Wow, this Fred fellow admitted to you that he committed arson? Is he identifiable from your story?

<comment><AUTHOR> > Wow, this Fred fellow admitted to you that he committed arson?

Yep. He even said that he'd gone back while the fire was still being fought to look.

> Is he identifiable from your story?

Not by you. I figure four or five people could put 2 and 2 together, none of them read this blog and they're already in the know.

It was reported to me after the statue of limitations had expired (nobody got hurt, even though that was pure chance) so as far as I know I'm in the clear.

<comment><USER15> >Yep. He even said that he'd gone back while the fire was still being fought to look.

Arsonists always do. That's why they take pictures of the crowds at fires. The person who started it is almost certainly there watching. In fact, it will probably be a man standing there with a bulge in his pants (seriously).

<comment><USER16> Are you saying that they tend to be sexually aroused, or that they tend to be carrying some sort of arsonist paraphernalia?

<comment><AUTHOR> The 'seriously' suggests the former.

<http://www.google.com/search?q=arsonists+sexually+aroused>

Seems to confirm it.

<comment><USER17> The book _Reporting at Wit's End_, a collection of New Yorker pieces by St. Clair McKelway, leads off with a profile of Joseph Brophy, for many years chief fire marshal of New York. Quite interesting on arsonists, both the professionals and those who do it for a thrill.

<comment><USER18> The article is titled _Firebug-Catcher_. Here's a link to the article at the New Yorker's website:

[http://www.newyorker.com/archive/1936/01/18/1936_01_18_018_T...](http://www.newyorker.com/archive/1936/01/18/1936_01_18_018_TNY_CARDS_000160600)

Requires a subscription.

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> While the 'from hell' part was interesting, as someone who was (relatively) recently put in the world of CNC and rapid manufacturing by my startup... seeing that from someone's perspective was also interesting.

Not that you were 'just starting' with hardware, but still.

</comment><comment><USER12> "(7) Dare to sell what you've got to those customers that want what you have instead of selling what the customer wants but what you haven't got yet and may not be able to deliver in time. Take the feedback you receive and use it to improve the product but unless something is really trivial it is better to sell what you have than to make some promise you can not keep. "

Oh man... this is the hardest and most important lesson ever, I think. The allure of "sell it first, then build it" is very strong, but in the long term, that way lies madness.

<comment><USER20> Selling what you don't have yet can be immensely helpful (cash is helpful :), but one you need to exit that mode rapidly.

You also need to ensure you are converging on a product and not just doing services work around a common problem.

<comment><USER12> if you can pull it off, sure, that's great.

the problem is that it's /really/ easy to get yourself into the kind of trouble you don't recover from that way.

I understand that different markets are different, but in every business I've run, the limiting factor was my commitment or my reputation (sales) or some combination therof.

If I over promise a little, I can deliver for a limited time (as the OP did) at the risk of burnout. It sounds like burnout was a huge factor in the failure of the business this story is about. Burnout of key people can very easily kill a small company.

If I over promise a lot and fail, then we start taking hits to the reputation, and if I've accepted pre-payment that I can't pay back, well, at that point it's pretty much over.

so yeah, while it can result in dramatically positive outcomes, it's a /very/ high risk move.

</comment></comment></comment><comment><USER21> Did Fred demand the Atari because he already had one?

<comment><AUTHOR> Yes. It was his home computer of choice, he was an amateur musician and the Atari was a reasonably affordable computer with midi.

</comment></comment><comment><USER22> I wasn't going to read it as I skimmed through, but I recognized the lathe (minus the computer and shield) and am glad I read through.

Having worked metal with these things and mills you can easily understand why cnc machines are so damn expensive. There is so much to deal with and I think if you would have chosen a mill instead this would have ended in more headaches more quickly.

One question that has more to do with the tech than the hell part I have is: did you have to deal with the excess strips of metal (which I've seen build up to dangerous length of spinning razor metal when people were being stupid) in the computer or was it under manual inspection? (There's plenty more that I thought about but that was my first)

<comment><AUTHOR> There was a 'swarf breaker' option, especially useful for working with plastics but also when working with stainless steel. During rough-cutting this would modulate the toolbit by pausing it just long enough that the swarf would break and would fall away from the toolbit.

If you don't do that in some materials it will build up to the point where it will form a giant mess which can cause the whole thing to stall out, cause toolbreakage or even machine damage.

Swarf control is a very tricky sub problem of the whole machining thing.

I left out the milling program that was developed in parallel, when I compare the two I'd say the mill was (in spite of being one dimension more) the easier one of the two.

<comment><USER22> I can understand how you worked so many hours on this, this should have been a huge project for a bigger team with expertise in the field and knowledge of controls.

I must say I would have given up much more early, although you probably would have too knowing what you know.

Another question I had was if these machines required a large amount of manual interaction (though lubrication probably was at least provided by the machines at this time).

<comment><AUTHOR> > I had was if these machines required a large amount of manual interaction

Because they were 'retrofits' rather than machines designed from the ground up things like tool exchange, zeroing, tool breakage and so on caused quite a bit of operator interaction.

If you look closely on the photo there is a little switch above the big red STOP button that we called the 'softstop', it was polled every few milliseconds in all situations except for thread cutting, and when engaged the machine will pull the tool away from the work (in all operations, including drilling, inside work, outside work and cut-off) so that you could stop the spindle.

Later versions had a tool changer driven by a third stepper motor, this was mechanically a very weak device and caused tons of trouble.

Lubrication on most manual lathes is either done by a hand pump that you operate ever so often, on more advanced machines it is timer driven, or coupled to the amount of movement on the carriage.

There also is the coolant to take care of, we had a relay box hooked up so that the various functions of the machine could be switched on or off under programmatic control.

All these mods together meant that installing the kit on an existing lathe was quite a bit of work, it wasn't unusual that more than one day went in to mating the x-y table to the machine (this is a very precise job), running tests, hooking up all the auxiliary stuff and so on.

<comment><USER22> Thanks for answering my questions, theres just so much work involved with these kinds of things and I'm sure it was just one thing after another.

But it is rather interesting how you handled all of it especially for the time when cncs had only been out for like less than a decade and you were modifying existing machines.

</comment></comment></comment></comment></comment><comment><USER23> This is a great story and kudos to you for building something adventurous in very adverse conditions.

As a side note, in a previous lifetime, we built some software for the Atari ST and we had quite a bit of experience with it. You are spot on about the robustness of the hardware. If the machine were to ever stop working, standard practice was to lift it off the desk about two inches, and let it drop. The theory was that it would reseat whatever chips had worked loose. It was a little bit more than a game computer, but as you say was pretty fragile.

<comment><AUTHOR> Hehe aye, we called that a 'Spanish repair' after I'd seen the practice in Spain in a TV store. The guy there would drop the TV from 1", if that fixed it the customer was charged. Then from 4", if that fixed it the customer was charged.

After that from 1', if that worked the customer was charged and if it didn't there was no point in trying to repair the TV any more.

You can imagine the kind of trouble we had with the computers sitting in an enclosure right next to a vibrating CNC rig.

More than once I had to drive halfway across the country to re-seat a chip that had decided to go for a walk after jumping out of its socket.

</comment></comment><comment><USER24> A great story. All the more for not being a pure code product (it was a an industrial machine product).

Starting out in business we all make mistakes. Learning from them should be sufficient reward.

<comment><AUTHOR> Don't worry, no regrets, I learned _lots_ there, especially things not to do and I credit a good part of later success to that particular period in my life. I also found two lifelong friends, the kind of bond that experience forged will not be broken.

</comment></comment><comment><USER25> Without a written contract you owned all of the code you wrote. You could have sent a cease and desist to the purchasing company and walked a way with a ton of money, very easily*

*As easy as a lawsuit ever is, I mean... it could have taken a couple years and about 100k investment, but likely they would have realized the problem and just settled.

<comment><USER26> except he was being paid a monthly salary and cashing checks which didn't bounce -- those are a form of documentation. Not to say I don't think he got screwed, because it sounds like he did. but i disagree that he necessarily owned all the code he wrote. because he was getting paid cash regularly for it.

<comment><USER10> It would depend on the copyright laws in Holland at the time. I don't know that anyone here is sufficiently well-versed to determine that.

<comment><AUTHOR> I am and there is some truth to it, there were enough witnesses to the deal that I could have probably done that, and possibly would have prevailed. Don't forget that I was not the only person that got screwed out of his share, another key point would have been that my 'take home' was well below market rates, and that - until 'Fred' stripped out my name - there was a copyright notice in my name in the code and that I had about 500 subdirectories with backups of the code as it was developed (I didn't have any real version control).

But frankly I didn't care enough about it to put that much negative energy in to it, court cases are extremely hard on the system.

I simply chalked it up to experience and enjoyed my new project, which was building a very large scale message switch using QnX, it was my first experience in networked computers using message passing and a completely new world.

The contrast with the other company was remarkable in every which way and Jan (the guy that owned the new place) and I are still friends today. The funny thing is that a couple of years later I employed him for a bit!

</comment></comment></comment></comment><comment><USER27> Amazing story. I salute you for going through it. Toshiba used to sell CNC milling machines to the Soviets back in the 80's to make very quiet submarine propellers. I wonder whether your version were just a smaller scale. If Fred had played his hand right, he could have made out a lot more.

<comment><AUTHOR> The kind of machine you are talking about is called a parametric CNC machine, not all controllers can do it, but those that can are capable of making very complex surfaces.

<http://www.cncci.com/resources/parametric%20programming.htm>

The work you are referring to requires 5 axis control, something that is fairly common nowadays but back then was extremely rare. The software I wrote was not capable of such complex movements because the machine itself was only a 3-Axis machine, a 5-Axis retrofit would be extremely hard to construct. Basically you'd have to rip apart the main structure of the machine and rebuild it. (see [http://www.youtube.com/watch?v=lWCaQ4XvG6Y&feature=relat...](http://www.youtube.com/watch?v=lWCaQ4XvG6Y&feature=related) from about 3:48) You could conceivably do that if you only worked on one kind of machine but retro-fits tend to be bolted on to whatever is available that still has a rotating spindle and good bearings.

The software did have some parametric tricks but not a full suite, mostly related to making different sized versions of the same part.

Most CNC machines are programmed in something called 'G-CODE', with a translator step between the CAD and the CAM part. The software that I wrote was much more tightly coupled (cad-cam all in one) so we had the full power of a regular programming language at our disposal to do complex part generation.

<comment><USER27> Pretty amazing video. It's interesting to see how the people disregard safety while the machine is running. They walk so close to the drill. I can see what you meant if there were bugs in the software and the drill arm suddenly swung wildly.

<comment><AUTHOR> There likely is a strike detector on the gantry and the arm the toolbit is attached to, so it is not quite as unsafe as you might think.

I agree with you though that they're not practicing proper safety and I've seen numerous examples of millwrights and machinists missing digits, eyes or worse.

A toolbit spinning fast enough will throw swarf around over considerable distances and it doesn't take much to take out an eye.

In production use normally there would be an enclosure and mandatory goggles. No 'walking around in the machine'.

Even the doors normally have interlocks, if they open it counts as an e-stop (emergency stop).

</comment></comment></comment></comment><comment><USER28> I don't understand how Jacques survived the 12 hour days for weeks on end? I go pretty stir-crazy when I work a 60 hour week and it's why I haven't started a startup. I'm not sure I would have it in me. Kudos.

I'm also wondering why he stuck around so long. To me the writing was on the wall that it wasn't going to work!

<comment><AUTHOR> It was closer to two years all together. And on plenty of days more than 12 hours. But I always was a pretty high energy person.

This is not something you should give me 'kudos' for, it's just something I was born with, though I feel as I'm getting older that I'm definitely slowing down.

The problem with quitting was that there seemed to be light at the end of the tunnel all the time, only then when you almost got there the tunnel got longer.

And in the end, it _did_ work. The software ended up working as advertised (ok, you can keep adding features to something like that forever, just like any other cad program) and it ended up as the basis of a reasonably successful company that is still in business over two decades later.

It's just that to do this sort of thing properly the first time out of the gate you'd need at a minimum 3 people, a domain expert (which 'Fred' definitely wasn't) driving the specification, a UI guy and a low level person.

If it had been like that I could have saved literally months of rework based on the assumptions that were fed in to the process early on as 'immutable', only then to be changed at a later date anyway.

</comment></comment><comment> cool-RR Maybe a morale can be: "Start with small projects before going for big ones"?

I mean, there are a lot of important lessons you learn when you have a "project from hell", so my reasoning is that the project better be small, so at least the price will be low.

<comment><AUTHOR> It started out as a small project. Little did I know.

I had done a large number of smaller projects and several mid-sized projects, as well as one very large one by the time I started working on this though, so it's not as though I was green behind the ears or something.

Maybe the morale should be 'know when to walk'. And I should have walked long before I did. The violence is what made the coin drop for me, it was a realization clear as day, 'I'm being abused here'.

Suddenly the veil came off. After that quitting was relatively easy.

<comment><USER29> >> It started out as a small project.

They'd always said that. Then at midway, suddenly "we need the money, and there is this client willing to pay if we make it such and such. It shouldn't be that hard eh? I know you can do it". On and on.

Till this day, if anyone says "I know you can do it", my alert level would increase.

To me, what made it easy for me to quit, was the fact that my boss didn't not want to spend any money on sales to sell the finished product, when all this while he had been spending money on the development of the product. For all the talk of "I am being most loyal to the company" and "I sacrificed a lot for the company", he hesitated on doing the final push.

As naive as I was, I suddenly discovered it would be stupid for me to stay. That made it easy.

</comment></comment></comment><comment><USER30> Some great lessons learned.</comment>


Million-Dollar SaaS Companies, Which Have No… Offices - <AUTHOR> https://belitsoft.com/dedicated-developers-hire-dedicated-team/top-saas-remote-companies#top <comment><USER2> Close.io also fits nicely in that category as well. We actually started as a more typical Silicon Valley startup but over the last few years transitioned to now being a fully remote/distributed team (profitable with $X million ARR).

What I miss about being in-person is the unplanned conversations on the way to lunch about a problem or feature idea, that otherwise may not have happened at all.

But overall being remote has allowed our team to have better work/life balance, have recruiting/hiring advantages [1], support our world-wide customers better, and lead for more distraction-free work.

[1] We're currently looking for 1-2 senior engineers: [http://jobs.close.io/?lever-source=hnsaasremote](http://jobs.close.io/?lever- source=hnsaasremote)

</comment><comment><USER3> Articles, Which Have No.... Content

<comment><USER4> I think that's a little unfair; there's:

* 10 individual companies mentioned

* a one sentence summary of the business itself

* A quote from someone involved in that company about remote working

* more than 1 link per company with resources about how they themselves deal with remote work

The site itself - it's visually very cluttered and it does itself no favours, but it's a good one-page collection of links about remote work (many of which I think have been discussed here before).

I have no affiliation or connection with this so no skin off my nose but to say there's no content is a little flippant.

<comment><USER5> I agree. Even if it's a bit of a roundup post, there's limited material on this stuff in general. Even small tidbits on process or philosophy are helpful.

</comment></comment></comment><comment><USER6> I know this goes against the usual attitude about remote work around here but...

That flow-chart at the bottom is hilariously true. I've been a part of remote work as both a manager and an engineer, and this is exactly how it is because of different locations, the lo-fi aspect of existing remote collaboration tools, and the activation energy required to communicate more often (and if you're in different timezones, good luck to you!).

If you're an engineer that wants to really understand what you're trying to build and why, or if you want to be part of the problem-identification stage rather than just implementing someone's specs, this type of arrangement will drive you insane.

Some engineers are perfectly happy with a detailed spec though. For them, I completely understand the lure of remote work.

</comment><comment><USER7> Incase anyone is curious or missed this like I did the first time around: the metric they are using is ARR.

Which to be fair is not a whole lot of money so not having an office makes sense. Once you pay for servers, marketing, and payroll you're probably not left with much.

But also to be fair, most of these companies are quite a bit more than $1 million ARR.</comment>


My Extravagant Zsh Prompt - <AUTHOR> http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/ <comment><USER2> I took the minimal approach with my prompt. Under normal circumstances, my prompt looks like this:

      ~$

I only show the username and hostname in my prompt if remote or unusual: [ -n "$SSH_CONNECTION" ] || [ "$USER" != "josh" ]. If either of those, I prefix my prompt with "user@host:". Apart from that, I show the exit status of the last command run, if non-zero. In general, I try to hide all boring information and show useful information only.

</comment><comment><USER3> If anybody's interested, here's my considerably less extravagant Zsh prompt[1]. It shows the current directory along with what top level directory you're in on the right prompt along with VCS info. The left side shows backgrounded jobs marked with pipes but otherwise is just a $ so command lines wrap less frequently. It uses the vcs_info functionality from zshkit[2].

[1] <http://gr.ayre.st/s/screenshots/git/git_working.png> [2] <https://github.com/mattfoster/zshkit>

        function prompt_grayrest_setup {
          unset PS1 PS2 PS3 PS4 PROMPT RPROMPT
          autoload colors zsh/terminfo
          if [[ "$terminfo[colors]" -ge 8 ]]; then
            colors
          fi
          # Colours accepted as arguments
          local u_col=${1:-'green'}
          local h_col=${2:-'blue'}
          local d_col=${3:-'yellow'}
          local d_col_pre='blue'
          local job_color='yellow'
          local n_tru=${4:-'blue'}
          local n_fal=${5:-'yellow'}
          # looks like: ee1mpf@eepc-tsar16 ~ $
            ps1=(
            # "%{$fg_bold[$u_col]%}%n@"
            # "%{$fg_bold[$h_col]%}%m "
            "%1(j.%{$fg_bold[$job_color]%}.)"
            "%4(j.%{$reset_color$fg[$job_color]%}[%{$reset_color$fg_bold[$job_color]%}%j%{$reset_color$fg[$job_color]%}] .%3(j.||| .%2(j.|| .%1(j.| .))))"
            "%{$reset_color%}"
            "%{%(?.$fg[$n_tru].$fg[$n_fal])%}$ "
            "%{$reset_color%}"
          )
          ps2=(
            "%_ %{$fg[$d_col]%}-> "
            "%{$reset_color%}"
          )
          rps1=(
            '%{$fg[$b_col]%}${vcs_info_msg_0_}%{$reset_color%}'
            " %{$fg[$d_col]%}%(4~.%{$fg[$d_col_pre]%}%-1~%{$fg[$d_col]%} %2~.%3~) %{$reset_color%}"
          )
          PS2="${(j::)ps2}"
          PS1="${(j::)ps1}"
          RPS1="${(j::)rps1}"
        }

<comment><USER4> Are you using a private fork of zshkit, or staying pretty close to mattfoster's master branch?

I used to pull in mattfoster's stuff, but I got complacent and fell out of it.

<comment><USER3> I'm pretty close to mattfoster's master.

</comment></comment></comment><comment><USER5> Why oh why do you need your battery life displayed in your prompt? There are plenty of other places to display it.

<comment><USER6> Because he works " _from coffeeshops and client meetings pretty often, so it's nice to have a reminder of my remaining battery power to know when I need to plug in_ ". Didn't you read it?

</comment></comment><comment><USER7> I just use oh-my-zsh (<https://github.com/robbyrussell/oh-my-zsh>) to quickly enable half these things.

➜ civ5replays git:(master) ✗

Looks like that now, the X means uncommited changes. civ5replays being the folder, the rest being... the rest!

</comment><comment><USER8> My favourite prompt-hack is to colourise the $ when the previous command exits non-zero, here's how I have my bash PS1 set up: <http://www.metabrew.com/article/updated-bash-ps1>

If you exit `top` by pressing q, it exits with non-zero - who knew? :)

</comment><comment><USER9> May I suggest to use this prompt for git users[1]. I use it daily and I am really happy with it.

[1]: <http://sebastiancelis.com/2009/11/16/zsh-prompt-git-users/>

</comment><comment><USER10> I love how Steve's articles get rediscovered and resubmitted over and over.</comment>


Home.cern goes retro to commemorate 30 years of the Web - <AUTHOR> https://home.cern/news/news/computing/homecern-goes-retro-commemorate-30-years-web <comment><USER2> Such a readable design with good information density. If spinning GIFs were excluded, this would be an improvement over the usual design. Hosting on a laptop is gimmicky but a simple layout favouring text is actually a good idea.

<comment><AUTHOR> Indeed. A little bit of work on the fonts and we'd have a perfectly current theme.

They should implement the animated GIFs as Java applets, which predate them a bit.</comment></comment>


Webpack hot reloading you can attach to socket.io server, no express anymore - <AUTHOR> https://github.com/gcaaa31928/webpack-hot-socketio <comment><AUTHOR> Webpack hot reloading you can attach to your own server with socket.io, and serve your own website by your server</comment>


Startup Quote: Mark Pincus, Co-founder, Zynga - <AUTHOR> http://startupquote.com/post/10687873587

<comment><AUTHOR> The only way people will have the trust to give their all to their job is if they feel like their contribution is recognized and valued.

\- Mark Pincus (@markpinc)

<http://startupquote.com/post/10687873587></comment>


What are good podcasts about finance, tech, health? - <AUTHOR> What finance, tech and health podcasts do you recommend? <comment><USER2> Finance:

Standard Deviations, The Disciplined Investor, Animal Spirits, Wall Street Unplugged, Radical Personal Finance, Dvorak-Horowitz Unplugged, The Meb Faber Show, The Sherman Show, Money For the Rest of Us, Peter Schiff Podcast, The Voluntary Life

Tech:

Accidental Tech Podcast, Mac Break Weekly, Security Now, Core Intuition, This Week In Google, Under The Radar, All About Android

Other stuff:

Voyage To The Stars (Comedy), Dragon Talk (D&D)</comment>


Richard Stallman Freaks Out and Has a Meltdown - <AUTHOR> http://www.youtube.com/watch?v=jskq3-lpQnE

<comment><USER2> I'm not one to sympathize with Stallman's crusade, but I feel for him about this.

As a Brazilian, it shames me that at first they asked him to speak English and halfway through the presentation people asked the coordinator to have him switch to Spanish because they thought they could understand English but in fact they couldn't. And, as we Brazilians don't speak Spanish, I know from experience they'd have a hard time understanding Spanish as well.

There was a total communication failure. The coordinator should have provided translation services as usual in this kind of event.

The audience behaved like animals, the coordinator didn't present any solution and despite the fact the Stallman explicitly asked people not to record and publish videos of his reaction, the fellow that was recording it was unmoved.

A complete shame in all aspects.

</comment><comment><USER3> A quick explanation of the youtube comments crying "BR BR BR BR" or "HUE HUE HUE HUE" for those who don't know the references:

Brazilians are widely hated in a lot of online communities, _especially_ gaming ones and _especially_ free online games and MOBA genre games. The stereotype is that they will ruin the game for their team/community and then cackle in your face about it (that's the HUE HUE HUE).

An MMO perspective: [http://4.bp.blogspot.com/_b77Eoxl7WQE/TB7YxU3CVSI/AAAAAAAAAA...](http://4.bp.blogspot.com/_b77Eoxl7WQE/TB7YxU3CVSI/AAAAAAAAAAk/HN42GUZ3fic/s1600/Brazilians+And+Games.png)

The situation was so bad in Heroes of Newerth (a free to play MOBA game) that most of the North American community was begging the team producing the game to make separate South American servers.

Anyway, that's why you see juvenile comments.

</comment><comment><USER4> Stallman should have politely told the coordinator to go and f##k himself and finished it in English. So did he finish the talk? Respect for him if he did.

</comment><comment><USER5> Someone probably bought him a parrot or asked about breakfast.</comment>


Are video codecs written in JavaScript really the future? - <AUTHOR> http://arstechnica.com/information-technology/2013/05/are-video-codecs-written-in-javascript-really-the-future/

<comment><USER2> I can understand the appeal, however its just not that feasible on low powered devices(Yet). Most mobiles (most things videos infact) have some silicon dedicated to h26 _x_ decoding. Using that silicon is a massive order more efficient (both power and CPU/GPU) Its also more reliable.

The other thing to note is that if ars is correct and that it only uses I-frames only in some cases, its not going to be bandwidth efficient. That's one compromise you can't really make in mobile land. Its also going to require two separate streams (one for each class)

One last thing, I've not actually seen any output "in the flesh" as it were. VP8 was supposed to be wonderful, but in fact its _almost_ a clone of h264, just with marginally worse performance.

(another thing, its actually really hard to make an HD player from scratch. You wouldn't think it but putting frame on screen in a timely and smooth manor is really not trivial.)

<comment><USER3> Would you mind going a little more in depth about VP8? Last I heard it was supposedly amazing but that was awhile ago.

<comment><USER4> What more is there to say about it? It's fundamentally almost exactly the same as H264, minus a few features that would make it too vulnerable to patent litigation, plus a few minor additions that are meant to patch up the efficiency lost by excluding some of H264's features. For web video VP8 performs about the same as H264, for high-bitrate/high quality (think Blu- Ray/Full HD) it performs decidedly worse because it doesn't have most (any?) of the advanced features in H264 main/extended/high profiles. The one big downside is lack of widespread hardware codec support.

There really isn't anything 'amazing' about VP8, except that some people think it fixes something about video coding because it is 'more free' than H264, which IMO is vastly overstated. In real life, for 99.9% of people (including those offering commercial video products), the difference is practically philosophical.

<comment><USER2> +1 this ^

<comment><USER5> If you want to +1 a comment, just click the little ▲ instead of commenting.

</comment></comment></comment></comment></comment><comment><USER6> <http://en.wikipedia.org/wiki/Betteridges_law_of_headlines>

It's quite hard to argue against commoditised hardware codecs, particularly when the decoder is a low power mobile device. It's one of the main reasons h264 is going to be around for a long time...

<comment><USER2> +1

There is a massive amount of high quality content, encoders and transport tools. Even when h.265 is properly ratified its going to be at least 2 years before we see mature tools/content.

<comment><USER7> Your green username indicates you're new here, so a tip: Don't say "+1", but just upvote.

</comment></comment></comment><comment> B-Con In all seriousness: Why? What do we gain from doing the decoding in JavaScript, besides the "cool" factor?

I can see how this would allow more flexibility, since a codec could be downloaded at run-rime, which would remove the need for media to only be packaged in codecs with native, cross-browser support.

But is there _any_ chance this could be even close to as efficient, CPU or power-wise, as the current standard native browser codec support?

<comment><USER8> The power in this is that JavaScript is extensively portable and very consistent across platforms. There are no issues with cross platform support that plagues C++ and to an extent, Java's JVM. There's no possibility of platform lock-in, which happens for .NET applications.

I don't like how this article is written at all. It leaves a bias afterlook that Mozilla's goal here is to create a toy. JavaScript is the fastest interpreted language and plans are out to make it even speedier. There's a reason why "the future" is emphasized.

Perhaps I am biased as a Node.js programmer, but I do believe this is a good thing. JavaScript is seriously pretty sweet. I do like the design of the language. There are features that outblow many other languages.

<comment><USER9> > JavaScript is the fastest interpreted language and plans are out to make it > even speedier.

Citation needed

<comment><USER8> With JIT compilation, asm.js, tracing, it is hard to argue against. A long fought browser war really brought out the maximum capabilities of the JavaScript engine.

[http://en.wikipedia.org/wiki/JavaScript_engine#Performance_e...](http://en.wikipedia.org/wiki/JavaScript_engine#Performance_evolution)

asm.js promises speed 2x slower than native code. For interpreted code, that is amazing.

<comment><USER10> None of those are interpreters. You're trying to compare Javascript against other JITted / compiled languages. Mozilla themselves claim that asm.js is only about 2x slower than C.

</comment></comment></comment></comment></comment><comment><USER11> Part of the question about the Obex technology is where should the computational cost of video transmission be born? Client side or on the server side.

Decoding in general purpose compute is expensive for client devices in comparison to codec specific hardware.

Otoy's goal is to make encoding computationally inexpensive on the server side. This makes applications like per client frame by frame watermarking and low latency encoding far more scalable than other solutions.

Otoy is trying to explore the market potential of inverting the typical encode/decode cost model so that rather than encode once -> decode many. It becomes affordable to encode on a per client basis.

<comment><USER12> As client devices grow both in computational power and sheer numbers - I think scalability will be facilitated by offloading at least some of the heavy lifting to the client.

<comment><USER13> That makes sense if you just consider computational power, but what about bandwidth? The reason we make these fancy video encoders in the first place is to make the data to send much smaller, and while we all have plenty of power on desktops, laptops and mobile is catching up quick, bandwidth still mostly sucks, at least here in the US.

</comment></comment></comment><comment><USER14> "We spoke to OTOY, and the company told us it has no immediate, specific plans to publish it openly. That's not to say that the company is necessarily opposed to doing so; rather, it's not sure how to do without undermining its commercial products."

ah, thats why i couldnt find it on github. and oh :(

<comment><USER15> If it is decoded in Javascript on the browser (so... source code), can't we figure out how to decode and encode the codec fairly easily?

Or would using the codec still be a copyright violation even if it is reverse engineered?

<comment><USER16> Minified js isn't much easier to reverse engineer than compiled native code.

<comment><USER17> I've spent most of my life reversing native code, and I've also reversed a good deal of minified JS. The latter is many, many orders of magnitude easier and less time-intensive in _every_ case. Now, with things like Emscripten and Asm.js that will change (since the JS is effectively compiled native code), but it still will be easier due to the fact that, for example, you don't have to worry about code-data separations you have to worry about in most native code.

</comment></comment></comment></comment><comment><USER18> It seems like easy access to the same video with many different watermarks would make it easy to find the watermark, or at least easy to destroy it?

Can you still identify who shared a video, if the shared video was created by averaging ten copies with different watermarks?

</comment><comment><USER19> > H.264 video is abundant, and is unambiguously "the winner" of all the > current major video codecs

> The viability of watermarking as an alternative to DRM is also speculative > conjecture (...) In spite of the changes in the audio market, the video > market has remained firmly in favor of DRM

A week-old demo and the author is already saying it doesn't have enough market share to be viable.

</comment><comment><USER20> Is the major advantage of ORBX.js is that it can be decoded by leveraging webGL? isn't that also possible with VP8/H.264?

<comment><USER21> Experiments with decoding of H.264 in JS+WebGL were done in the Broadway project, and while (as mentioned in the article) reasonable frame rates in JS alone were achieved, WebGL was not a huge benefit. The problem is that H.264 was not designed to run in a massively parallel manner like GPUs expect. There is too much stuff that is serial, so you must run that on the CPU.

But a new codec like ORBX.js however can be designed to run efficiently in WebGL, that is what is interesting here.

</comment></comment><comment><USER22> I wonder how much CPU it really uses. The Firefox PDF viewer always makes my CPU usage jump almost to the top.

</comment><comment><USER23> Yes they are, because existing video codecs are based on 1980s signal processing ideas, and increasingly video starts out as being 3D models that are naturally better suited to a trimesh and textures approach instead. I wrote about it here: [http://epeus.blogspot.com/2013/05/finally-some-progress- in-v...](http://epeus.blogspot.com/2013/05/finally-some-progress-in-video- codecs.html)

<comment><USER24> What are you talking about? Film is 2D. How do you imagine it to suddenly be "encoded in 3D"?

<comment><USER23> The world is 3D. I bet the last few films you saw had extensive 3D modelled scenes in them. I bet all the video games you play have 3D cutscenes.

<comment><USER2> This is true, but the are pre-rendered for a reason. Anything with water you're looking at 24hour+ sim time, plus render, and 1tb of data plus. SubSurface Scattering (translucency) takes a huge amount of CPU time.

</comment></comment></comment></comment><comment><USER25> As long as this means no more flash, it's a welcome improvement.

<comment><USER26> Not to your battery life.

<comment><USER25> Neither is flash.

<comment><USER27> Flash video typically uses hardware decoding.

<comment><USER25> This article backs my claim:

<http://iss.oy.ne.ro/HTML5-Video-Battery>

Hardware decoding or not, Flash is always less efficient than the alternatives.

</comment></comment></comment></comment></comment><comment><USER28> > The use of WebGL and shader programs may improve the power efficiency > somewhat, but they are still inferior to the dedicated motion video hardware > found in all modern GPUs.

Um...what? Last time I checked WebGL ran and "shader programs" ran on the GPU. What am I missing?

<comment><USER29> The actual decoding passes don't translate well to shader architectures, so GPUs include custom circuitry to handle various transformations involved in decoding.

</comment></comment><comment><USER28> The author works for Microsoft. The proposal to use watermarking is in direct contrast to Microsoft's PlayReady DRM implementation. Passing off a conflict of interest as news.

</comment><comment><USER26> Previous discussion: <https://news.ycombinator.com/item?id=5653531>

<comment><USER25> Sadly, only focused on the 'games streaming' aspect.

</comment></comment><comment><USER30> This is fine but the real reason h.264 is so well entrenched is because the whole industry supports it at the hardware level with onboard chips and IP cores. This is particularly important as mobile devices become prevalent. Hardware decoding is essential to reduce energy usage and improve batter life.

<comment><USER31> VP8 is catching up in modern SoCs. So H.264 won't have that advantage in the near future (it still has it now, given the existing hardware base).

Some things need to be clarified first though, like recent Nokia's patent sabotage to VP8. Not sure what is going on with that.

</comment></comment><comment><USER32> Sure, why not.</comment>


How We Wrote a Textbook - <AUTHOR> http://tim.hibal.org/blog/how-we-wrote-a-textbook/ <comment><USER2> This is awesome, and (since it looks like he came up with the setup) I declare Tim Wheeler personally to be awesome.

The thing kind of reminds me of the setup that Robert Sedgewick used for his algorithms textbooks. They've got code snippets, plus a _ridiculous_ number of diagrams that visualize the algorithms step by step on toy inputs. They're an incredible aid to understanding, and nobody would possibly have the patience to draw all those. The book even has extra-wide margins to hold them all!

Somewhere in the book (the preface?) he explains how the hell he drew all of those, and it's a real story. He wrote the code snippets as full self- contained programs that `printf()` some algorithm visualization data as they go along. Then he used some literate programming tool to chop out the inessential parts for the book -- but he runs the programs also, somewhere in his makefile, and gets them to spit out their big list of numbers. He then converts this to a diagram using a widely-known command-line tool called "cat": he wrote a bunch of diagram-drawing programs in PostScript, and they'll have the necessary data waiting on the stack if he just appends them to the output of the code snippets.

<comment><AUTHOR> Wow! Thank you pjscott.

Our approach achieves something similar to what you describe for Robert Sedgewick. Its really interesting to hear how others do it.

</comment></comment><comment><USER3> I weirdly love reading about other people's workflow. This is really cool thanks for sharing.

One issue I have with literate programming is that its difficult enough to write code, now you have to worry about writing code in the middle of writing prose. For that reason I prefer to just have all my code output a bunch of latex files so I can separate the code-writing from the paper-writing. Which I guess is against the philosophy of literate programming as a whole...

How did you get around this? Do you share the same frustration that you are constantly being distracted by one or the other?

<comment><AUTHOR> Julia turns out to be a very nice language for problems like this. Many of the algorithms end up looking very much like the pseudocode from the original paper. We can use unicode as well, which makes a lot of the math (like gradient symbols) easier to read. We drop the type annotations to make it more legible. "Real" implementations could definitely improve what we have in terms of error checking and efficiency improvements, but we optimized for understanding and clarity.

Very often getting the figures to generate properly helped us catch mistakes in the code. I usually did this in a Jupyter notebook, because I can iterate there a lot faster than making a small in the book source and running the compilation process there.

I guess we didn't really have to get around the problem - the algorithm was of principle importance and then we had to figure out how to best produce figures for it.

<comment><USER4> Type annotations make code more legible.

</comment></comment></comment><comment><USER5> (Assuming that the author posted the page)

What is the license for the code samples? I seem to remember that the code in Numerical Recipes, which is stated as a similar book to some degree, is actually fairly restrictive [0].

[0]: [http://mingus.as.arizona.edu/~bjw/software/boycottnr.html](http://mingus.as.arizona.edu/~bjw/software/boycottnr.html)

<comment><AUTHOR> I am not a lawyer, but I for one would be thrilled to hear of any of this being used for good by anyone, whether for personal or commercial uses. I don't see anything other than the standard MIT Press protection clause behind the cover at the moment but will definitely look into it. Thanks!

</comment></comment><comment><USER6> This looks like a great piece of hard work covering topics that are not easy to grasp. I am wondering why the author(s) chose to write their code samples in Julia. Most algorithm textbooks I have come across use their own "pseudocode" which often ends up being challenging to read, but in a perfect world, I would selfishly like to have all of the code snippets in Python. Even though this textbook doesn't do that (although let's not rule out future optimizations!), the amount of work that went into this was clearly astounding and well done.

<comment><USER7> Mykel Kochenderfer is a coauthor on the book and the PhD advisor to Tim. The video [1] below describes how Kochenderfer came to be using Julia (it's faster than Python, and has an AST that the formal verification guys like).

[1] [http://www.youtube.com/watch?v=rj- WhTL_VXE&t=16m9s](http://www.youtube.com/watch?v=rj-WhTL_VXE&t=16m9s)

</comment></comment><comment><USER8> Can anyone recommend any good tools to generate diagrams/visualizations of algorithms ?

Even better, some documentation/article to build such a tool.

<comment><USER9> Second this especially flowcharts (for me)!

</comment></comment><comment><USER10> As a grad student that has started and re-started writing a textbook for a couple of years, this is super inspiring! I love hearing about clever LaTeX tooling too.

</comment><comment><USER11> Looks like a great book, is there an online draft available?

<comment><USER12> wondering the same

</comment></comment><comment><USER13> Site is down for me....

<comment><USER14> Try again. It just worked for me; I'm writing this two minutes after your post.</comment></comment>