I Wasn't Prepared for Work (2013) - <AUTHOR> http://web.archive.org/web/20140711171559/http://symbo1ics.com/blog/?p=1803 <comment><AUTHOR> It's always a little bit risky to write something personal that will inevitably come across as something other than humble. _Especially_ when it's also mixed with something that comes across very first-world-problemy. Mind you that showing that one can do a little bit of calculus isn't a testament to being a genius or anything like that. The examples the story describes might as well be equivalent to something more obviously creative in nature that isn't bound by the constraints of time, like amateur painting or music making might be. (Professional mathematicians or physicists would agree that a hypergeometric series doesn't even scratch the surface of "difficult" mathematics.) There are real geniuses in the world having extraordinary intuition being extraordinarily productive and have something to show for it. This is not that.

I posted this because I was reminded of it after reading pg's Bus Ticket essay—which to me was more about discovery than it was genius. When you have 10+ hours a day, 7 days a week, with no dependents and no job, there's a lot of room to follow interests, as petty/useless/insignificant as they may be, and frequently if you spend _that_ much time, you'll discover new things or make new connections.

The conclusion of the story maybe is obvious in retrospect: that doesn't happen (as easily) if you have a job (or family or partner or ...), even if your work is in an area you ostensibly love. You won't have the same space to dive deep in areas that you choose, and you may not reach the same level of creative zen. It's not something I realized going into the job market over a decade ago, and I think it's a worthwhile consideration for people who value not being preoccupied with what time it is.

(For those expressing concern, don't. Or those taking away that I'm not doing something that I like or following my passions, I am. I still do the things I like to do, but I don't sacrifice everything else in life to focus on them exclusively. It remains to this day that that has its costs and benefits.)

<comment><USER2> Thanks for sharing.

I stared in horror at the following:

"Here in Silicon Valley, it's even worse. I have an aesthetically nicer place, but I now don't even have a desk or desktop machine. I type from a small laptop on my couch, being held up by a pillow. I have no room for a chalkboard or whiteboard, unless I wanted to cover up half of my mirrored closet."

I am an east-coast developer and am totally spoiled with my home office. I never had an urge to move to silicon valley and this makes me even happier I'm not there.

Five computers spread out over three desks, two large bookshelves, a couch, and a fireplace.

<comment><USER3> I am a German developer with a German developer salary (between 60k€ and 70k€ to provide a ballpark estimate) and I live in the center of a large, well- known German city.

The area is extremely nice except for parking and I live in a ~70sqm modernized apartment with my own home office and enough room for tech gadgets, a large couch, a large bed and a balcony... etc.

In the evening, restaurants, bars, cinema and nice parks are < 15mins walk away. Grocery store from cheap to luxurious are in the same range. I have access to good healthcare (aside from getting an appointment for specialists it's fine), insured the most important aspects of my life and if I want to go to another large capital I need 20mins to go to Central Station and take a train or 20mins to the airport and take a flight.

Aside from Apple and depending on what you want, all major Silicon Valley firms provide jobs in at least one of the larger German cities, notably Munich though.

I honestly do not understand why people are drawn to Silicon Valley so much - unless it's simply about the "environment of minds" if you are willing to sacrifice all other aspects of life to it to some degree (worse living situation, worse working conditions...). For innovation and startup life, I suppose it makes sense. But for a normal software engineer?

Can somebody explain this to me?

<comment><USER4> Salary at FAANG starts at 120.000USD (when you 'just' graduated from Stanford or Berkeley) and will go up to about 300.000 over time.

<comment><USER3> I understand that. I earn less but don't push half my salary to rent or breaking my bone.

</comment></comment></comment></comment></comment><comment><USER5> My advice would be: rigorously eliminate everything from your life which doesn't fit inside your top X critical priorities.

Where X is as small as possible, and seek to cull it further by combining equivalents and trying to identify why some 'important' things might actually be utter wastes of time in the first place.

The world generally uses a ratchet approach to conquer your attention. Use a ratchet to take it back.

<comment><USER6> This is excellent advice which has even been echoed by Warren Buffet [0]. Time is a finite resource and therefore everything we do is a trade-off between depth and breadth. In a given day, you could spend 1 hour learning 24 subjects, or 24 hours learning 1 subject. One isn't necessarily better than the other, but it's a constraint we all operate around. Learning 24 subjects may be interesting and fulfilling to some, but from a professional standpoint those that tend to be most influential in their respective fields are those that devote the most time towards their subjects. There are exceptions of course, but this is the general advice for the general population.

Recently, I've started to adopt a similar perspective by rigorously evaluating everything with a simple question: "20 years from now, will my kids be proud that I did this?" If the answer is no, I stop it. So far, I've stopped playing video games and using social media, and I've noticed that I've gotten an extra 10-15 hours per week to spend on things that will make me a better person in the long term, like reading, working out, and spending time with my friends and family.

The same approach could be used with any endeavor: "In X years, will I be better at <subject> if I continue to do Y?"

[0] [https://jamesclear.com/buffett-focus](https://jamesclear.com/buffett- focus)

<comment><USER7> > _For instance, on the planet Earth, man had always assumed that he was more > intelligent than dolphins because he had achieved so much—the wheel, New > York, wars and so on—whilst all the dolphins had ever done was muck about in > the water having a good time. But conversely, the dolphins had always > believed that they were far more intelligent than man—for precisely the same > reasons._

― Douglas Adams, The Hitchhiker's Guide to the Galaxy

<comment><USER3> This resonates well with me. I honestly do not understand the benefit of dropping video games in favor of <random hobby>, for example reading. Alternate / do both if you enjoy it!

Before you recoil in disgust, let me note that I have read many many books and love reading. I value literature a lot but when it comes down to what I do in life and what things REALLY REALLY give me in the end, then books don't perform better than a range of selected video games (to my own gusto). In then end, a book doesn't propel to new positions more than a game does, unless it'sa book meant to teach me new technology or so.

It's simply another form of media, another form of story telling and conveying experiences. And while I enjoyed "Marc Aurel's Meditations" and took a lot of benefit out of it, Persona 5 also provided me with some good, memorable experiences that make me rethink life. Even just the "Take your time" loading screen spinner... If I put them on a scale it's simply even for me in value.

<comment><USER7> I'm with you on Persona 5. I haven't finished it, but it has already influenced my life in a positive way.

You should consider playing "Tales of Berseria". It poses an interesting question: "Why do bird fly?", and gives interesting answers.

</comment></comment></comment></comment></comment><comment><USER8> I read this article and while it's sad the author doesn't pursue passions anymore, I also can't help think that maybe they just aren't as hungry as they once were. I was diagnosed with cancer 4 years ago and it changed my perspective on life. I'm mid 30's now and more productive than ever. I also work full time and am a single father to two little kids. The way I describe it is that I am hungry. I didn't expect it to last this long but it's been years and I'm still regarded as a very motivated and determined person by others.

<comment><USER9> Similar situation (though not Cancer, in my case a life a potentially life altering spinal condition and a separate unrelated but equality serious stomach condition) and similar response, I suddenly started going for jobs I wouldn't have dared before and both getting them and doing them well.

I also bought a motorbike and will be upgrading that to a faster one next year, both medical conditions are under control and the medication works but now I'm determined to _live_ my life on my terms for as long as I can rather than just drift.

I also ramped up the exercise and I'm now lighter and fitter than I was in my late 20's (I'm approach 40) - I think sometimes you have two choices, cave or say "fuck you" to the universe and carry on, I'm glad you picked the latter but I understand why someone would pick the former.

<comment><USER10> > cave or say "fuck you" to the universe and carry on

Props to you! That's a great attitude to have.

</comment></comment></comment><comment><USER11> I am curious to why you think working at Google is reserved only for the very best of the field? I don't have good visibility into normal companies, but honestly all FAANG companies essentially employ armies of average developers, although they might have a higher density of exceptional developers than other companies. Mostly they are distinguished by two things:

* They work with economies of scale. What may be viable for a startup might be useless for Google. What might be viable for Google might be absolutely disastrous for a startup.

* They use a management style that fosters innovation and learning.

The interviews can be tough, yeah, but all it takes is practice and given that you seem to have good mathematical skills, hiding a few weeks or months in the basement with an algorithms book and a laptop, should make it easy for you to pass a Google interview.

<comment><USER12> Having spent a good deal with my of my career in the wilds of technical consulting, I can say with confidence that the product group and engineers at places like Microsoft, Google, and Amazon really are better than average. That's not to say they have a lock on all good engineers, because but they have very few bad ones.

You are right though, getting into one of the bigs isn't impossible with a reasonable amount of work studying for the interviews and aggressively seeking connections It's just that the people willing and able to do that work are already showing they have the right mindset to be a good dev a anywhere

<comment><USER13> But with these "better than average" types, what is the culture like other than constant, non-stop work?

People died to get us a 40 hour work week and here we have all these brilliant folks putting us right back in chains. They think they're getting rich, but it is all a lie. A few are getting rich, the rest are being tricked.

<comment><USER12> At Microsoft its pretty good, I can't speak well for others. Work-life flexibility is something we take pretty seriously in the groups I've worked in, and the workload is pretty manageable. It's a little >40h/week on average, but not dramatically so, and most people take their full vacation and holiday packages (3-5 weeks vacation, 12 holidays). There are bad weeks or a bad month, but its not the norm. I'd say almost everyone spends more time then that doing other technical things, but that's because we get joy out of it. Last time I tried to measure it, I'm typically doing about 5-10h/week on top of work reading technical books, researching something, or playing with some new technology on my own time.

There are also a number of true workaholics spending 60 hours + a week strictly working, but that's typically because they want to and not because the organization is running in permanent crunch mode.

</comment></comment></comment></comment><comment><USER14> > How has this affected me? I've mentally atrophied. I now feel like I can't > talk about any subject with more than a centimeter of depth. A half a decade > ago, I could dive with you to the penetralia of convergence theorems of > hypergeometric series, but now I cannot. Even my programming has taken a > toll even though I do it every day. I find myself abstaining from studying > advanced topics in programming and computer science, and instead sticking to > this comfort zone of what I know.

How does one go about overcoming mental atrophy? Especially after spending a decade or more programming, I think most (if not all) developers battle with this problem...

If any one of you has successfully done this, please share.

<comment><USER15> I've seen many engineers manage this by simply finding ways to work less.

Programming is sufficiently difficult that time it takes to complete tasks can vary by more than order of magnitude. I've given a junior engineer a task that would take me 2 hours, had them come back with a solution in a week, and been happy with the result.

So if you achieve a certain level of skill you can take jobs that are "beneath you" and claim the tasks that took you 10-20 hours actually took you 40. It's not particularly honest, but most employers aren't willing to engage in fair market rates at 20 hours a week so people find ways to get what they want outside of the system.

<comment><USER16> Yeah that is kind of how I'm approaching it after I was diagnosed with serious health issues. I just take it easy on my job where I can do in 20 hours what others take 40 hours. I still get paid well above what I need to live. My travel times to work are good. I rarely have to work on weekends.

</comment></comment></comment><comment><USER17> The author says he's clever, and I believe him. It's easy to believe, because I've heard this story a hundred times before.

I grew up with lots of clever people, met through math and science competitions and camps. Easily 80% of them, maybe 90%, have gone off to FAANG, investment banks, or consulting firms, and had the exact same fate. Nothing was stopping them from continuing to tinker with ideas. None of them would have gone hungry that way. They made a choice -- a perfectly fine, rational one -- but let no one say the result was surprising.

</comment><comment><USER18> The guy sounds like Stephen Wolfram with how casually he strokes his ego by going on and on about all his wonderful intellectual pursuits.

His account does bring up the awful-but-rarely-discussed issue how to keep even somewhat "mentally sharp" amidst all the demands of life.

<comment><USER19> It was kind of funny. I recall people talking about what they did like that before. At least here I could skip ahead instead of wait for them to get to the point.

</comment></comment><comment><USER20> Dude, never accept a four hour a day commute. Go somewhere else. Take less pay. Go to "flyover" country. Anything but a 4 hour commute.

When you regain 3+ of those hours, your mental atrophy will subside.

Also, if you are (or were) as brilliant as you say, then just go to grad school. You don't really need an undergrad degree!

</comment><comment><USER21> >Even my programming has taken a toll even though I do it every day. I find myself abstaining from studying advanced topics in programming and computer science, and instead sticking to this comfort zone of what I know. I contemplate blaming this last issue on the fact that Silicon Valley is quietly cutthroat; you need to be the best at what you do in order to land jobs at e.g. Google. If I stay in my comfort zone, I am able to keep small unimportant details of a particular language, tool, or implementation in L1 brain cache, which proves useful during interviews.

The way I deal with this is getting the most highly paying job I can and then having three months off where I do what I please.

I've just finished a contract with an Evil Inc that's paid me enough that I can buy a lab to do synthetic biology in. While waiting for the machines to arrive I'm doing some really fun C.S. stuff I have not done before.

When the money runs out I will go back to doing what I was doing before. This is the 4th time I've taken time off. It hasn't hurt my career progression at all.

<comment><USER22> From your post it sounds like you do consulting or freelancing. If I may, how long do these engagements typically last? I've flirted with the idea of short periods off in between jobs (FTE though) but have typically kept up ~2 year engagements.

<comment><USER21> I'm somewhere between consulting and contracting. Ideally between 6 months and 1 year. My last gig lasted 18 months which was too long, I've also had 8 week stints but those drain you with all the hustling you need to do between jobs.

My partner and I own our own company and optimizing taxes is the main reason why we can afford buying $50k in equipment. That we have similar interests also helps.

</comment></comment></comment><comment><AUTHOR> Previous discussion (2013): [https://news.ycombinator.com/item?id=5806132](https://news.ycombinator.com/item?id=5806132)

</comment><comment><USER23> Thanks for writing and sharing. This articulates a lot of the feelings I have about work as well, and it's put more eloquently than I am able to. It's only now that I appreciate my time at university, where I would actually learn things that interest me, and have a lot of free time as well. If I wanted to try something new, e.g. reverse engineering, I could pick up a solid basis in some weeks (or months). I now have an ever-growing list of projects that I just don't have the time for. The scary thing is that the longer I wait, the more I lose motivation to work on these things.

It also seems related to mathematics and computer science as a hobby. If I want to go running, I can do so in an hour and be done with it. With mathematics or programming, I need a couple of hours before I start being productive. Most people who don't do math or programming don't understand this. They frown when I don't make any noteworthy progress in one or two hours, and when I try to work on something I keep getting interrupted which is detrimental to my productivity. I talked to my girlfriend about the long list of projects I still wanted to do (work on programming languages, operating systems, compilers, assemblers, FPGA's, memory controllers, reading/learning math stuff, and writing). A weekend later she asked me something along the lines of "Well, you've had the whole sunday morning to work on these things; Did you manage to cross some things of your list?". I mentioned that these are not one-day projects, but I won't be surprised if she'll ask again after christmas.

</comment><comment><USER24> I'd hesitate to call the solution to his problems "obvious" but it seems _one_ obvious thing he should do is look for remote work, or at least work someplace with a lesser commute so that he can get 4 hours a day back from his commute.

He should take a less-challenging job, perhaps, and get his work done quickly so that he can have lots of time left over for his own pursuits. I've had jobs in the past where I was able to do this with some success.

The idea that your job should challenge you is, perhaps, BS.

For so many jobs, the "challenges" consist mainly of dealing with political forces and/or forcing yourself to do other things you may not necessarily care about.

I would guess only a tiny percentage of us have jobs that are truly fulfilling. And maybe that's fine. Maybe we should go back to the days where we just punched the clock, figuratively speaking, and ditch the idea of getting fulfillment from our jobs. It's hurting our ability to find fulfillment elsewhere.

</comment><comment><USER25> Time management, mental and physical energy management, planning and organizing are very underrated skills in tech. No matter how clever you are if you don't have the above, you are going to hit the ceiling fast in a demanding environment.

The dreaded word! Processes and systems, better figure out systems and processes that work for you fast.

You must figure out what works for you, here's a few for me.

I use a trello board to manage home tasks and personal tasks. I schedule things I need to do in my calendar. I use checklist to keep track of things I need to do. I even schedule fun activities so I don't burn out. When I can tell I'm running low on sleep, I schedule sleep alarms to remind me to go to bed. To dive deep into something when you don't have the time is tough, but you can do so by scheduling smaller times and keep detailed notes which you can reference to remember what you have done and where you were.

</comment><comment><USER26> Best bet would be to find a corporate job that best matched his interests. Back in the day, major corporate labs could manage a limited number of "sheltered workshop" situations for particularly talented people. Academia wouldn't work because of academic politics and the funding mechanisms. Both academia and government are also too "credential" oriented to hire him.

</comment><comment><USER27> This predates the machine learning boom. Now there's much more demand for people who are into that kind of math.

</comment><comment><USER28> I would love to read the article because, based on the comments here, it seems interesting. However, regardless of what I do, I can't seem to have the math load for me. I have tried Firefox, Chrome and Edge with no luck.

</comment><comment><USER29> > I don't like to work too often, unless it's for something groovy...

"Even Dwarves Start Small", by Younger Brother

</comment><comment><USER30> well, I hope the author is doing well

</comment><comment><USER31> saved

</comment><comment><USER32> _But the environment matters a lot less than the fact that when I get home from work—which is a two hour commute each way (sorry, I can't afford to live in downtown San Francisco)—I just feel like being mentally incapacitated._

This person spends 4 hours commuting each day. I would suffer from mental atrophy as well. If you work full-time, that's at least 8 additional hours per day down the drain, and that doesn't even include groceries, cooking, eating, taking a shower, etc. Barely any time is left if you want to get 7-8 hours of sleep. I think the soul-crushing reality here is that a commute like this is very unhealthy, and that he should change this by moving or getting another job.

<comment><USER33> Either the commute, or the long working day. The commute might be less soul crushing on a 6 hour work day.

In any case, I generally refuse jobs outside Amsterdam (where I live) unless it's Utrecht right next to the station. Otherwise the commute just gets too long. Sometimes a recruiter asks if there's really no way around that, and I tell them counting the commute as hours worked, meaning I'd be present at the office less, would work fine for me. I don't want to be forced to sacrifice private time for work.

</comment></comment><comment><USER34> Very cringey stuff.

<comment><USER35> why do you say that?</comment></comment>


Best programs to protect kids from porn /monitor on internet? - <AUTHOR>

Alternatives to OpenDNS? <comment><USER2> Talk to them about stuff before its a "thing." No matter what you do their friend from school will have figured out how to get around the school firewall and get to the "good" stuff on the Internet, and if you're kids haven't been talked to about it yet they will be at the mercy of their friend describing how they should interpret it.

You want them to recognize when predators try to create a chat session with them, how their presence on the Internet is perceived by others, and some basic eye opening about the wide variety of behaviors people get into once they are adults (and mid teens). For my daughters we started talking about this around the dinner table when they were about 10.

<comment><USER3> The best benefit of having conversations upfront is that there is a sound first response - another conversation - when some undesirable behavior happens...whether it's one that was discussed specifically or not.

</comment></comment><comment><USER4> If your on a mac, a lot of what you would want to see works OOTB with no fancy solution.

If your not on a mac your going to want more than openDNS, more along the lines of a full fledged proxy.

Take the first few opportunities to educate and let them go figure things out for themselves. You will both be happier with the approach... If you create limits they are going to figure out how to get around them (friends, starubucks, neighbors wifi).

</comment><comment><USER5> [http://www.websafety.com](http://www.websafety.com) offers a monitoring solution which informs parents of suspicious activities.

</comment><comment><USER6> An ad blocker is important. I'm not a fan of ad blockers in general, but there are so many awful ads out there that young children definitely need them.

</comment><comment><USER7> Adblockers on browsers can help a bit.</comment>


Ruby Developers Offended by $2,800 Ruby Class - <AUTHOR> http://www.betabeat.com/2011/12/27/ruby-developers-offended-by-2800-ruby-class/

<comment><USER2> I find the comments given as examples of the "blowback" against the post very typical of programmers and fairly revealing.

First, does anyone doubt the value of learning Ruby is much greater than $2,800? I imagine the course is targeted at someone without any programming experience[1], which only increases its value.

Second, not everyone can teach themselves to code. It's an easy trap for us programmers to fall into, since we can often pick material up on our own. But we do call it "code" for a reason -- this is difficult stuff!

Third, many objections focus on the high price of the course. That's absurd -- it only establishes a higher value on the skillset those programmers already possess! We clamor for managers and sales people to just learn to program a little bit -- one way of conveying that value is to capture more of it in the training programs.

Fourth, these courses are just an option. Their existence doesn't threaten all the awesome free Rails courses out there.

It strikes me as a little bit of trademen unions. As if we want new programmers to pass the "self taught" trial by fire initiation ritual.

[1]I also understand the objection to the forum in which this course was offered; however, the primary objections in the article seemed to be focused on the cost of the course, rather than the manner in which it was advertised.

(edit, formatting)

<comment><USER3> _I find the comments given as examples of the "blowback" against the post very typical of programmers and fairly revealing._

Note that a couple commenters also pointed out that the class is now sold out.

What this reveals is that only a tiny tiny tiny subset of programmers is bitchy about prices, but that the vast majority recognize a good deal when they see one.

Many of the students in my make-and-sell-your-first-product class come into my class with the misapprehension that "developers don't buy." Because of crap like this. But devs absolutely buy. Many, many, many companies make a great living off selling to developers (including my husband & me).

It's just that the loud minority is very, very loud, and the buying majority is dependable… and quiet.

My personal theory as to why the angry minority is so angry: they are so afraid of being manipulated or "ripped off" (because that would pierce their self-image of super intelligent, uber-rationality), that they react like rabid dogs to anything with a price tag.

This loudly, vehemently expressed attitude also has a chilling effect on buyers who might spread the word in public, because if they say "Oh I bought xyz and it was great, you might want to try it," the angry minority will attack. So the lack of discussion may lead to people assuming, again, that developers don't buy, because most of the posts are anti-buying.

But, like I said, lots and lots of companies make a great living off selling to devs. Devs absolutely do buy. They can be great customers, too.

So I hope nobody will read this and be put off starting a real business aimed at devs.

FTR, $2800 for a 6-week course sounds like a great deal to me. When my husband & I teach our JS workshop, it's $500 for a day.

</comment></comment><comment><USER4> I've been teaching programming classes (mostly Ruby, Python, and PostgreSQL -- and for a long time, Perl) for more than 10 years. People ask me to come to their companies and teach these technologies to them, and they're willing to pay me for it.

How many such courses have I ever taken? None. And I can't imagine ever taking one.

Like many others on HN, I've got a CS degree, and an ability (and interest) in teaching myself new languages, techniques, and tools. I also have the advantage of being self-employed, which means that I can (and do) take the time to learn new things, even if they're not directly related to the work that I do for clients.

So if I want to learn a new language, I'll get some books on the subject, read a bunch of blog postings, try out a lot of things... and then make mistakes, and learn from those.

Is this a great way to learn? I certainly think so. But it's not the only way, and I recognize that:

\- Some people prefer the structure of a course, laying out the concepts in an organized way

\- Some people don't have the time to experiment, and need the compressed time of a course, even if it means that they learn things less deeply

\- Companies sometimes need to get a lot of people up to speed on a technology quickly, and a course can reduce that time somewhat, by having everyone at the same level

\- Some people cannot learn without a teacher or guide.

I'll add that one of the advantages that my students get is lots of advice based on experience. It's not unusual for me to introduce a concept, or show them that something is possible, or answer a question -- and then say, "Please don't do this in your code, for your own sake and for the sake of anyone who will have to maintain it after you." Sure, people might learn this on their own, but I can give them a jump-start, based on my own trials and errors.

Now, is $2800 a lot to pay to learn Ruby? I don't think so, but it depends on all sorts of factors. I can assure you that for every day of a course that I teach, I've put in at least one day of preparation, and often much more than that. There are many courses out there, in many different shapes, forms, and price levels, that I don't think it's fair to bad-mouth someone who tries to charge that much. Believe me, if they're charging too much, the market will make it clear to them very quickly.

But if they're giving a good course, then it'll quickly be oversubscribed at that price (or beyond) -- and furthermore, participants will feel like they've gotten a good deal for their money.

</comment><comment><USER5> It's so disappointing when people get up in arms over things like this. So someone decides to put on a class for $2,800? If you wouldn't pay that, don't go. If you don't think it's a good value, you should be free to voice your opinion: "I don't think this is a good value because of X, Y, and Z." There's no sense in getting worked up over it.

</comment><comment><USER6> What a strange community. Who cares if a class is $2800? $2800 is only a few days of a programmer's time, and if he can learn faster in the format of a class, then it's money well spent. If you can learn from some docs and playing around, that's good too (but beware: you might be doing things horribly wrong and you won't know until long after the bad habits have solidified).

Disclaimer: I've taught programming classes like this (but only charged a few hundred dollars for 3 days).

</comment><comment><USER7> >Art.sy's Daniel Doubrovkine and Pivotal Labs's Dimitri Roche are teaching a six-week class on Ruby on Rails at General Assembly for $2,800. When Mr. Doubrovkine took to the NYC-rb mailing list to advertise, he was surprised by the pushback. "I don't want to put you down or sound like a jerk but any programmer should be able to learn Rails without paying $2,800," wrote Rubyist Kfir Shay. "Documentation is excellent, free online resources are plenty, community is strong etc."

I bet that a better investment with that cash, would be to get a decent Ruby library.

<comment><USER8> Different people learn in different ways. Some people do very well by reading material and applying it. Some really cannot and need it in a visual manner or in a typical lecture / exercise environment.

I have friends who went to Big Nerd Ranch who were book learners, but the teaching staff, presentation methods, and setup made it very worthwhile to them. I would imagine something like this would fit for a lot people.

</comment></comment><comment><USER9> $2,000 Macbook, $800 chair, no one bats an eyelash.

$2,800 to learn the skills that justify the Macbook and chair, and it's offensive.

<comment><USER10> Personally, I find the $2,000 Macbook and $800 chair offensive. I just know well enough to keep my opinions on what people ought to spend their money on to myself (most of the time).

</comment></comment><comment><USER11> I (and many others) spent many times this amount at college to learn "heavier" (yet much less valuable in my opinion) languages like C, Java, Lisp and Smalltalk.

I taught myself the languages I write today and turned out fine. But for many of the people in the classes around me? This would have been an awesome value.

</comment><comment><USER12> I dunno. Yeah, there are reams of documentation and tutorials available online for Rails... but loads of it is crap, or it takes a "and now magic happens! * poof * your site can now accept credit cards!" approach that's a massive barrier to really understanding how the framework works.

This isn't really excessive for a 6 week course, especially if it's well-done. College costs more. As a concrete example, though likely on the expensive end, here's one example for a 2 week course over the summer: $3,500 [http://www.internaldrive.com/idga/courses/teen-game- developm...](http://www.internaldrive.com/idga/courses/teen-game-development- iphone-android/)

<comment><USER13> Here's a 10 session Rails class at NYU for $1300: [http://www.scps.nyu.edu/course- detail/INFO1-CE9970/20121/rub...](http://www.scps.nyu.edu/course- detail/INFO1-CE9970/20121/ruby-on-rails)

<comment><USER14> There are more examples of expensive classes in this followup story on Betabeat: "In fact, there's plenty of demand for pricey Ruby classes. A ten- session intro class at NYU is $1,295. Ruby classes can run upwards of $2,000 for a three-day course. New Yorkers can get five days of Ruby and Rails training at the for-profit training center Marakana for $2,150. Codeacademy offers 12-week courses for $6,000."

[http://www.betabeat.com/2011/12/28/that-2800-ruby-class- that...](http://www.betabeat.com/2011/12/28/that-2800-ruby-class-that-had-nyc- rb-in-a-huff-its-already-sold-out/)

</comment></comment></comment><comment><USER15> As long as potential customers aren't offended, this is an odd complaint, but the psychology is predictable. Indeed, part of the reason I made a free online version of the Rails Tutorial (the PDF book mentioned in the article) was to insulate myself against the criticism that I was gouging my customers. I figured that if people complained about the price of the PDF and screencasts, I could say "Look, there's a 500-page book available for free online—what more do you want from me?" This strategy has worked, with basically no complaints about cost. In fact, most feedback had been along the lines of "This is a great value. I hope it's making a lot of money!" It is, and finding a business model that makes money while giving away a lot of value has been very gratifying.

In the case of the Rails course mentioned in the OP, maybe they can record it and make the videos available for free, à la MIT OpenCourseWare. That wouldn't silence all the critics, but it might shut some of them up. And I bet it would boost sales to boot.

</comment><comment><USER10> I'm not a Rubyist, but the price tag isn't really the offensive part. 2,800 is fine for 12 2 hour classes. If you include grading and one on one help, it is a potential bargain.

Here is the offensive part (to me, anyway):

 _Students who successfully complete the six-week program will be certified by General Assembly in Ruby on Rails. Certification is a way for General Assembly to let our partner organizations, start-ups, and others know that a student successfully completed the course._

I know that slippery slope arguments are logical fallacies, but how long before this type of thing becomes the equivalent of a Microsoft certification and is a check-box that HR departments look for when hiring Rails developers?

Now I've got to spend nearly 3k dollars every couple of years to maintain my 'Rails certification', which I don't really need because I learned Rails on my own in a weekend and the point of Rails is that it _makes things easy_ (reasonable defaults and all of that). If you need a certification to learn Rails, something has gone seriously wrong!

If the community legitimizes efforts like this (by not laughing at them and running them out of town on a rail)... There is a possibility that they will give some clout to certification organizations, which could lead to above (fairly unlikely, but plausible) slippery slope situation where you need certs to program Rails.

<comment><USER16> Don't take offense, but if you learned Rails in a weekend then you didn't spend enough time to really learn all of it.

I don't see this type of certification being bad for people trying to break into development. Anyone with real world experience will still be able to use that experience on a resume or whatever. People relying on certifications to get a job after a few years in the industry are doing things wrong in my opinion.

</comment></comment><comment><USER17> I can definitely see the value in having a classroom setting learning environment. Sure some people can learn on their own, but there's quite a bit of noise out there in all the tutorials and how-tos.

If a $2800 course could filter all the crap out, teach the basics and get a beginner up to the level where a beginner can start teaching themselves then the $2800 is well spent.

Of course if the class doesn't follow through then it's just like most of the actual college courses I took - a waste of time.

</comment><comment><USER18> How many of these offended developers paid 30k for a C.S. degree?

<comment><USER19> It is likely that many of those developers paid $0 for a degree, and yet still can write good software and solve hairy technical problems. Skills, intelligence, talent, study, patience and much trial-and-error needed to work in this field, but not, strictly speaking, a degree of any kind.

</comment></comment><comment><USER20> A little off topic, but this stood out:

> One user, Dave Newton, wrote: "In any case, I'm done–nyc.rb is pretty much > ruined for me, before my first in-person meetup, before I had a chance to > contribute back."

Overreaction and hyperbole like this reeks of childishness and it's pretty sad that something like this even made the article.

</comment><comment><USER21> I take mild offence to _"...learning lightweight languages like Ruby and Javascript"_

<comment><USER22> That was betabeat, not the people behind the course.

I think it's a bit silly to gripe about a course being available. Just don't take the course! I understand proposing better alternatives on the list but I don't understand saying that the course shouldn't exist. Maybe the alternatives are better for most people, but for a few people the course is better!

<comment><USER21> I was specifically referring to the use of the word "lightweight". I have no strong feelings either way about the course, expensive or not..

</comment></comment></comment><comment><USER23> let the customer's decide

</comment><comment><USER24> I've paid far more for far less training in certain areas.

People who do ruby professionally have a culture problem.

<comment><USER25> A bigger problem is making broad generalizations based on the bickering of a subset of members on a small, unimportant mailing list or, worse, taking what single ex-members of a community say at face value.</comment></comment>


Soylent hits back at legal threat: 'We display Prop 65 warnings' - <AUTHOR> http://blog.soylent.com/post/126888496882/soylent-is-compliant-with-california-proposition <comment><USER2> So I was wondering how "As You Sow" makes money if this is extortion (as claimed in the article), and found this:

[http://www.asyousow.org/about- us/grantmaking/guidelines/](http://www.asyousow.org/about- us/grantmaking/guidelines/)

 _As You Sow's grantmaking program is funded by settlements from our enforcement of California's Safe Drinking Water and Toxic Enforcement Act (Proposition 65)._

Can somebody explain to me how a non-governmental non-profit can go about enforcing a state law and getting paid for it? Do they basically sue random companies and extract "donations" in exchange for going away?

<comment><USER3> Whistleblower rewards, I would expect. It's not quite deputizing As You Sow as an enforcement agent but it does take a load off the state.

</comment></comment><comment><USER4> > safe harbor levels enshrined in Prop 65 are unrealistically low

If I understand the regulations correctly, the Prop 65 limit for lead is about 100x more restrictive than EPA standards for drinking water.

According to [http://oehha.ca.gov/prop65/pdf/safeharbor081513.pdf](http://oehha.ca.gov/prop65/pdf/safeharbor081513.pdf) the Prop 65 Maximum Allowable Dose Level for lead is 0.5ug per day (assuming the lower of the two safe harbor levels applies).

According to [http://water.epa.gov/drink/contaminants/index.cfm](http://water.epa.gov/drink/contaminants/index.cfm) the EPA's action level for lead in drinking water is 15ug per liter (and people drink more than one liter of water per day).

<comment><USER5> A great baseline that would make me feel better would be other foodstuffs' lead and cadmium concentration. Are these contaminants a part of most food production, at some astonishingly low concentrations already?

"Since Soylent is marketed as a meal replacement, users may be chronically exposed to lead and cadmium concentrations that exceed California's safe harbor level. We've worked with a few companies making protein powders and they just need to look at their ingredients and investigate."

Well, if it's extortion, they're doing a great job sounding legit. Maybe Soylent has a problem sourcing their ingredients from reputable providers? A low cost target was a big part of its appeal, so I could understand if they were aggressive in finding an affordable business partner to provide materials.

As an aside, maybe we should try to avoid linking to sites who bar copying article excerpts to the clipboard. A bit ludicrous to suggest that their article's copyright justifies this silly barely-DRM-measure.

<comment><USER6> The safe harbor limits are very low.

From [http://www.oehha.ca.gov/prop65/background/p65plain.html](http://www.oehha.ca.gov/prop65/background/p65plain.html)

> For chemicals that are listed as causing cancer, the "no significant risk > level" is defined as the level of exposure that would result in not more > than one excess case of cancer in 100,000 individuals exposed to the > chemical over a 70-year lifetime. In other words, a person exposed to the > chemical at the "no significant risk level" for 70 years would not have more > than a "one in 100,000" chance of developing cancer as a result of that > exposure.

> For chemicals that are listed as causing birth defects or reproductive harm, > the "no observable effect level" is determined by identifying the level of > exposure that has been shown to not pose any harm to humans or laboratory > animals. Proposition 65 then requires this "no observable effect level" to > be divided by 1,000 in order to provide an ample margin of safety. > Businesses subject to Proposition 65 are required to provide a warning if > they cause exposures to chemicals listed as causing birth defects or > reproductive harm that exceed 1/1000th of the "no observable effect level."

</comment></comment></comment><comment><USER7> We changed the url from [http://www.foodnavigator- usa.com/Manufacturers/Soylent-hits-...](http://www.foodnavigator- usa.com/Manufacturers/Soylent-hits-back-at-legal-threat-We-display- Prop-65-warnings) since this is the original source.

<comment><USER8> Thanks for changing. I don't know if you happened to notice, but among others things, the original link takes a dim view of fair use. If you try to copy any piece of text from the original article, it denies you with a message "THIS CONTENT IS COPYRIGHT PROTECTED". The incredible part was that I had been trying to copy part of a quote from a third party to find the original source.

<comment><USER7> Oh dear. That's pretty bad.

It's like those sites that append a long string of junk to whatever you copy, only worse. I usually see that on media sites that seem a bit technically naive, and always imagine the conversation with the salesperson who convinced them they needed it.

</comment></comment></comment><comment><USER9> I would love to hear opinions from other HN users that would actually use this product. Clearly there are people that would love to forget about food--I don't understand the appeal myself.

<comment><USER10> I've not used Soylent, but I definitely would. All that's put me off in the past is the need to order large quantities of it before even knowing if I'll like it, and a big waiting list to even get it in the first place.

Seems like a lot of hassle and since the attraction of Soylent for me is precisely to avoid hassle and nothing intrinsic, I'm putting off trying it until they work this out (if that's not already happened, haven't checked recently).

Anyway, the appeal for me is summed up really well by this marketing quote, in the article:

> "During a typical week there's several meals I eat alone in front of the TV, > weekday dinners mostly. Those were usually fast food, or frozen or canned. > So I thought Soylent would be faster, easier, and healthier than what I had > been doing before."

That absolutely nails the appeal for me. I love food, I even enjoy cooking nice things occasionally. However, the the routine of cooking something quick and boring for only myself on just an average Tuesday evening, coupled with all the faff around planning, buying ingredients, taking things out of the freezer at the right times, cleaning up, etc, just to sustain myself in a healthy way, is something I'd love to substitute away with something like Soylent and spend that time doing things I enjoy more.

<comment><USER11> I've been doing Soylent for a month. I had the idea on a Saturday, placed my order and Tuesday morning I had 14 days worth of powder delivered, in Canada.

After 1 week of eating it, I was happy and subscribed for 28 bags a month. My wife likes it too, it's convenient when she doesn't have time to cook and wants something filling and healthy.

</comment></comment></comment><comment><USER12> ...its figures appeared to be based on the assumption that people eat "nothing but Soylent everyday, 365 days a year, forever"

Maybe they got that impression from the marketing image in the article with the text "What if you never had to worry about food again?"

</comment><comment><USER13> A link directly to Soylent's Prop 65 page: [https://faq.soylent.com/hc/en- us/articles/204197379](https://faq.soylent.com/hc/en-us/articles/204197379)

</comment><comment><USER14> If only we had the English Rule.

[https://en.wikipedia.org/wiki/English_rule_%28attorney%27s_f...](https://en.wikipedia.org/wiki/English_rule_%28attorney%27s_fees%29)

<comment><USER15> Could someone shine some light on why the U.S. is not following such rule? I can't see that many downsides to it, IMHO.

</comment></comment><comment><AUTHOR> OP here. This seems to have been sandboxed Off the front page for some reason. Glad some people got to read this - will post more info on the suit as I find it.

<comment><USER4> It might have been flagkilled. It was interesting information, but perhaps not the best source or most balanced coverage.

</comment></comment><comment><USER8> A while ago, while there was a scare about elevated lead levels in licorice, which led to a recall that worried lots of parents. The level in the candy was .18 ppm: [http://www.foodsafetynews.com/2012/08/black-licorice- recalle...](http://www.foodsafetynews.com/2012/08/black-licorice-recalled-for- high-levels-of-lead/)

At that time, I tried to understand how much of a risk this actually presented. My conclusion was no, it did not present any significant risk to anyone. In fact, this elevated level was less than half the amount that the EPA considered safe a few years earlier. And the EPA had changed it's standard from the previous presumed to be safe level of .5 ppm to .1 ppm not because of new evidence of risk, but because of a change in philosophy: [http://www.fda.gov/RegulatoryInformation/Guidances/ucm077904...](http://www.fda.gov/RegulatoryInformation/Guidances/ucm077904.htm)

      This recommended maximum level of 0.1 ppm for lead in candy
      likely to be consumed frequently by small children is
      consistent with the FDA's longstanding goal of reducing
      lead levels in the food supply to reduce consumers' lead
      exposure to the lowest level that can be practicably
      obtained.

Previously, they had set the standard based on the level of exposure shown to cause harm, divided by a safety factor (usually some power of 10) to account for uncertainty and differences in individuals: [http://www.epa.gov/iris/rfd.htm](http://www.epa.gov/iris/rfd.htm)

So the furor over licorice was not because there was any new evidence that the level was unsafe, or even that there was greater uncertainty of the safety, but because similar products were tested and found to have lower levels. In one sense, this seems reasonable: lead is very bad for you, so we don't want any of it in our food. But if the lead exposure from food is much less than the environmental lead exposure from other sources, it's hard to justify going to extremes to remove the remaining tiny fraction.

With this in mind, the tested level of lead in Soylent was .01 ppm. The California "safe harbor" level for lead is .5 µg per day. Thus if you ate 50g of Soylent, you would exceed the level at which California requires a warning.

For comparison, the EPA action level for lead in drinking water is .015 ppm, and the EPA says that if the level is less than this you should not worry: [http://www.cdc.gov/nceh/lead/tips/water.htm](http://www.cdc.gov/nceh/lead/tips/water.htm)

Thus if you drank 35g of the water that the EPA considers safe (about 2.5 tablespoons) you'd also be exceeding the threshold for which the State of California requires a warning label. In fairness, the level of lead in most drinking water is significantly less than the EPA action level. The US average appears to be about .003 ppm, thus you would on average have to consume (by weight) 3 times as much water as Soylent to receive the same dose of lead: [http://www.who.int/water_sanitation_health/dwq/chemicals/lea...](http://www.who.int/water_sanitation_health/dwq/chemicals/lead.pdf)

I'm guessing that 3:1 is about the ratio at why Soylent is typically made? If so, it would seem fair to say that if you are using average US tap water, you are more at risk from lead poisoning from the water with which the Soylent is made than from the Soylent itself, for which they are being sued for not making their warning sufficiently prominent.

If this wasn't enough, that last link from the World Health Organization also estimates that an adult gets about 4 µg of lead per day just from breathing. To equal this amount from Soylent, you'd have consume 400g (1 lb) of Soylent per day. Since Soylent is packaged in 459g packages designed for 3 meals, it would be false to claim that you are getting more lead from the air than you do from the Soylent. But if you only ate two meals of Soylent per day, you'd be getting more from the air than from the Soylent.

So despite being a strong believer in food safety, as a former owner of a failed California food business (whose failure was in considerable part due our inability to manage the with regulatory requirements) I applaud Soylent for fighting back here.

</comment><comment><USER16> Yes everything which tells me to do the stuff I don't want to do is extortion.

</comment><comment><USER17> This title is pretty poor.

<comment><USER5> I suppose Soylent has markings that confess that it "contains a chemical known to the State of California to cause cancer, birth defects, or other reproductive harm".

EDIT: From Soylent's FAQ [1] "This warning is triggered by extremely low levels of the regulated compounds, and as such, the notification is a familiar sight to anyone who has eaten at a restaurant, stayed in a hotel, attended a theme park, or parked in a parking garage in California."

[1] [https://faq.soylent.com/hc/en- us/articles/204197379](https://faq.soylent.com/hc/en-us/articles/204197379)

</comment></comment><comment><USER18> I have absolutely nothing against Soylent, and I've thought about buying it, but for what it's worth, this post has +20 points in under 30 minutes with one comment, and it reads like a PR retaliation.

<comment><USER13> As a consumer of Soylent, I am looking forward to any and all information about this hitting HN.

It sounds like there aren't dangerous levels of heavy metals, and this suit is brought because it will cost Soylent less to settle than to do their own testing?

<comment><USER19> According to Soylent, they test every batch[1]. But yes, it seems like As You Sow is like a patent troll, but instead is a prop 65 troll.

[1] [https://www.reddit.com/r/soylent/comments/3ha4et/soylent_is_...](https://www.reddit.com/r/soylent/comments/3ha4et/soylent_is_compliant_with_california_proposition/cu5lm89)

</comment></comment></comment><comment><USER20> > Soylent insists its products are "completely safe and nutritious"

Based on how many years of market experience? Based on how many studies ? Oh, none. Yeah, "completely safe" \- except that we don't know what happens 10 years down the line - the kind of timeline that matters for cancer or other long term disease.

<comment><USER2> AFAIK there is nothing in Soylent that is not regularly consumed by lots of humans already. Instead, the primary concern is its use as a total food replacement, since it's unclear what sort of dietary deficiencies may crop up ten years down the line.

<comment><USER20> > Instead, the primary concern is its use as a total food replacement

Yes, that's why the "completely safe" is misleading, from Soylent's part. They actually have NO clue.

<comment><USER2> Where do you see Soylent marketing itself as "completely safe"? Their website is pretty nuanced.

<comment><USER6> The kickstarter campaign where they described Soylent not just as perfectly safe, but perfectly safe for anyone; and where they say it puts you in perfect health; and where they claim rigorous testing.

This iterative approach to regulatory compliance - ignore everything until a regulator points out a problem - should be worrying when you're talking about food.</comment></comment></comment></comment></comment>


Efficient Nested React Components - <AUTHOR> https://medium.com/@joshuawcomeau/efficient-nested-react-components-dd9347e9b3f3 <comment><USER2> This article can be summarized by "I implemented shouldComponentUpdate and stopped mutating my data to make that easy". It's a good write up of what is otherwise standard Reactjs practice, but it really doesn't warrant all the 4000% nonsense. "How I used shouldComponentUpdate to make React rendering faster" would've been a more obvious title.

</comment><comment><USER3> I'm missing something.

      shouldComponentUpdate: function(nextProps) {
          return nextProps.tile.active !== this.props.tile.active;
      }

      "That means that nextProps.tile and this.props.tile are pointing at the exact same object, so they will always be equal."

If this is the case, shouldComponentUpdate would always return false and he should not see any of the components update. But he's seeing ALL of them update.

</comment><comment><USER4> You can't decrease time by 4000%. If you decrease by 100%, it's all gone (you can make something 40x faster, in which case it's now takes 2.5% of the original, so decreasing time 97.5%).

<comment><USER5> although it would be awesome if this enabled time travel...

</comment></comment><comment><USER6> I recommend reading swannodette's The Future of JavaScript MVC Frameworks[1], which was the article which first got me to try React, after earlier passing it by. This meant I was coming to React via good examples of how to use it in an optimisable way, already thinking about reference equality of the props I was passing, and whether changes within state object structures were observable in my application (mutation vs copying etc).

Now that React has had a large recent influx of new users, hopefully these key concepts are not lost in the deluge of new blog posts and demo applications. Those who are championing React within groups and organisations should try to make sure developers who are more passively following are made aware of such useful ideas. Javascript (and software engineering in general) has a long history of collectively forgetting important ideas only to rediscover them later, but it would be better to be proactive than to leave it up to the archeologists.

[1] [http://swannodette.github.io/2013/12/17/the-future-of- javasc...](http://swannodette.github.io/2013/12/17/the-future-of-javascript- mvcs/)

</comment><comment><USER7> Updating a hundred on-screen elements requires special performance optimizations - are we back in 1985? Articles like this tend to confirm my prejudice that most new JavaScript frameworks are useless for real-world software.

I know that's not the full picture, but what I don't understand is why you would build something on these technologies when the practical performance ceiling of the framework magic is so achingly low, and once you hit it, you'll be spending much of your time fighting the framework that was supposed to be boosting your work.

<comment><USER8> That's not a performance optimization, you're supposed to implement "shouldComponentUpdate" on React components. Not sure what you mean by "spending time fighting the framework" either, it's one line of logic.

In case you missed the point of the article: it's not that you have to implement that method, but that you've to be careful implementing it because JS has mutable objects by default.

Also, when he's talking about "render" it's not a simple rasterization, it's actually manipulating the document tree and triggering a layout engine. Apples and oranges. If he wanted speed he could render his graphics on a canvas, then your 1985 comparison would make sense.

Let's educate ourselves about the subject before venting?

</comment></comment><comment><USER9> The amazing thing (to me) is that as a ClojureScript user I struggled to understand where the performance problems described in this article came from. If you use ClojureScript with React, by default you get no such issues, because of immutable data structures.

</comment><comment><USER10> Hi! I'm the author and was very surprised to see my post here. I mainly wrote it as a reference for my future self.

Someone pointed out that I've muddied up the distinction between the DOM and react's virtual DOM. That is entirely possible! I should point out that I am a React novice and in no way an authoritative source.

I'm assuming when a render function gets run, it does an actual DOM render, but I could be wrong.

<comment><USER11> Hi! That might be my comment down below. There's a nice article about how the diffing works here: [http://calendar.perfplanet.com/2013/diff/](http://calendar.perfplanet.com/2013/diff/) The important bit is that the diff is applied to the old and new virtual doms, and it is the render method that gets called to compute the new virtual dom. Only after the diff does the real dom get updated.

<comment><USER10> Ohhh. Alright, that makes much more sense. I was assuming the diffing algorithm took place pre-render. Thanks =)

</comment></comment></comment><comment><USER12> The whole point of how React renders is that component rendering does not equal DOM manipulation.

<comment><USER13> The article is talking about optimizing VDOM generation, not DOM manipulation.

<comment><USER11> The article seems to muddle the two, e.g., after showing that the method to render virtual DOM elements has been called for each cell it says:

> React's whole thing is that it doesn't do unnecessary DOM manipulation, but > clearly it is here. What gives?

</comment></comment></comment><comment><USER14> I have been messing around with a reference cursor approach to rendering that does provide a bit of a performance improvement over the immutable + row component solution.

[https://github.com/omniscientjs/omniscient/issues/93](https://github.com/omniscientjs/omniscient/issues/93)

my results were: Vanilla JS DOM updates (~180 fps) React with stupid 10k Components being checked for ShouldComponentUpdate (~6 fps) React with sane approach using Row component and immutable data (~75 fps) React with my above described approach (~100 fps)

</comment><comment><USER11> I've put together a toy version here, any ideas for making it faster? Render time goes >100ms for me at around 45x45.

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

Edit: for comparison, a VanillaJS re-render: [http://jsfiddle.net/zme8f7k8/2/](http://jsfiddle.net/zme8f7k8/2/)

</comment><comment><USER15> Yet another react article that doesn't apply to me. Clojurescript/Reagent kicks butt.

</comment><comment><USER16> _Because of its fancy virtual DOM, it does far less page manipulation than, say, Angular._

This is not really true. Angular does dirty checking on the model backing the DOM, while libraries like Mithril or React do it on a virtual DOM that you have to recreate from scratch on every frame.

If you want to really avoid DOM hangups, just use a library like GreenSock or FastDOM.

<comment><USER17> creating a virtual DOM != manipulation. All fastDOM does is ensure that all DOM writes happen at once, not that you're doing the minimum number of operations necessary. And greensock is an animation library, so I'm not sure how it relates to the problem in question.

<comment><USER16> Right, that's all you need to make sure there isn't thrashing. You can write to the DOM as much as you want during an animation frame, and only the latest write will be used. Provided you don't also read from it, which triggers a layout.

Other than this, all these frameworks essentially do dirty checking when it comes time to render. Angular does it on the model, and React / Mithril do it on a virtual DOM, leaving it up to you how you update the virtual DOM. Usually they want you to recreate the entire DOM from the beginning, and then try to optimize the tree walk using immutability.

In any case, you don't need anything nearly as fancy as this. You can just subscribe to events when your model changes, and use FastDOM to update your DOM on those events. It is _more_ efficient as it does only the minimum work necessary, instead of dirty-checking, albeit _sometimes_ it may draw the same HTML in the same place.

<comment><USER18> The real benefit of React is not in virtual DOM, even though virtual DOM enable the real benefit to be feasible.

It's in enabling developer to think only in "recreating the whole DOM".

Subscribing to event and _figure out_ what DOM to update is error prone. With React, you don't think about patching DOM to the right result, you only think about how the final result should looks.

Understanding to latest state of document overtime is also harder with manually patched DOM. You can't be sure how the current DOM looks like after lots of patching. With React, you know exactly how the current document looks like, given value of props and state. Every programmer knows that referential transparent function is easier to reason about than state full function. React's render method makes rendering a referential transparent function, as opposed to manually patching part of the DOM.

React is not about performance, it's about making it easier to write Component that works. Virtual DOM helps making the idea of rendering the whole thing possible, which happens to also make it fast.</comment></comment></comment></comment>


Ask HN (outside the US): Your Internet Connection - <AUTHOR>

Here in the US, the max internet connection speed is ~10-15 megabits per second down and maybe 1 mbps up (unless fiber is available), plus a lot of ISP's have restrictions against serving content from a residential connection.
I've always heard that you can get crazy good speeds abroad. So, what's your connection speed, and what's its cost? Do you also have the same restrictions on serving content from your connections? Have any of your ISPs started capping bandwidth yet?
This seems a bit off topic, but I've been frustrated with my connection as of late. <comment><USER2> Nothing crazy about our connection, but I haven't tried hard to get something better either.

It's plain old ADSL over copper, at 8 Mbps down and 1 Mbps up. Cost is 249 SEK/month, which at the current conversion rate is about $33.

The location is Stockholm, Sweden.

</comment><comment><USER3> Romania, Bucharest: 5-10 Mb sounds about right. Static ip is either free or optional, no bandwidth limits. Metropolitan speeds are usually much higher, up to 100Mbps for smaller providers. This matters because most romanian content (including file sharing) is in metro, and bigger cities tend to have almost metro speeds too.

Cost is between 10 usd and 10 eur per month. Lots of competition, with around 2-3 providers in the same area plus the national phone company.

</comment><comment><USER4> I'm in Taiwan and I've got ADSL (10M down 2M up) through So-net. It's 400NT/month, or about 13 USD. I also have to pay about 10USD to the phone company each month. The service has been fantastic, with a static IP, no caps, and no noticeable slow-down during peak hours.

There's also talk of a gigabit service, similar to the Tokyo one coming soon.

</comment><comment><USER5> Copenhagen, Denmark.

40 Mbps down, 2 up Mbps, not capped and full speed always available. Fixed ip, no restrictions. ADSL. 349 DKK/month (incl tax) ~ $53/month (excl tax).</comment>


Is there an archive of Startup Engineering (CS184) that used to be on Coursera? - <AUTHOR> I've been trying to find content from the startup engineering course that used to be on Coursera. I've managed to find the lecture slides and videos from the first few weeks, but I can't seem to find the homework tasks etc. Does anyone have a copy of these?<p>Also, the archive.org Coursera archive is unsearchable, and is too big for me too download. <comment><USER2> [https://rutracker.net/forum/viewtopic.php?t=4530830](https://rutracker.net/forum/viewtopic.php?t=4530830)

<comment><AUTHOR> It looks like it has what I'm looking for, I'm downloading it now.

</comment></comment><comment><AUTHOR> I've found some of the lecture slides/pdfs on this public s3 bucket directory, but I cant view all the files in it, even after I put the bucket name into my aws console. [https://spark-public.s3.amazonaws.com/startup/](https://spark- public.s3.amazonaws.com/startup/)

anyone have a list of files in this bucket?</comment>


Accused Spy Peter Debbins Evidently Beat the Polygraph to Penetrate the NSA, DIA - <AUTHOR> https://antipolygraph.org/blog/2020/08/22/accused-russian-spy-peter-rafael-dzibinski-debbins-evidently-beat-the-polygraph-to-penetrate-the-nsa-dia/ <comment><USER2> _46\. During the meeting, RIS 5 and RIS 6 instructed DEBBINS not to take a polygraph and offered to give him training on how to deceive polygraphs. They further encouraged DEBBINS to continue pursuing a career in the Special Forces._

Certainly not the message the article intends to convey, but looks like polygraphs work, unless you were trained to defeat them. Enough of an obstacle for Russian handlers to ask their agent avoid it.

<comment><USER3> From a threat modeling perspective it doesn't sound too promising: I doubt espionage is an activity that favors the unprepared, so people who need to know how to "beat the polygraph" will.

</comment></comment><comment><USER4> Edit: I thought this was the same as last weeks article, but it's not, it's a fresh one!

Thread from last week...

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

<comment><USER5> Note that despite the shared polygraph angle, this is a different spy and a different national adversary.

<comment><USER4> Oh damn! I totally missed that. 2 in 1 week!

Thanks for the heads up.</comment></comment></comment>


Ask HN: Building online web application vulnerability scanner - <AUTHOR> Hi i am from Nepal..i want to build online web application vulnerability scanner for my FYP..  i want help for  which language will best for coding and give some suggestions. <comment><USER2> My advice is to start building something, now. Once there is a program that people can try, their advice will be more useful.

Good luck.

<comment><AUTHOR> Thank You</comment></comment>


Xkcd: money - <AUTHOR> http://xkcd.com/980/huge/#x=-1476&y=-660&z=5

<comment><USER2> Previous submissions:

<http://news.ycombinator.com/item?id=3261677> (2 days ago, when the link was slashdotted)

<http://news.ycombinator.com/item?id=3261498> (a thread with comments)

<http://news.ycombinator.com/item?id=3263367> (2 days ago, no comments)

</comment><comment><USER3> Why two dimensions?

Why not a simple bar chart?

Maybe there's a reason for blocks, but I can't tell. I can only see a fraction at a time. There was another xkcd chart like this before and I didn't see a reason for blocks instead of lines then either.

</comment><comment><USER4> Conclusion: I should buy a bigger screen supporting at least 2560x1080 resolution.</comment>


Learn about Overfitting in DNNs and how to eliminate it using TensorFlow - salma-ghoneim https://heartbeat.fritz.ai/5-tensorflow-techniques-to-eliminate-overfitting-in-dnns-281590cc2eb <comment><AUTHOR> Very useful information, and very well described</comment>


Which software projects have proven to be the most maintainable over many years? - <AUTHOR> I'm looking for some examples of codebases that have managed to be very maintainable for many years. What kind of initial (and continued) design decisions were made? I would especially appreciate it if I could get suggestions for more in depth readings about each software project. It would also be nice to see projects adressing a range of problems and domains. <comment><USER2> This is a difficult one. It's easy to point to codebases that indeed have been maintained for many years - but that doesn't mean they were designed well.

Look at a project like SVGEdit. It's by far and away the most popular open source project for in-browser SVG manipulation. It is the "most maintained" repository for any software in its niche. It is also a five thousand line blob of jQuery code.

That's an extreme example, but the point is: a project could become beacons for OSS development not because it is amenable to change, but because it is a very useful or prominent tool.</comment>


Thoughts on beta invite sign up forms - <AUTHOR> http://blog.invitestar.com/thoughts-on-our-beta-sign-up-system

<comment><USER2> Thanks for giving us @hall the mention</comment>


Balsamiq hits $100,000 in revenue - <AUTHOR> http://www.balsamiq.com/blog/?p=424 <comment><USER2> Single founder + non-startup hub + non-web2.0-buzzworthy product == everything you're told not to do.

I've said this before, but the biggest takeaway from the balsamiq story seems to be: put your head down and focus on making a great product, everything else will follow.

<comment><USER3> _put your head down and focus on making a great product, everything else will follow_

And market the hell out of it.

The Balsamiq approach to marketing (market the success story) is quite similar to that of 37Signals, actually, and both essential and very effective.

<comment><USER4> Absolutely.

The "build a great product and they will come" myth is bullshit 99% of the time (unless you have a built in marketing engine-- SEO or viral). Balsamiq won the same reason that 37s did (and JoelonSoftware for that matter)... They had a great story, told it well, and the story happened to resonate/be interesting to their exact target market (web geeks / entrepreneurs).

Bravo!

But try to build great software for supply chain management, or managing a beauty parlor and let me know how "everything else will follow" there. There's a reason that SalesForce.com (which, arguably, has/had a great product) has spent 60-70% of their topline on sales and marketing.

</comment></comment></comment><comment><USER5> Regarding "what if you get hit by a bus" question from potential "big license buyer", you could offer to put the source code in escrow so that they can have it if something goes very wrong.

Comunque, congratulazioni:-)

<comment><USER6> I had this discussion with a (huge) US corporation, and they weren't interested in escrow, saying it was too complex. They wanted source code; and I had the impression that with appropriate license restrictions (i.e. they couldn't sell/distribute it) it wouldn't be a problem (actually, having source would help them give me bug reports).

A secondary reason (or perhaps the true one?) was a _sense_ of reassurance that the source code really did belong to me (not violating anyone else's IP).

They offered 3 times my top license price, straight up. They arranged an international conference call with their IT VP, and two tech guys with me. I think they would have gone much higher. I didn't actually go with this, because I just felt uncomfortable about it.

My opinion: (1). Big US corporations are amazingly _terrified_ of litigation, therefore you can trust a negotiated license; (2). Big US corporations will happily pay much more than you can realistically imagine your product is worth. The inconceivably rich corporations are not like you and me, they evaluate on a different scale, with different values.

<comment><USER7> Personally, I feel that we worry way too much about keeping our source code top-secret. One reason people think source code is valuable is because "the resulting product is valuable, so therefore the source code is even more valuable, right?" ... well, no. The product is valuable because of the thousands of small decisions you made as you were developing the product. The source code is just the manifestation of those decisions. In other words, the product is valuable because of its design, not because of the source code that describes that design. Just because someone has access to a product's source code doesn't mean they can make valuable decisions about it. And if they can't do that, then they can't "steal" your hard work by building on top of it and selling it. They just don't have the domain experience to do that. Plus, they would always be slightly behind you in terms of development, because you're constantly adding new features and fixing bugs.

I'm actually toying with the idea of shipping the source code to my first game when I release it. The game will be pretty large-scale (it's 3D, as just one example) so the game engine's source code could potentially be very valuable. However, I feel that I shouldn't necessarily keep it closed-source, because the profits from _actually selling the game_ would far outweigh profits from licensing the engine, so it wouldn't be tactically wise to spend time on trying to license the code. Therefore, the closed-source model doesn't really provide a competitive advantage, so why not open-source it?

A potential problem with "open source on launch" is that someone could immediately clone the product and sell it for less. Except they can't. In the case of my game, I'm going to copyright all of the art assets and other game data. To clone the game, they would need to copy and redistribute that game data, which is illegal, which means I could sue them and shut them down. It would be an annoyance, but it doesn't make sense for them to do that anyway, so I doubt many people will try.

Also, piracy isn't a problem for the "open source on launch" model. In the case of desktop products, releasing the source code would allow pirates to easily circumvent any copy protection embedded in your code. But the thing is, it's easy to crack a closed-source program's copy protection anyway. It won't cause additional people to pirate your desktop product. And if your product is server-side, then by definition it can't be pirated.

Lastly, consider this. If it's harmful to open source a propriety application, then there should be examples which support that conclusion. However, can you find just one example of a company that failed or was harmed because they open-sourced their application? Id Software has released the source code to many of their games (Doom, Quake 1, 2, and 3, etc). Quake 3 generated over a _billion_ dollars in revenue, and yet its source code is free to all. And it's very unlikely that Id was hurt by that decision.

It seems like source code protection is one of those logical fallacies that's easy for most people to believe, as long as they don't think about it too much. (Like "the world _seems_ flat, so therefore it _must be_ flat".)

<comment><USER8> One note about Id and their open source: they "only" release the source for their old engines, the most recent one is closed and licensed.

Giving something away -after- it has earned you a billion is less risky than doing it -before- you've earned the money.

<comment><USER7> Right on. But it's as close as anyone has come to "shipping the source code along with the CD". So even though Id did it after it generated a lot of revenue, they still did it, which is extremely rare.

Also, one reason that Id's most recent engine (Id Tech 5) is closed and licensed is because of its brand-new technology: MegaTexture. As of now, no other engine has implemented that feature (or the engine isn't production- ready like Id Tech 5 is). So yeah, if you invent paradigm-shifting new technology, then it is probably a bad idea to immediately open-source it. :)

<comment><USER8> I agree, it's incredibly generous of them and very helpful for the next generation of game developers to be able to read and use "real" code like this.

And I think that more or less all their engines have been revolutionary when they were released, not just this one!

</comment></comment></comment></comment></comment></comment><comment><USER9> Balsamiq is fascinating because following Peldi's discourse is almost like a real-time Harvard Business School case study on an evolving, successful business (not that HBS would study microISVs in the first place). Congratulations, here's to scaling to $1M!

</comment><comment><USER10> YC rejection letters should include a link to this blog post.

</comment><comment><USER11> It's been excellent to follow Balsamiq's progress and I'm stunned by the progress he's made. Congrats and here's hoping for the best for you.

Just remember, don't overdo it. $100,000 isn't much in the grand scheme of things, so keep pinching those pennies!

<comment><USER12> yeah I think he is starting to miss the point, since he is starting to think of himself as a small business and not a start up. $100K on the startup scale is nothing

<comment><USER13> Not nothing, but not sitting on doves. This use of polarization does not add much. It now appears that his startup is now a lifestyle business, a shift worth congratulating and celebrating. Celebrate each success, and when the party is over, dust off your shoulders and get back to work. But you have to make sure to celebrate, for the sake of your own motivation. (Well, _you_ may not need to, but in general, "one" should.)

<comment><USER11> 100%. Work without the moments of victory is what I like to call torture.

</comment></comment></comment></comment><comment><USER14> Congratulations! But now you'd better keep on succeeding, because I'm going to point at you every time people claim that single-founder companies don't work. :-)

</comment><comment><USER15> One thing I would like to mention is. You want to be very careful because of you success others might/will want to copy it. You want to prepare your self strategically with a roadmap keeping in mind potential and hypothetical copy- cats/clones and how you can stay ahead of them. I would say companies like Zoho and other online suites would really want to add a service like this to their product mix. So stay sharp :)

<comment><USER6> I'm personally troubled about the right attitude towards competitors... I but I think it's:

 _Don't worry about competitors. Worry about making something people want._

Constantly improving your product, for what your users want, _automatically_ protects you against competition. I also find that worrying about competitors (instead of customers) can lead to a self-defensive mindset.

 _If [users] take you up, no competitor can keep you down._ <http://www.paulgraham.com/startuplessons.html>

</comment></comment><comment><USER16> I've been following the updates here on Hacker News from a distance and finally dropped by to test out the product.

Holy cow. It's awesome. As soon as some cash frees up in the budget I will splurge for the desktop version.

Most surprising, delightful feature: The guides that appear when dragging stuff around to line it up.

Cleverest feature: The intuitive way that the link bars work. I didn't need to be told that the commas break up the links, just showed in the example. Slick.

Well done, good sir.

</comment><comment><USER17> Yay! You know you are an inspiration to a lot of us at news.yc, right? Now get working for that 1M.

</comment><comment><USER18> Peldi - you have been such an inspiration. Not only to me, but to an entire community of entrepreneurs.

Keep the news coming and congratulations!

</comment><comment><USER19> Awesome news, and as Biggy once said, 'mo money, mo problems'

Good 'problems' to have though ;)

</comment><comment><USER20> Good grief man, I was originally going to post that although this is wonderful, your recent downward trend is rather concerning until I realized you had included November numbers! :-)

It might be a good move to be sure your graphs all report the same information for easy reading, especially when observing trends... either drop the current month, or few a per capita month trend.

Regardless, you certainly are an inspiration, and I wish you continued success! As someone that just needs to design with photoshop and can't work in pen and paper, I'm considering purchasing balsamiq in the future. (It's a little steep for me now) Keep up the good work!

</comment><comment><USER21> What makes me sad is that balsamiq spent 5 month of hard work to make $100000, and most internet marketers in the top tier need only launch an email to their list to get the same amount. No tech knowledge, no brilliance, no incredibly original idea are needed. Just skil on the noble art of 'bullshit'.

We starup people cannot compete.

balsamiq is an astounding success in the startup world, and a silly example of how not to do things for internet marketers (who, by the way are the plage!).

Maybe there are millions of people gullible enough to buy most crap internet marketers throw at them, but only a few thousands of us who are interested in the product balsamiq offers. Sad.

</comment><comment><USER15> I think its bold of you to post these financials about your venture, none the less I really appreciate them. It really gives a good understanding on how one can be optimistic about selling a software as service. Cheers, and good luck.

</comment><comment><USER22> All I can say is, congratulations! Most small businesses never even come close to where you are now.

</comment><comment><USER23> Congratulations!

</comment><comment><USER24> Congrats!

</comment><comment> syntax-case To what extent did the publicity contribute to his success though?

<comment><USER25> It is obviously a large part, but he did not get that publicity automatically. It seems he worked out and implemented a very effective strategy for getting that publicity organically. So, plenty of hard work and ingenuity involved there as well.

</comment></comment><comment><USER26> Good article p. And congrats on your success.</comment>


Show HN: Minimalist open source gdocs like editor, 91 LOC - <AUTHOR> https://simpletext.link <comment><AUTHOR> Hi, author here, I started this project 8 hours ago to solve one very specific problem : organizing a small event with friends in a WhatsApp group. Keeping a list of "who brings what" up to date was a pain. Simply opening this link gives you a plain text, real time editor that you can share in your WhatsApp group, and get all the updates in one place.

The code is very tiny, because it lies on the shoulders of two giants : MeteorJS and Quill

If I see some interest, I'll develop it further.</comment>