Old Farts Know How to Code - <AUTHOR> http://nick.typepad.com/blog/2012/05/old-farts-know-how-to-code.html <comment><USER3> I'm 38.

I've met older programmers that were exceptional (passionate programmers that keep up with the craft, eg. at least enough to be able to explain exactly _why_ they dislike JavaScript but love Go and Python even if they use none of these languages in their "day job") and older programmers that were mediocre (these are usually the ones still using only the language they started with, programming specific types of apps in the niche industry they started in).

I don't think you can pigeonhole this demographic any more than any other, but there is at least one thing to keep in mind -- the exceptional "old farts" are _really_ exceptional, because they have the same passion as any other passionate programmer, plus a boatload of experience. When you really want to ship something, no amount of youth-fueled semi-experienced 16 hour workdays makes up for a solid 8 hours from someone with decades of experience who still loves writing software.

<comment><USER4> _older programmers that were mediocre (these are usually the ones still using only the language they started with, programming specific types of apps in the niche industry they started in)._

This is one of the reasons some folk think older developers get worse. The mediocre young developers very naturally end up using the "cool" languages - because they're the ones that are popular and fashionable at the time they move into development. Their rigidity only becomes obvious as the years go past and the world moves on without them.

(Not that there aren't good and valid reasons for sticking with "old" technology that just works. I have to admit I'm kind of looking forward to the point in five or six years time when the Rails folk have to start justifying why they're not using the NewCoolThing :-)

 _I don't think you can pigeonhole this demographic any more than any other, but there is at least one thing to keep in mind -- the exceptional "old farts" are really exceptional, because they have the same passion as any other passionate programmer, plus a boatload of experience_

I think it's even better than that. Experience can help turn a mediocre developer into an excellent one. I find the idea that some people have that experience makes people perform worse somewhat bizarre.

</comment></comment><comment><USER5> I have met lots of _highly_ skilled older coders. They tend to not jump on every fad, but that's because they know that software engineering is faddish. Instead they focus on deep expertise, robust architecture, and how to ship.

<comment><USER6> The problem is that older folks are very few and far between.

You're right about shipping I think. My experience is only anecdotal, but older people, for me, have been the difference between shipping and floundering.

<comment><USER7> I was thinking the other day "if I wanted to market myself as a 40 year old RoR contractor, what's my one paragraph description / resume / pitch".

It boiled down to:

After 20 years of experience at startups, my key skill is simple : I GOD DAMN SHIP WORKING CODE. I'm up on some of the latest technologies, and not up on others, but if you want someone to take a half-assed project that's over schedule and over budget, get it cleaned up, made working, made maintainable, debugged, and DEPLOYED - with every little quirky bit that separates 'mostly done' from 'actually done', then I'm your man.

<comment><USER7> A further thought: PG talks about Blub languages and Blub programmers (in both cases, those at level X can look down at level X-3 and see what it's missing, but those at level X-3 look up at level X and just thing "WT*?").

I think that there's an aspect to software engineering that is not captured under the word "programmer", and there are Blub people in this as well: people who know how to get projects finished, maintainable, and deployed understand how the Blub folks fail, but the Blub folks don't understand everything the old farts do, and think that most of it just looks stupid or stick-in-the-mud- ish.

<comment><USER8> > _A further thought: PG talks about Blub languages and Blub programmers (in > both cases, those at level X can look down at level X-3 and see what it's > missing, but those at level X-3 look up at level X and just thing "WT_?").*

Which I find mostly a Blub observation. Yes, some languages have some more features than others. In any case the benefits are marginal compared to: their libraries, the general ecosystem (programmers, jobs, books, etc), stable, fitness for the job etc.

It's not like anybody will be more proficient writing a kernel or a 3D FPS in Lisp, just because it has garbage collection and C lacks it. Actually, C will be better suited for the kernel job PRECISELY because it lacks garbage collection.

And if you are in rural Romania, you'd be better of with CodeIgniter for your brochure-style web design firm, than with Snap, that is if you want to have a team with more than one programmer in it.

</comment></comment></comment></comment></comment><comment><USER9> Most of the older coders I know tend to focus on niche technologies. Many do embedded systems work, or database design.

The downside is that some of them really fell in love with a certain fad - <USER2> example, one of the great database designers only builds Access/MSSQL stuff because he knows it inside and out, backwards and forwards. I know similar people who are stuck in Crystal Reports, Delphi, etc.

I get the feeling that older coders tend to dismiss all the current fads, and are stuck in the fads of 10+ years ago. If I needed help with one of those technologies, I'd be certain to call one of them, but it does cut them out of consideration for new projects...

<comment><USER10> _Most of the older coders I know tend to focus on niche technologies. Many do embedded systems work, or database design._

Specializing is often very lucrative. Ruby on Rails and PHP programmers are a dime a dozen (no literally they are astonishingly cheap), while a database designer is mid six figures. It is hard to get into those specialties, so naturally they are going to have older participants.

 _I get the feeling that older coders tend to dismiss all the current fads, and are stuck in the fads of 10+ years ago_

That is a short circuit argument often used by people when they face resistance to unsupported ideas. Several years back I posted several essays critical of the NoSQL euphoria. Being in my 30s, I wasn't surprised to see several argue that it was because I was just too old, man. Only that was a steaming pile of horseshit: My criticism was founded entirely in a knowledgeable, experienced analysis, and not simply brash adoption because something was new and different (an affliction that impacts developers of all ages). The new silver bullet.

People see what they want to see, and it's the root of all prejudices.

<comment><USER11> _Several years back I posted several essays critical of the NoSQL euphoria. Being in my 30s, I wasn't surprised to see several argue that it was because I was just too old, man. Only that was a steaming pile of horseshit: My criticism was founded entirely in a knowledgeable, experienced analysis, and not simply brash adoption because something was new and different (an affliction that impacts developers of all ages). The new silver bullet._

Reminds me of an experience I recently had. I was in a room full of programmers where the conversation quickly turned into an exchange about newer technologies between a group of mostly up-and-coming Ruby guys (who I'll call 'youngsters' for lack of a better weasel word), and a group of mostly older and established enterprise developers (the 'oldsters').

It was weird to sit on the sidelines and watch the exchange. The oldsters were asking interesting and probing questions about some of the technologies that were popular with the youngsters. Nothing really confrontational. Just a lot of genuine curiosity, tempered with a little bit of cautious skepticism (presumably borne of experience).

The youngsters, on the other hand, seemed to be taking all of it rather defensively. And they did a whole lot of question-dodging. Or apparently failing to understand that they failed to understand the question (admittedly I didn't really understand a lot of these questions either - I'm a youngster myself), and giving unsatisfying answers as a result. And generally making me worry that the Dunning-Kruger effect might have been a factor in how the conversation was unfolding.

Don't know where I'm going with this, other than to say that it was a rather instructive experience for me.

<comment><USER4> I've had one entertaining experience at a conference of having my opinion be partially dismissed in-person due to my age - only to have a guy bring up what this "Adrian Howard" dude said on a mailing list to back up my old-dude opinion (I hadn't introduced myself at this point).

I guess on the internet nobody knows you're an old dog

</comment></comment></comment></comment><comment><USER12> I can relate to this article, but I have to say that not all older people know how to code. I'm pretty much at the age mentioned in this article so my peers are all "old farts" in the tech industry. Some of them evolve into excellent programmers with valuable experience. Others are very change resistant and possibly never had good practices in their career. Some have had cushy jobs at corporations and move at the speed of a snail. Others crank out solid code at inhuman speed.

Basically I think older coders need to be evaluated the same as younger guys. Some are good, some are not. However I do agree that older guys with families are not going to work 24/7 for 6 months in exchange for free pizza.

<comment><USER13> The problem lies in how a start up should evaluate an "older person". I am fresh out of school and think it is completely natural to be asked about new technologies, dynamic programming etc. However, I know a guy in his late thirties who has this inhuman ability to learn a fancy new technology in a week's time and then apply it to solve a complex old problem. Unfortunately, he doesn't necessarily have as good an algorithms background as I do. However, the speed at which he gets stuff is amazing. Does that mean that he is not a valuable asset? Also, how do you distinguish between such a person and a person who has spent a decade in industry and can run circles around you on high level stuff but is lacking when you dig deeper? When I am interviewed for a position, I expect (and even appreciate) being given a coding challenge and being asked to present my github account but I am unsure how scalable that model is for a senior person who has family etc.

<comment><USER14> it is given that minimum you should be able to do is to code but that doesn't say at all can you actually develop something (think about that for moment) Low level stuff is generally easier to master (hence low part in name) than high level abstract thinking and concepts. Most people can learn low level stuff but most people doesn't grok high level stuff and implications of decisions they make.

<comment><USER13> Yeah but I would think that evaluating whether a person can code or not is hard. (From both personal experiences as an interviewee/interviewer and the large number of posts regarding interviews that we see on HN every day). During my limited "oldster" interviewing experience as part of my startup job, I have found that people who have spent a long time out of academia find it (slightly) harder to solve questions on trees, graphs etc. On the other hand, they do cream the shit out of problems that you face in your day to day job in industry. On the other hand, people who are fresh out of school typically have the situation in reverse. I myself again feel the best way to evaluate a person's coding ability is to ask them to work on a tiny project. However, it doesn't seem reasonable to ask a person coming in for a senior position to work on a silly coding challenge.

</comment></comment></comment></comment><comment><USER15> It warms my heart to read this blog post. I have been programming pretty much continuously since 1974 except for a brief two year foray into management. I intend to keep on programming for as long as I can.

I would like to make a brief remark about passion. Leaving aside the fact that the term 'passion' is sometimes overused, I think that a lot of --especially younger-- people confuse passion with a kind of frantic, frenzied intensity. That kind of passion typically does not last very long, I think. It either burns itself out or it mellows into a deeper, more mature, kind of devotion to one's craft.

</comment><comment><USER16> Whilst I agree with the title of this post, it would be nice to have some evidence, or at least some examples of the sort of things that experience brings.

Related: "The Secret Life of the Grown Up Brain" is an interesting book looking at what works and does not work in the middle-aged brain (defined as being 40s, 50s, 60s): [http://www.amazon.com/The-Secret-Life-Grown-up- Brain/dp/0670...](http://www.amazon.com/The-Secret-Life-Grown-up- Brain/dp/0670020710)

<comment><USER17> Long experience in development is often more about knowing what won't work as much as what will.

Older developers can often rule 80% solutions out immediately - but a younger developer would have to work it out the hard way.

<comment><USER4> I listened to rather a nice talk by George Fairbanks at GOTO Copenhagen kinda related to this topic on Tuesday ([http://gotocon.com/cph-2012/presentation/Master- builders%20h...](http://gotocon.com/cph-2012/presentation/Master- builders%20have%20rich%20conceptual%20models%20of%20software%20design)). One of the things he brought up was the idea of what you'd tell your twenty year old self to get them to be as skilled as you are now - and it was a hard thing for me to answer off the cuff. After a couple of hours I was thinking about things like that I pretty much totally misunderstood in my twenties.

* Building software is much more about people (both the team and the users) than it is technology. So called "soft skills" are vital to shipping.

* Value starting small and growing a system, more than starting large and solving everything.

* Validate what you produce. Do it with the shortest feedback loops possible.

* Build up abstractions from working code, don't create working code from abstractions.

* Make sure that you build the abstractions from the problem domain/solution into the code, not just the abstractions you need to make the code easier to produce and comprehend

* Always be able to explain the decisions that you make in development.

... and of course the shit load of experience that doing development for thirty years in multiple domains, teams, languages, contexts, etc :-)

</comment></comment></comment><comment><USER18> I have recently been in the position to hire some older coders and, This article needs this grain of salt. There are a lot of older coders who can't code which masks some of the real great programmers out there. The other problem is once someone gets established as a cornerstone of an organisation they aren't normally let go. There is too much intellectual knowledge ties up in the individual. So what you see on the market is older programmers who couldn't cut it at their employer and then eventually got let go . That's why you see so many people passing on them.

<comment><USER19> > There are a lot of older coders who can't code

My experience is that there are a lot of "coders" _of all ages_ who can't code.

</comment></comment><comment><USER20> I'm almost finished with "The Art of Unix Programming" by Eric Raymond, and I have to say, I wish I would've read it years ago.

We constantly, I mean _constantly_ reinvent things. Not just tools, but techniques and patterns. I'd love to talk to some older developers about this -- or read a good blog.

<comment><USER21> You want to make your way in the CS field? Simple. Calculate rough time of amnesia (hell, 10 years is plenty, probably 10 months is plenty), go to the dusty archives, dig out something fun, and go for it. It's worked for many people, and it can work for you. - Ron Minnich

</comment></comment><comment><USER22> The software industry allows for something that's pretty unique - two people can have the same title/role, but one of them might be 100x more productive than another. While some of this difference can come down to innate ability, much of it is about experience and the judgment that comes along with it (better design decisions, architectural sense, etc.)

To that end, it's really bizarre to me that the industry doesn't value its seasoned employees more. These guys have as strong an ability to be a 100x programmer as anyone else.

<comment><USER23> As he points out, the industry likes young kids that can be paid less and worked harder. People that are old enough to know better are generally viewed as "cancerous" because they tell the younger people they don't have to throw away their youth to make other people rich. The people trying to get rich generally don't like that.

</comment></comment><comment><USER24> in the poker world, there was a turning point around 2002, where all of a sudden out of nowhere, 22-year-old kids were DESTROYING the "old fart" professionals - the kids learned poker on the internet, and condensed a lifetime of learning into two years with better learning materials and faster play.

this may or may not be happening now in the programming world.

i've met a handful of "old fart" programmers who are exceptional. i've also met a handful of twenty-something programmers who are equally exceptional. but as far as the long tail goes, the kids are much less resistant to new ideas, new concepts (for example functional programming). i think it might be a generational difference, and i think it could shake up the software economy in the next decade.

edit for the trolls: new to a particular person, not to the world. functional programming is a new concept to most of the people i've met, including several very strong engineers.

<comment><USER25> "new concepts (for example functional programming)"

New? Functional programming has been around since the 1960s. ML was first available in 1973. Haskell was first released in 1990. Even Python, a decidedly non-functional language, included the "map", "apply", and "reduce" builtins in its 1.0 release in 1991.

The author of the essay says that 45 is often considered "old fart" age.

Let's say someone was 25 when Backus presented "Can Programming Be Liberated From the von Neumann Style? A Functional Style and its Algebra of Programs" in 1977. That's 35 years ago, making them 60. Or perhaps the reference date should be when "Structure and Interpretation of Computer Programs" came out in 1985? Making them 52 now.

(I picked age 25 since at age 20 they would be "out of nowhere, 22-year-old kids" you were talking about.)

By neither criteria is functional programming new enough that a 45 year should consider it a "new concept."

<comment><USER26> If you take the existence of papers as a measure about what is relevant for an industry programmer, then I hope you are familiar with things like writing formal proofs using Coq and Isabelle (Coq started in the eighties), or generating programs directly from a specification.

<comment><USER25> I don't. That's why I included SICP in 1985 as another reference point.

Quoting from Wikipedia on "Functional Programming": Also in the 1970s, the development of Scheme (a partly functional dialect of Lisp), as described in the influential Lambda Papers and the 1985 textbook Structure and Interpretation of Computer Programs, brought awareness of the power of functional programming to the wider programming-languages community.

Even then, my own knowledge of functional programming started in the mid-1990s, as a physics grad student. It wasn't good knowledge, most assuredly, but enough that I am confident that a hot-shot young developer of 1990 would know the basics about as well as a hot-shot young developer now. Oh, and I even remember my advisor coming in one day exclaiming that we should all learn Dylan; that it was the new, elegant language of the future.

("About as well" because there 1) there's more documented experience with functional programming, and 2) there are many more developers now, so statistical distributions say that there are going to be a few more people now who know it better than they did then.)

</comment></comment></comment></comment><comment><USER27> I'm 41 and the old fart argument is bullshit.

People are people and they are all different. I don't cling to old technology. I love learning new things. I have written C modules for every major scripting language, modules for every major web server, can automate GDB and Windbg alike and have seen so many problems, I often can solve them with a walk buy and a mic drop. I am more productive now than ever, and I started coding when I was 10. Was sysop of a chat BBS when the Challenger blew up. Ran slackware in the early nineties, stood in line for Windows 95. This isn't just an alpha geek rant -- the point is that if you really love what you do, you only get better. My workflow is so automated from years of the craft, people that see it are in utter disbelief. I have so much quality code in the kitty that I can produce faster than anyone I have ever worked with. The bottom line is that if you produce results, you are of value. I prefer to code in C and ruby, but have no problem switching to .Net, Java, python, node, or whatever. The right tool for the job, and I can make that call better than most because I've learned it's not always about technology, it's about the passion the team has to get the job done. As the levels of abstraction in modern technologies get further and further removed, the more you want people like me on the team. Your business might just depend on it.

</comment><comment><USER28> One thing worth pointing out: not all startups are created equally. You _will_ run into the stereotypical startup that will drain you dry so the founders can make millions off of a talent acquisition. But there _are_ plenty of decent startups out there that aren't run this way.

</comment><comment><USER29>
       nick: the people who really strike it rich aren't the ones writing code

this this this. Except for a few companies that come around a handful of times in a generation (Google, fb, et al) coders don't get rich at startups.

<comment><USER30> Well-said. _Founding_ a startup can be lucrative. Joining someone else's? Unless you're VP level or above, it's generally not a good move financially speaking. (If you're a non-founding first programmer, demand a VP-level title, investor contact, and the right to attend board meetings-- voting rights are probably not an option. Titles mean nothing early on, but you want to lock that in to make it clear that you're not a JAP, where JAP means "Just A Programmer".)

For every other case, the rules for joining a startup are the same as for any other company. Join if it's a promotion, and if the gains outweigh the risks. A lateral move (salary wise) into a startup is fine, but if there isn't some level of technical promotion, at the least, it's not worth doing. Also, the mere fact of it being a startup does not a technical promotion make; a lot of these bubble startups are using the worst kind of enterprise Java.

As I said in another post, what's actually overvalued in 2012 is not startup stock, which probably reflects an accurate EV for these new ventures, but subordinate positions within startups.

</comment></comment><comment><USER30> _The startup culture is similar to professional sports in that it requires a fleet of fresh-out-of-college kids to trade their lives and their health for the potential of short-term glory._

This seems to be true in these "social media" VC-istan bubble startups, but is it true in Real Technology? (This assumes VCs are still funding Real Technology.)

I know some people in their 40s who started a biotech firm and seem to have balanced lives, but this was also in another country.

</comment><comment><USER31> There are several points this guy doesn't acknowledge:

      often excluded from that culture, not because we're lousy
      coders

If he is an amazing engineer, he's not "excluded" from the culture. You need a command line and an internet connection to start your own thing.

      for the promise of striking it rich.

Few people do startups for the "promise of striking it rich". They do it to "make it big", which is not the same thing. They are more fame- and impact- motivated than dollar motivated. So this right there bespeaks the wrong motivation.

      Especially when the people who really strike it rich
      aren't the ones writing code.

If he's not starting his own thing, he expects someone else to pay him a salary. But then turns around and says that coding is the _only_ source of value. Guess what, it's _harder_ to raise money for a technology startup than to get up a Rails site. Many more people can do the latter than the former, and it's not for lack of wanting. So from day minus one (not even day zero of signing or day one of working) this guy is _already_ hating on the people who hired him and pay his salary (often in addition to coding the first prototype), without even understanding what they do. Why would you hire someone like that?

      trade their lives and their health for the potential...we
      won't put up with that shit. We have lives, we have
      families, we have other things that are important to us.
      We're not about to sleep at our desks and trade watching
      our kids grow up

Do you want a guy like this at your company? This is absolutely poisonous from a culture perspective. Not only does the guy not want to work hard, he equates working hard with "losing your health". Somehow I missed seeing that Levchin, Thiel, Brin, Zuckerberg, Pyncus, and every early Googler and Facebooker were in wheelchairs for carpal tunnel syndrome. It's really not that hard to work hard and work out at the same time (even the dreaded brogrammers manage it).

If you are an engineer, you have to admit that tradeoffs exist. Go home and be a family man, like Guile's famous taunt, just don't expect to _also_ become a multimillionaire at a hot tech startup in an intensely competitive environment without any sacrifice of time. After all, you've got your wife and kids, and startups are all stupid scams meant to bilk the coders, so why feel excluded from anything?

Answer: because he doesn't believe his own analysis. He wants someone else to prop him up, to raise money and employ him, to provide the structure and the idea for him, and to organize everything into nice clean chunks that he can knock out with no technical risk in 40 hours per week, resenting them the whole way.

Guess what: the kind of person who can do that doesn't want to work with people like this.

<comment><USER10> _So this right there bespeaks the wrong motivation._

"Strike it rich" implies fame and impact. You are arguing terminology.

 _Do you want a guy like this at your company? This is absolutely poisonous from a culture perspective._

Absolutely. I will _always_ choose people who work smart over people who work " _hard_ ". Always. As to being poisonous, if someone refusing to give up the life balance is "poison", it's because you already are on life support.

Astonishing how much narrative you've invented in your reply.

<comment><USER31>
      "Strike it rich" implies fame and impact. You are arguing
      terminology.

They are not the same. Wikipedia, Khan Academy, Linux and Rails are fame and impact. Github is smaller than Zynga but has much higher status in the programming community. You can't go long years with low salary if you are motivated by money. This isn't just double think, the kind of people who achieve high economic status via startups usually care more about social status and proving something to themselves and the world than fancy cars.

That is why Peter Thiel talks about CEOs paying themselves a low wage as the best predictor of startup success.

<comment><USER10> _Wikipedia, Khan Academy, Linux and Rails are fame and impact._

Jimmy Wales is worth some $25 million, and basically lives his life off the Wikipedia books. Linus can write his own ticket anywhere, and has virtually unlimited potential. Rails....partner at 37 Signals.

If you have fame and impact you can almost always convert that into a lot of cold, hard cash.

<comment><USER31> Right, but it's about the psychological state. Jimmy Wales made his money outside of Wikipedia. Linus wasn't doing Linux to get rich. If you read their bios, the Google guys weren't thinking about getting rich. Of all the recent crop of successful startups, maybe only Mark Pyncus was really focused on getting rich.

It's a bit zen but there is a good way to tell the difference. A successful startup founder, when presented with the choice between more money and more power, will take power every time.

</comment></comment></comment></comment></comment><comment><USER32> I think the question isn't whether someone can code but whether someone is willing to work eighteen hours days.

Even if someone could turn out more good code in eight hours than the rest of the team turns out working eighteen hours, well not being around makes it harder to be part of the team.

But I'd say this is more of a testament to companies and standard practices which are more oriented to working people to burn out and throwing them away. That's not an efficient use of people certainly and it may not be an efficient use of the people's time. But it might just be an efficient use of the investors' money.

In ways, I'd say perhaps the young-guns might see that hiring old-farts could be a way to put a break umpteen-hour-weeks and so prevent the operation from having a burn-out-and-throw-away quality.

<comment><USER33> I've been a programmer for more than a decade and 18 hour days are few and far between. This bizarre obsession with long hours seems to be common in a very small segment of the programming industry.

<comment><USER13> Oddly enough, I see quite a few startups where this is prevalent and even celebrated. I remember talking to a YC company where top-down from the CEO, I was told that everyone worked 80+ hours a week and people were proud of the fact that occasionally they slept under their table. Looking closer at the operation (I spent a good few hours at their work place), It seemed apparent that most people were around late in the nights not because they were doing focused work for 18 hours but because they were inefficient enough that a significant bit of time was being spent doing other meta-non work related stuff. I suspect one of the reasons for this was that their "open office" environment was so incredibly distracting that there was so much context switching going on.</comment></comment></comment>


Bots are spamming the FCC with anti-Net Neutrality comments - <AUTHOR> https://www.fcc.gov/ecfs/search/filings?proceedings_name=17-108&q=The%20unprecedented%20regulatory%20power%20the%20Obama%20Administration%20imposed&sort=date_disseminated,DESC <comment><AUTHOR> There has been about 41,000+ posts since yesterday and climbing even more now.</comment>


The Receiving End of Algo Trading - <AUTHOR> http://dkbmdev.com/startuphacker/2010/03/24/the-receiving-end-of-algo-trading/

<comment><USER2> Horseshit.

> Merrill Lynch forex trading algorithms crawl the internet looking for every > possible source of exchange rate data

No. What happened is someone wrote an Excel VBA macro that hits your API. This happens all the time.</comment>


Async Task Queues - <AUTHOR> http://99designs.com/tech-blog/blog/2012/02/17/async-task-queues/

<comment><USER2> I think a task queue should be a default part of the web stack in exactly the same way that memcached is - once you have one set up a huge range of problems become things that you can quickly solve using a queue, which is good news for performance, scalability and maintaining a clean architecture. The initial setup costs pays off very quickly.

</comment><comment><USER3> Part of me sees things like this and my inner curmudgeon wakes up and yells "This is what happens when you use things that are new but not better! This is standard knowledge that has been around for 20 years! If you only used a _real_ web language/stack you wouldn't be reinventing everything! JMS anyone?!"

However, my better angels re-read it and say "Well, at some point you didn't know all that, and this is actually a well-written intro to the topic".

So ... good article!

</comment><comment><USER4> Task queues also allow for interesting web application architecture when combined with technologies that enable the server to push events to the client (think WebSockets, Socket.IO, etc).

The potential is far greater than simple tasks like sending an email, fetching external data, etc. If the server has the ability to push updates, you can start to use task queues in core user interactions. This is possible when workers can notify clients when their task is complete.

For example, you can have clients submit HTTP requests to the web server, the web server dispatch jobs to the task queue, worker processes (potentially in a different language than your web server!) retrieve those jobs, and then the workers directly notify clients when the job is complete. Combined with client-side logic, the result can be a good user experience, even when the server is performing complex tasks.

For example, I'm using this strategy to write web-based statistics software (think web-based Stata or SPSS). Without this type of asynchronous architecture, it simply wouldn't be possible to provide a good user experience because the core things the user wants to do are computationally intensive.

</comment><comment><USER5> I'm by no means versed in async task queues, but Celery (<https://github.com/ask/celery>), a python task queue, has worked quite well for me. Interesting article.

</comment><comment><USER6> Amazon's SQS (<http://aws.amazon.com/sqs/>) is a nice queue implementation with a very simple API for widely distributed systems. See the boto Python AWS library documentation for example usage: <http://readthedocs.org/docs/boto/en/latest/sqs_tut.html>.

Google's App Engine task queues are also very easy to use as the workers are just normal URL handlers in your app and the payload is standard HTTP data. See Python documentation at <http://code.google.com/appengine/docs/python/taskqueue/> and Go documentation at <http://code.google.com/appengine/docs/go/taskqueue/>.

</comment><comment><USER7> It would be really cool if we could compile a list of tasks on a webserver that these task queues could carry out.

The article lists: Image resizing Sending emails Third Party API calls

What about? Database optimisation Static file compression

<comment><USER8> Yes and Yes. We use async tasks at 99designs for all kinds of background tasks. It's a surprisingly useful and versatile system for a variety of things. It's a long list. :-)

Our rule of thumb is basically anything that's going to take more than ~100ms we definitely don't want our users waiting for it in their page load time.

</comment></comment><comment><USER9> At LayerVault, we're using delayed_job (<https://github.com/collectiveidea/delayed_job>) for our queuing system. Everything goes through a database, so the performance won't be as good as something in memory. Also, I feel safer with the workers only communicating with queue servers and not with application servers. Just a litte more abstraction :)

</comment><comment><USER10> Storing the queue locally is great for speed, but it sacrifices durability. When an app server crashes, all those queued tasks are lost in the ether.

<comment><USER11> The server they are using, beanstalkd, has a persistent bin log option. Of course if your disk also crashes you are up a creek.

</comment></comment><comment><USER12> I once built a task queue using redis, start-stop-daemon and php. start-stop- daemon can turn vanilla php scripts(or any kind of script for that matter) to a worker.</comment>


Recent [Pinboard] Bounciness And When It Will Stop - <AUTHOR> http://blog.pinboard.in/2012/06/recent_bounciness_and_when_it_will_stop/

<comment><USER2> Really appreciate this developer's frank style combined with non-dickishness (offering refunds etc.). An example for others.</comment>


Punch Martin Shkreli in the face (for a price) - <AUTHOR> https://twitter.com/i/moments/780846508564328448 <comment><USER2> It's easy to blame Shkreli for the high price, but it's also the government's fault.

They have made it so difficult for a company to get FDA approval with the red tape and the cost, the result is a market with no competition, which ends up with high prices.</comment>


Fun with Numbers - <AUTHOR> http://twistedmelon.com/blog/feb2011.html#02031101 <comment><USER2> Samsung seem to have really gored the Apple community's oxen by having the temerity to challenge the iPad with "a big phone" and an Android phone at that.

This guy's estimating 225 thousand sales total and getting featured on Daring Fireball.

This app stats & analytics company on the other hand saw 0.9 million activated in December alone, basically tied as the second best selling android device.

[http://blog.flurry.com/bid/54035/Android-Special-Report- Is-S...](http://blog.flurry.com/bid/54035/Android-Special-Report-Is-Samdroid- the-new-Wintel)

Since Samsung originally thought they were going to sell a million in the last three months of 2010, then upped that target to 1.5 million I'd say they were doing okay.

Personally I have no need for a 3G tablet, since I already have a phone I'm paying for data on and could tether, but those in the market for such a thing seem to like it as much as or more than the iPad. I did the research because I consider buying one to use as a jumbophone (this capability was removed for the US market) but it was just slightly too big for me. I'll settle for one of the next generation of 4.5-5 devices (and probably a cheap Tegra2 wifi tablet as well).</comment>


Worldwide Mirrors of git.kernel.org - <AUTHOR> http://google-opensource.blogspot.com/2012/04/worldwide-mirrors-of-gitkernelorg.html

<comment><USER2> I don't think there's anything really to be said here other than wow and thanks.

Honestly, it's nice to have the biggest web company just reach out and lend a hand to random projects around the net. From JQuery to Linux. That's pretty impressive. People will post about ulterior motives and incentives, but at the end of the day, it's just a good thing (TM).

<comment><USER3> I agree, Google moves the kernel to a bigger bandwidth capacity and that is something to be thankful.

<comment><USER4> kernel.org is hosted by ISC... beside one of the root DNS servers, distributed.net, debian.org, openbsd.org, and a few others.

They were not hurting for bandwidth.

<comment><USER5> There were problems of availability for a while after kernel.org got hacked, admins weren't very quick to restore services from a blank slate (I believe git access took four weeks). Some developers mirrored their stuff on github or repo.or.cz, but it wasn't systematic. Auto-mirroring by Google will make verification and disaster-recovery easier and faster.

</comment></comment></comment></comment><comment><USER6> "This mirror service is backed by the same high speed infrastructure that hosts the Android Open Source Project, which already serves more than 1 terabyte of data and 2.5 million requests each day."

Nice specs!

</comment><comment><USER7> They should add sourceware.org (glibc, gcc, etc.) to their git mirrors, because this one is often painfully slow.

</comment><comment><USER5> Other subdomains:

<https://chromium.googlesource.com/>

<https://android.googlesource.com/>

<https://android-review.googlesource.com/>

<https://gerrit.googlesource.com/>

<https://gerrit-review.googlesource.com/>

<https://*-review.googlesource.com/>

</comment><comment><USER7> Hmm, it looks like they don't support the git protocol (only https), which makes the mirrors pretty useless.

<comment><USER8> Can't Git clone from HTTP?

<comment><USER7> Looks like they've fixed the old dumb http protocol in git: <http://kasunh.wordpress.com/2011/01/15/git-over-https/>

So I must apologize for my former comment.</comment></comment></comment>


How Can Creatives Best Interact With The Web? - <AUTHOR> http://howtosplitanatom.com/news/creatives-distribution-and-the-power-of-the-web/

<comment><USER2> "Where once a musician would spend months praying that her demo reached the ear of the right A&R scout, now MySpace and GarageBand allow her to reach anyone, anywhere across the world."

No, it's actually still a huge amount of work to get any kind of success in the music or fine art worlds. Now, you get to be your own marketing team, label, and booking agency. And the labels wait to see who wins that game, then grabs them.

<comment><AUTHOR> I think that's the pertinent question. Can you web really be used to rise above the noise or is it still a mainstream media world?

<comment><USER3> Well phrased.

</comment></comment></comment><comment><USER4> "Creatives"?

<comment><USER5> As opposed to the rest of humanity, code-named "chopped liver"... ;-)</comment></comment>


Ask HN: What are good resources on web programming for non-technical? - <AUTHOR> I am 32 years old. I want to quit my current job in call centre. I have a few ideas that I want to execute. I am planning to start a startup. Before that I want to learn a bit coding. I prefer web programming as I have tried to learn js, html, and css in the past(2010-12). What are the current trends, what language should I learn? Help me build something that world want. <comment><USER2> I learned to program with a book called Learn to Program from the great publisher Pragmatic Programmers around 2011 All I knew was just like you: some HTML/CSS, and unziping and embedding jquery plugins. Here's a link to the book [https://www.amazon.com/Learn-Program-Second-Facets- Ruby/dp/1...](https://www.amazon.com/Learn-Program-Second-Facets- Ruby/dp/1934356360)

I'd go for that and some JS on the side but if you got an iPad, I'd definitely try Swift with the Playgrounds app.</comment>


API anti-patterns - <AUTHOR> https://techbeacon.com/8-reasons-why-your-api-adoption-so-slow <comment><USER2> Antipattern 0: hijacking a term from something popular, but only vaguely related, redefining it as something else ([https://en.wikipedia.org/wiki/Application_programming_interf...](https://en.wikipedia.org/wiki/Application_programming_interface)).</comment>


Some Rules for Historians (1973) - <AUTHOR> http://www.smithtrust.com/htmlpages/advice.html <comment><AUTHOR> For people wondering why this might be relevant to HN - I came across this piece while reading about the origins of UC Santa Cruz and thought some of the advice here was insightful and potentially useful to people who write in general. I like this one for instance:

"Once you have fallen in love with your subject write about it as swiftly as possible. Passion grows cold or turns readily to dogma. There is, generally speaking, nothing more disheartening than an historian who has devoted his whole life to one narrowly conceived subject. It is very largely true that the best work - if one takes into account its length and scope - has been done in a remarkably short time."

<comment><USER2> Two half-written, heavily researched novels of mine concur. One can never predict how 'busy' one is in the future, nor judge the desire to return to previous work.

Perhaps late nights awake during upcoming Christmas vacation will reawaken the feverish beast. More than likely it will not.

</comment></comment><comment><USER3> If you ever have a chance, I strongly recommend David Hackett Fischer's _Historians' Fallacies_:

[https://www.amazon.com/Historians-Fallacies-Toward- Historica...](https://www.amazon.com/Historians-Fallacies-Toward-Historical- Thought/dp/0061315451)

What historians have had to figure out, and sometimes learn the hard way -- these are lessons that over the centuries we have found deep-rooted needs to listen to . . . it's not just about writing history -- it's about thinking . . .

<comment><USER4> Great tip!

archive.org version here: [https://archive.org/details/HistoriansFallaciesTowardALogicO...](https://archive.org/details/HistoriansFallaciesTowardALogicOfHistoricalThought)

</comment></comment><comment><USER5> Would anybody know who he means by the great historians? Is it classic ones like Herodotus or Thucydides or is it someone more modern?

<comment><USER6> Perhaps some ancient ones, but also more modern historians. When this list was written almost 50 years ago it seems that tradition was already fading, and now...as far as I can tell...it's covered in dust. Old histories inevitably contain aspects we find mistaken (both morally and factually). But I personally love reading them for the strange perspective, the vigorous speculation, the calm judgement.

Gibbon was surely intended as a "Great Historian". And Macaulay (whose "Third Chapter" on the history of the people of England inspired generations of scholars). Maybe Michelet. Prescott. You can still find these all the time in battered Modern Library editions in used book stores.

For my money the greatest historian (who was surely meant) was Jacob Burckhardt, not-quite-incidentally a student of Schopenhauer and friend of Nietzsche. A modern edition will use footnotes to correct claims that turned out to be errors, and you're left with an elegant, sweeping vision of human activity, saturated with all the melancholy and resignation appropriate to the subject.

Two early twentieth century books I've read that probably fit the mold of "great historian" intended by this author are Webb's The Great Plains and Young's Victorian England: Portrait of an Age.

I think what the author means by "old great histories"\---as distinct from the many old "scientific" histories that are now merely wrong---is that the historian takes human nature as the primary subject and uses historical fact, at least as best as can be ascertained, as the concrete medium for both exploring and shaping it.

<comment><USER7> What would be some examples of "scientific" historical works?

<comment><AUTHOR> There are a few ways of interpreting that term. Isaiah Berlin has an article called "The Concept of Scientific History" that takes a very broad view of what that could mean:

[http://berlin.wolf.ox.ac.uk/published_works/cc/scihist.pdf](http://berlin.wolf.ox.ac.uk/published_works/cc/scihist.pdf)

But I think in this case he probably has in mind people like the Annales school (mentioned in another comment here) - not so much Fernand Braudel, who wasn't particularly scientific although he was dabbled in economic theories like Kondratiev waves. But more the followers of Braudel who became very focused on crunching numbers relating to land usage patterns, trade, and other socioeconomic data from early modern Europe, to the point that they ended up a bit detached from reality, in much the way that some economists seem to be working in an ideal world rather than a real one. There's also Lawrence Stone who as far back as the 1960s was using mainframes and punch cards to figure out trends relating to the decline of the English aristocracy and the rise of the middle class.

I figured the HN crowd might be interested in what Stone had to say about this, so I looked up an old article of his from the 70s on his methods:

"'the 'new' historians have also borrowed from the social scientrists a series of new techniques...: quantification, conscious theoretical models, explicit definition of terms, and a willingness to deal in abstract ideal types as well as in particular realities. The one new tool they have borrowed is the computer... about 1960 historians suddenly gained free access to this immensely powerful but very obtuse machine, which can produce enormous quantities of data at fabulous speed but only if they are presented to it in limited, often rather artificial, categories, and if the questions are extremely clearly, precisely, and logically framed. Fifteen years of varied experience with the machine has led to a greater appreciation among historians both of its potential uses and its real defects... The computer is a machine in the elementary use of which most professional research historians should henceforth be trained -- a six-week course is ample for the purpose -- but it is one which should only be employed as the choice of last resort. Wherever possible, quantitative historians are well advised to work with smaller samples and to use a hand calculator."

</comment></comment></comment></comment><comment><USER8> Reminds me of this: [http://www.telegraph.co.uk/news/2017/08/06/mary-beard- misogy...](http://www.telegraph.co.uk/news/2017/08/06/mary-beard-misogynistic- race-row-bbc-cartoon-us-academic-claimed/)

</comment><comment><USER9> And apparently "if you can't explain the artifact, it was there for ritual reasons" :)</comment>


Machine Learning and Dragons - A Game - <AUTHOR> http://www.blendedtechnologies.com/machine-learning-and-dragons-a-game/177 A little Python/pygame game I wrote using Genetic Programming for the dragon AI. <comment><USER2> No way this will work over the course of a single one player game. It really needs a centralized server and thousands of players, not to mention a better fitness function than lifetime.

<comment><USER3> And he should coevolve knights, removing the need for humans altogether.

<comment><USER4> An idea I always wanted to play with: competing learning agents, where the players 'train' the characters somehow (perhaps specifying parameters, or playing against their creations, or selectively pitting one character against each other...), who then independently fight and learn over time. Then you could have big melees, and try to evolve the most useful/fun behaviours.

</comment></comment></comment><comment><USER5> The formula should evolve dragons which are running away. He gives higher fitness for dragons which live longer, therefore all dragons which attack the player will be the first which are killed. And giving a big reward for killing won't help much. As only one dragon can kill, all other dragons will still profit from keeping out of reach of the player.

Nice idea, but to impress me it should actually work ;-)

<comment><AUTHOR> Good point. Perhaps there's some game theory in there. The fitness function does need some work.</comment></comment>


Signs That Silicon Valley's Tech Bubble Is Bursting - <AUTHOR> http://www.forbes.com/sites/petercohan/2015/10/11/4-signs-that-silicon-valleys-tech-bubble-is-bursting/ <comment><AUTHOR> With layoffs by Twitter and Snapchat going on as well, this article seems worth discussing about.

Signs detailed in the article:

1\. IPO market is screeching to a halt.

2\. Tourists are taking the bus out of Silicon Valley. (Tourists --> mutual funds, hedge funds, other institutions that are not experts in helping grow tech startups.)

3\. Money-losing startups are over-valued.

4\. Private companies are aggressively sweetening the pot to attract fresh capital.

<comment><USER2> A lot of people have been calling bubble for years. What brought on the pop at this precise moment?

<comment><USER3> While I think the article makes a pretty good argument, i don't think the pop is quite here yet. I went through the first dot com bubble pop, and it was a bloodbath. This one won't be nearly as bad (I hope) but things are going to get a lot worse than they are now if this is a legit bubble and it pops.</comment></comment></comment>


Ask HN: Reliable VPS in South America/Africa/Japan? - <AUTHOR> For latency reasons, I am looking for VPS in South America (Brazil), Africa (South Africa) and Japan.
Besides Linode Japan, and Hetzner South Africa, the offers don't seem very interesting.
Ideally, I would like a KVM with throttling (or automatic poweroff) once the quota is reached, above 700 Mb of RAM, 1 Tb of quota for less than $10/month
Any suggestions? <comment><USER2> I've used Angani (www.angani.co) previously and been happy with their services. They offer a $5 barebones option.

</comment><comment><USER3> Where exactly are you located?

<comment><AUTHOR> East coast, but I travel.

That's not just for me: I need low latency VPS there for resources that are updated frequently.

<comment><USER3> For Tokyo you could also check out Vultr or M247/VPS247

<comment><AUTHOR> Unfortunately, VPS247 has no DC in JP: [https://www.vps247.com/locations](https://www.vps247.com/locations)

And Vultr bandwidth costs are high. I may prefer linode known reliability and service to Vultr's unknowns.</comment></comment></comment></comment>


Ask HN: Good resources for learning UX/UI Design? - <AUTHOR> I am studying UX/UI and searching for UI/UX design resources is riddled with graphics design, javascript, name-your-favorite-web-app-frameworks, etc.
When I started learning about Data Science, one of the best resources I've found is Hadley Wickham's books on ggplot2 and other excellent books such as Semiology of Graphics, The Grammar of Graphics, etc.
What are some of the classics in UI/UX design that are truly timeless and talk about the abstract UI/UX concepts and not some concrete framework? <comment><USER2> In terms of classics there are for example "The Design of Everyday Things" by Don Norman and "Don't Make Me Think" by Steve Krug.

Hack Design is an online design course with curated resources that will give you a great overview of the various areas of design: [https://hackdesign.org/lessons](https://hackdesign.org/lessons)</comment>


Ask HN: What do you do with your server log files? - <AUTHOR> Ask HN: what do you do with your server log files? <comment><USER2> There was a big discussion about logging yesterday. [https://news.ycombinator.com/item?id=20818106](https://news.ycombinator.com/item?id=20818106)</comment>


Jia Shen of Rockyou on self expression widgets and monetizing Facebook apps - <AUTHOR> http://uk.intruders.tv/Jia-Shen-of-RockYou_a231.html

<comment><USER2> jia is not only a savvy entrepreneur, he's a really chill guy. and he takes the prize for Best Haircut In Silicon Valley</comment>


UN Internet regulation treaty talks begin in Dubai - <AUTHOR> http://www.bbc.co.uk/news/technology-20575844

<comment><USER2> Good article, after reading this article I #1 know why google is against it, and #2 am against the proposal as well. IMO the google site <http://www.google.com/intl/en/takeaction/whats-at-stake/> could have benefited from some of this kind of detailed information with references.</comment>


Gliding, another node web framework, try to better deal with callback hell - <AUTHOR> https://github.com/BenBBear/gliding

<comment><USER2> Cool project. However, I think using promises or ES6 generators are a more viable option to escaping callback hell.

</comment><comment><USER3> Developed by undergrad - check. Author inspired by angular - check. Not ready for production - check.

Yes, this will be an extremely popular framework. I can feel it. This is the node.js way.</comment>


Capsicum - <AUTHOR> https://oshogbo.vexillium.org/blog/57/ <comment><USER3> Capsicum is difficult to use, and has never been used to its full potential in FreeBSD.

OpenBSD's pledge(2) and unveil(2) by comparison are seeing far greater usage, covering somewhere between 85% to 90% of the base operating system. Patches for 3rd party software, and programming languages are also appearing upstream, as they also serve as helpful annotation for other mechanisms and encourage privilege separation.

[https://man.openbsd.org/pledge](https://man.openbsd.org/pledge)

[https://man.openbsd.org/unveil](https://man.openbsd.org/unveil)

[https://gist.github.com/ligurio/f6114bd1df371047dd80ea9b8a55...](https://gist.github.com/ligurio/f6114bd1df371047dd80ea9b8a55c104)

<comment><USER4> The difference is that while Capsicum provides you with very solid, easy to reason about protection model. Meanwhile... can you still escape the pledge by reexecuting yourself?

<comment><USER3> This weak argument from FreeBSD people is getting rather tiresome.

You can only call fork/exec if it's part of the pledge(2) promises, which you can later drop with subsequent calls to pledge. And with unveil(2) or even chroot(2) you can also place further restrictions on which binaries can be executed, and in which directories.

Systems like Capsicum would have you not be able to sandbox those programs at all. Users are left unprotected. So yes, if you pledge(2) a shell. It can call exec, but directly it can't call socket/connect(2), and the reduction of kernel attack surface is still significant. Software using privilege separation can safely leverage this.

<comment><USER4> Thing is, with pledge you never really know what the promises actually are, or if they make sense, in that you cannot work around them. With Capsicum (or any other capability system) you can.

The assumption that with Capsicum you wouldn't be able to sandbox stuff is blatantly false. The proof is existing code - Chromium, Tor, or Irssi - <USER2> has been capsicumized, often much more easily than with seccmp (I've not seen that comparison with pledge(2) yet).

One advantage that pledge(2) certainly has is the community involvement. OpenBSD has applied pledge(2) in many places, while capsicum(4) was quite a bit slower until recently. This has nothing to do with technical differences, and more with the social aspects.

<comment><USER3> > Thing is, with pledge you never really know what the promises actually are, > or if they make sense, in that you cannot work around them.

This makes no sense. Of course you know what the promises are, they're in the source code. You can also use ktrace/kdump(1) or even strings(1). The names of the promises are obvious and their intention is clear. There are subsets of POSIX.

> The assumption that with Capsicum you wouldn't be able to sandbox stuff is > blatantly false.

That is not what I said, I was specifically correcting your misinformed statement regarding pledge(2) and those programs that explicitly permit exec, like shells. Capsicum has no solution for this, and as such these programs cannot be sandboxed on FreeBSD.

<comment><USER5> > The names of the promises are obvious and their intention is clear. There > are subsets of POSIX.

That's true, but not really the whole truth. Take "dns", for instance. It enables a number of system calls needed to perform DNS resolution. But as far as I understand, those system calls (sendto(2) for example) can then be used arbitrarily. So "dns" actually permits more than the name implies.

On the other hand, when a program is running in capability mode, we know exactly what is permitted and what isn't.

> Capsicum has no solution for this, and as such these programs cannot be > sandboxed on FreeBSD.

... they can't be sandboxed on OpenBSD either. pledge("proc exec") doesn't give you a sandbox.

<comment><USER6> Hi, that is not true. The "dns" promise only allows sockets with the SOCK_DNS option, the kernel restricts access to only DNS type operations and port numbers (enough for libc to do DNS). The kernel tries to separate pledges as tightly as possible, with many checks:

        SOCK_DNS
            For domains AF_INET or AF_INET6, only allow connect(2), sendto(2), or sendmsg(2) to the DNS port (typically 53).

[https://man.openbsd.org/socket](https://man.openbsd.org/socket)

<comment><USER5> Ok, so that's tighter than what I said, but my point still stands.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> It's too bad Capsicum was never merged into the Linux kernel[1]. It would have been nice to have one sandboxing API to use across the two operating systems, and the two projects could share the effort of sanboxing existing programs and libraries.

[1]: [http://www.capsicum-linux.org/](http://www.capsicum-linux.org/)

<comment><USER8> All it needs is for someone to finish the port.

</comment></comment><comment><USER4> One other URL that might help understanding the "big picture" behind Capsicum is, and how it differs from most other sandboxing mechanisms, is this: [https://en.wikipedia.org/wiki/Capability- based_security](https://en.wikipedia.org/wiki/Capability-based_security). (It's not _that_ good, though; someone(tm) should eventually write an article explaining Capsicum from that point of view, since it's a pretty fundamental difference.)

</comment><comment><USER9> Aside: patch(1) from the example is a really good candidate for isolation. A few months ago we had this RCE: [http://git.savannah.gnu.org/cgit/patch.git/commit/?id=123eaf...](http://git.savannah.gnu.org/cgit/patch.git/commit/?id=123eaff0d5d1aebe128295959435b9ca5909c26d)

</comment><comment><USER10> I love this, it's like the unikernel of shell security.

</comment><comment><USER11> Apparently the author decided to not only replace all occurrences of "its" with it's, but all occurrences of "it" as well.

<comment><USER12> The author is Polish and not a native English speaker, if that helps you understand the grammar.</comment></comment>


Google Fail: "Paypal Donation Tracker" - <AUTHOR> http://www.google.com/search?hl=en&safe=off&client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial&hs=Fyy&q=paypal+donation+tracker&aq=f&oq=&aqi=g-p2g1g-m1

<comment><AUTHOR> I wanted to add one of those thermometer thingies to a site to monitor donations to a paypal account. You'd think someone would have a code snippet for that up somewhere.

Instead every result is for spammy-looking blogs selling licenses to use their code snippets.</comment>


What Recruiters Don't Want You to Know - <AUTHOR> http://insights.dice.com/2017/05/10/what-recruiters-dont-want-you-know/ <comment><USER2> Makes me sad to read exposés of this kind. Having worked in the recruitment industry as an agent, in-house recruiter and now recruitment tech vendor, I can confirm that most of these practices exist.

Some of these behaviours are not directly the result of poor practice from agencies though. In many cases, agencies adopt the bad practice from their customers - the end client, who also needs to take some responsibility for the poor experience candidates often receive. Also, the post co-mingles recruiters of different types (internal vs 3rd party for example) which doesn't help the reader understand the behaviours in this market.

I'm going to go point by point on this in an attempt to share a perspective and maybe help out a little.

 _Prioritizing Candidates from Prestigious Companies_ This happens and it's 100% the responsibility of the end client. 'Pedigree' hiring is a common bias that starts with the customer before being adopted by the recruitment agent. Agent only cares about placements, if client is bias, agent will simply factor that bias into his search.

 _Ghosting Candidates_ This is 50/50 on the agent and the client. Most often rejected candidates get zero feedback other than the outcome. Without any substantive feedback to offer, an agent will often not bother to provide any contact at all. Poor practice, but shared responsibility between agent and client

 _Not All Recruiters are Created Equal_ 100% correct

 _Sending Unsolicited Résumés_ Horrendous demand generation tactic. Happens too often, and won't be stopped until legislation is in place to penalise firms that try this

 _Posting Fake Jobs to Fish for Résumés_ Horrendous supply generation tactic. Happens too often, and won't be stopped until legislation is in place to penalise firms that try this

 _They Stall for Time_ Called 'candidate management'. Does happen but impossible to assess whether it is or isn't - could genuinely be the case that no information is coming from the client.

 _Some Agencies are Training Grounds_ Almost all large corporate firms fall into this bracket. Hire cheap at the junior level and send them out to work the phones. Survival of the fittest mentality, and big part of the reason why candidate experience of agents is so uneven.

 _Recruiters are Rewarded for Diversity Hires_ Probably not true of agency recruiters - they just want placements. This may be true of internal recruiters, especially of large corporates who have diversity policies.

</comment><comment><USER3> Curious that this manufactured content piece came from the job board DICE--

They evidently don't mind portraying their client base (recruiters) in a decidely unflattering light. I'd think twice about supporting their platform.</comment>


Linus Torvalds' Micro-emacs - <AUTHOR> http://git.kernel.org/?p=editors/uemacs/uemacs.git;a=summary <comment><USER2> Okay, so I did some googling; and I'm not quite sure why someone would prefer this over regular GNU Emacs or XEmacs.

Any emacsen around that could shed some light on why you'd use this instead of a more "modern" emacs?

<comment><USER3> _Any emacsen around that could shed some light on why you'd use this instead of a more "modern" emacs?_

NIH.

It would be pretty easy to make GNU emacs behave exactly like mg or microemacs. But then you couldn't tell your friends, "I wrote my own Emacs".

<comment><USER4> Another member of the "I wrote my own Emacs" club: Fabrice Bellard, of QEMU, TinyCC, FFMpeg, LZEXE...

<http://bellard.org/qemacs/>

</comment></comment></comment><comment><USER5> "Nuntio vobis gaudium magnum, habemus _editorum_."

Now that emacs has been anointed by Linus, I hereby announce emacs the winner of the long lasting editor wars. Let us now proceed to purge vi (and other lesser editors) from the face of the Earth, and let none speak of them again.

</joke>

<comment><USER6> Keep in mind that microemacs (the original spelling) (or uemacs) is not emacs, although it resembles it faintly. It was originally written by David G. Conroy while working on the dec pc that used a z80 as an io controller and an 8086. Daniel Lawrence did a lot of work on it as well.

So it is not quite right to say that emacs has been anointed by Linus.

<comment><USER7> Pertaining to the editor wars.

There's a great (long) video about Linus and Linux history from 2001. Watch the whole thing if you can—after the 40 minute mark is especially worth it: <http://www.youtube.com/watch?v=WVTWCPoUt8w>

55 minutes in someone asks him, "What editor and mail reader do you use?" He smirks, "The editor is microemacs, the best editor ever made. And vi and GNU Emacs suck, suck."

<comment><USER6> Well, it is not much of a war. I know perhaps 8 people that use uemacs (I don't any longer--quit when I no longer was using Coherent or Atari ST), so if it is a war, only Linus' weight makes it even a battle.

</comment></comment></comment></comment><comment><USER8> openbsd has had a (still somewhat-actively-developed) tiny emacs-like editor in its tree called mg for quite a while.

<http://pintday.org/hack/mg/>

<http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/mg/>

<comment><USER9> Yeah, but that lacks the extensibility that makes Emacs really noteworthy. I use mg for editing /etc when setting up a new OpenBSD system, or very quick edits, but it's not a replacement. It's just as "always there" as vi (on OpenBSD, at least), but with the default Emacs keyboard shortcuts.

<comment><USER10> Yes but mg has a powerful tool for software development. Just try M-x theo. I find it quite motivating.

</comment></comment></comment><comment><USER11> History of Micro-emacs ... <http://www.emacswiki.org/emacs/MicroEmacs>

</comment><comment><USER12> After having spent some time looking around for a tiny emacsalike ("ersatzemacs") for making quick edits on remote systems, I settled on [zile](<http://www.gnu.org/software/zile/>).

</comment><comment><USER13> Am I the only one who feels that it shouldn't be called "Emacs" if it doesn't have Lisp inside it? (Not to be a Lisp fanboy, but that seems to be _the_ defining feature...)

</comment><comment><USER12> I don't understand: does this link mean that we're looking at Linus's own branch of microemacs/uemacs? Is he patching the one he uses, and if so, are the changes going back into [Jasspa's MicroEmacs](<http://www.jasspa.com/>)?

</comment><comment><USER14> I guess he decided to fix it:

[http://marc.info/?l=git&m=122955159617722&w=2](http://marc.info/?l=git&m=122955159617722&w=2)

<comment><USER14> That post should be downvoted as the link does not apply to uemacs :)

</comment></comment><comment><USER15> I wish I could build this on OS X. I guess I'm writing a patch for it now.

<comment><USER16> There is Jasspa's distribution available. Binaries for OS X are here: <http://www.jasspa.com/downapple.html>

(Delete key doesn't work as backspace, though :( I'd love to see your patch for Linus's version)

<comment><USER17> I use the JASSPA distribution on Windows, but placing this in your configuration might point you in the right direction.

      global-bind-key backward-delete-char "delete"

<comment><USER16> Thanks, it works! (Now "Forward Delete"/Fn+Delete doesn't work, though, but I use it rarely).</comment></comment></comment></comment>


Show HN: Hackful Europe iOS App - <AUTHOR> http://dailyoemer.com/hackful-ios/ Hi guys,
I have been working on a iOS app for Hackful Europe lately. Since the API is now ready to access it is time to show you guys all I have got.
The app is really simple and puts everything from hackful.com into your pocket.
You can
* login, * up vote, * coment on something, * reply, * submit and * share the articles
The project is fully open source under MIT license and is also in the App Store by now. You can start reading my code and contribute to it on GitHub if you like.
Please tell me what you think. What can be done better?
Hope you like it
Oemera <comment><AUTHOR> Hi,

I'm the developer of the app. I have been working on a iOS app for Hackful Europe lately. Since the API is now ready to access it is time to show you guys all I have got.

The app is really simple and puts everything from hackful.com into your pocket. You can

      * login,
      * up vote,
      * coment on something,
      * reply,
      * submit and
      * share the articles

The project is fully open source under MIT license and is also in the App Store by now. You can start reading my code and contribute to it on GitHub if you like.

Please tell me what you think. What can be done better?

Hope you like it

Oemera</comment>


Intel Xeon Scalable Processors - <AUTHOR> https://www.intel.com/content/www/us/en/products/processors/xeon/scalable.html <comment><USER2> Wow consider the following word salad:

 _" The Intel® Xeon® Scalable platform provides the foundation for a powerful data center platform that creates an evolutionary leap in agility and scalability.3 Disruptive by design, this innovative processor sets a new level of platform convergence and capabilities across compute, storage, memory, network, and security. Enterprises and cloud and communications service providers can now drive forward their most ambitious digital initiatives with a feature-rich, highly versatile platform."_

I think that's running at 16MBWS (mega-buzz-words-per-second)

First we had Microsoft talking about a full up ARM version of Windows 10. We've had the number one compute platform people using being their phone for a while now so ARM is winning there.

Second we had the interesting rush of new i9 chips when AMD announced Ryzen and its family of enthusiast CPUS.

Then we had Intel pulling back from their attempts to extend into the emerging IoT market, and discontinuing their entry level 'appliance' Atom line.

And now we've got a nearly incomprehensible mishmash of stakes being thrown down everywhere in the data center to describe data centerness?

From where I am reading I see a company that is in full on existential panic.

</comment><comment><USER3> Where is a table of the actual specs? I swear their web site is just a bunch of circular links.

<comment><USER4> Try this PDF (page 9):

[https://www.intel.com/content/dam/www/public/us/en/documents...](https://www.intel.com/content/dam/www/public/us/en/documents/product- briefs/xeon-scalable-platform-brief.pdf)

<comment><USER5> Interesting how AMD differentiates over only raw performance (eg: clock rate, cache size, core count, etc) whereas Intel still differentiates on hard- hitting features (ie: HyperThreading and OmniPath both cost extra).

I think this will definitely hurt them as it strictly enforces market segmentation, however it's probably not that big of a deal for those that consistently buy Intel in bulk. They're clearly not that concerned about AMD flanking them.

<comment><USER6> I believe Omnipath is a separate on-package chip, so it actually does cost Intel extra to include it.

</comment></comment></comment></comment><comment><USER7> Anandtech: "Sizing Up Servers: Intel's Skylake-SP Xeon versus AMD's EPYC 7000 (anandtech.com)"

[http://www.anandtech.com/show/11544/intel-skylake-ep-vs- amd-...](http://www.anandtech.com/show/11544/intel-skylake-ep-vs-amd- epyc-7000-cpu-battle-of-the-decade/)

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

</comment><comment><USER8> This isn't a product announcement FYI.

This is Intel letting us know they're changing their naming scheme.

Xeon E7-XXXX = Xeon Platnium

Xeon E5-XXXX > $1k = Xeon Gold

Xeon E5-XXXX < $1k = Xeon Silver

Xeon E3 = Xeon Copper

Saved you a click. Their making this change for the new Skylake-EP lines which have been rolling out _slowly_ as their preferred partners (Google, Amazon, Microsoft) get first pickings.

If your interested in benchmarks the Skylake-X consumer CPU's are the same micro architecture and there are Gamer/Work station oriented reviews.

<comment><USER9> Honestly when comparing processors I think everyone uses their ARK app because no one can remember very well the numerical numbering system. This is a welcome improvement.

<comment><USER10> I am so relieved I am not the only one who gets confused by Intel's naming/numbering scheme.

</comment></comment></comment><comment><USER11> So the most expensive Xeon Platinum processor costs $13,000 each.

Looking forward to their Diamond series starting at $50,000 per processor...

</comment><comment><USER12> Intels response to AMD throwing in all the free silicon features for.. well, free.. is yet more market segmentation?

<comment><AUTHOR> Judging by the wafer presented, the die is _huge_. These things seem to be in a segment above AMD right now.

<comment><USER13> AMD just packages several dies. Threadripper will have 2.

<comment><AUTHOR> That creates some complications for signal propagation

<comment><USER13> At multiple GHz large die also creates complications. And it is also problematic for yields, hence $13k price for one of the top SKUs

<comment><AUTHOR> Indeed. I suspect a lot of those 13K are not the profit margins...</comment></comment></comment></comment></comment></comment>


Social Vanity - <AUTHOR> http://stevenkovar.com/post/17876195148/social-vanity

<comment><USER2> That "63 years" comes out of nowhere and does not means anything.

Those 800m users combined have more than 2 millions years "per day". They spend way more time brushing their teeths.

For just a second spent, "liking" something on Facebook seems a pretty efficient use of time.

<comment><USER3> Brushing my teeth has a direct, proportional return on my time investment. My mouth stays healthy (reducing dentist expenses) and my wife doesn't turn green when I speak near her.

Clicking "Like" has an unbalanced return on my time investment, short as it is. I get virtually nothing in return, but marketers and advertisers have another data point that they can use. My friends couldn't give a crap what I click Like on.

<comment><USER4> > My friends couldn't give a crap what I click Like on.

Well, in case of my friends Liking things, I do. It's a good recomendation engine. Especially, if your friends are not from the same industry as you, looking at what they Like is a way to avoid filter bubble.

</comment></comment></comment><comment><USER5> The lady doth protest too much, methinks.

There are plenty of activities that may seem to an outsider to be a waste of time. Daydreaming, for example.

(Just don't tell that to Albert Einstein who used to daydream about travelling on a wave of light.)

Even supposing that social networking _is_ some sort of vice, it's easy to think of much more harmful alternatives.

<comment><USER6> > Even supposing that social networking is some sort of vice, it's easy to > think of much more harmful alternatives.

If a vice is less harmful but more widespread is it better or worse than the alternative? E.g. Facebook vs. World of Warcraft

<comment><USER5> With vices I suspect that it isn't just the activity concerned but the purpose, which varies from person to person.

e.g. TV can be used to educate but it can also be used to distract

That said, some vices may be worse than others. In the case of social networking, I guess the obvious alternative is going to parties which are OFC a gateway to alcohol consumption.

</comment></comment></comment><comment><AUTHOR> Beyond the time being spent via social media, I'm curious what HN thinks we can do to show qualitative value per interaction vs. quantitative.

One thing I didn't include in my post was Hoffman's discussion of the three types of data that will prove to be important moving forward: explicit (data people supply), implicit (data created by behavior), and analytic (data gleaned from explicit and implicit information). Currently most social tools are very good at taking in the explicit data and showing people their own implicit data (think Tweets, Retweets, Followers), but there is--from a user standpoint--a lack of open analytic data showing the impact of their own behaviors.

</comment><comment><USER7> You have to have faith that all this time wasting will go somewhere practical, at some point. I posted this yesterday: <http://news.ycombinator.com/item?id=3607718>

If people can use this online time to figure out how to apply their skills to make money, they wouldn't be at their jobs browsing Facebook.

</comment><comment><USER8>
      echo "127.0.0.2 www.facebook.com plus.google.com \
      www.twitter.com news.ycombinator.com www.reddit.com" >> /etc/hosts

      sudo vim /etc/hosts

...and add '#' in front of that line every time you want to get social. Remove the '#' after use. Works miracles.

</comment><comment><USER9> i wouldn't call it a waste of time. they're using some of the most efficient current forms of personal trait signaling. check out the book "Spent: sex, evolution and the secrets of consumerism".

</comment><comment><USER10> Nice point of view. Actually, it is ok to spend some time on social networks, the point is we collectively spend too much of it trying to boost our ego.

</comment><comment><USER11> and so is posting a link to your own article on hacker news</comment>


Shut Up About the Batteries: The Key to a Better Electric Car Is a Lighter Motor - <AUTHOR> http://spectrum.ieee.org/transportation/advanced-cars/shut-up-about-the-batteries-the-key-to-a-better-electric-car-is-a-lighter-motor <comment><USER2> As I recall Siemens has an electric motor that weighs about 100lbs and puts out over 300hp. So yeah, it's all about the batteries still.

<comment><USER3> No, it's not. Doppelbauer is absolutely right. He just forget one key strategy with these high dynamic dynos. You make them longer, called cigar. The longer, the more area to apply the force. But then you've got a problem with the tyredyno design. The best cigars are 150cm's long, the ones used to test the best F1 engines. Those are handmade in low numbers, and extremely powerful and sensitive. They always need to need to know the exact absolute angle of the rotor, which is a hard mechanical problem. Wrong cooling fluid will break the engine. Only very few such engines do exist, but they are multitudes better than any cheap engine. Such dynos usually win F1 championships.

</comment></comment><comment><USER4> >There are two kinds of AC motor: asynchronous and synchronous. We will focus on the synchronous ones because they generally perform better and more efficiently.

fwiw Tesla disagrees. True the _peak_ efficiency is better, but the average efficiency is worse.

[https://www.tesla.com/blog/induction-versus-dc-brushless- mot...](https://www.tesla.com/blog/induction-versus-dc-brushless-motors)

<comment><USER5> Synchronous motors can be nice where you have predictable loads, well thought out maintenance schedules, and few surprises. Or worst case just can't deal with AC.

Almost nothing falls in that category.

</comment></comment><comment><USER6> The headline promised a lot but the article delivered "4.4 percent less energy". Also, I find it interesting that the motor Tesla uses isn't even mentioned (and AFAICT doesn't fall in categories they compare).

</comment><comment><USER7> Good article & technological work, but good luck finding collaborators with the arrogant attitude radiating from that headline

<comment><USER8> Made even worse since it probably wasn't the authors who gave it that headline.

</comment></comment><comment><USER9> Tesla S motor and inverter weighs 350 lbs on par with an ICE. The battery however weighs 1200 lbs while 20 gallons of gas weighs about 120 lbs.

No its all about the battery weight, and cost.

</comment><comment><USER10> Could it still be about the batteries: [https://en.wikipedia.org/wiki/Energy_density](https://en.wikipedia.org/wiki/Energy_density)

Seem it is hard to beat the WH/kg of chemical energy storages with electrochemical energy storage.

<comment><USER11> I agree we could really use improved batteries, but- You may not have to beat chemical energy if you can improve aero, weight, and efficiency.

</comment></comment><comment><USER12> So if you make your motor 10 pounds lighter you win? Heck, my backpack is 10 pounds. And a motor can only be 100% efficient, and they're at 97% now. Naw, I'll take my non-slipring motors.

</comment><comment><USER13> Not even gonna read it even though I might be interested, due to the patently false clickbaity headline

<comment><USER14> Generally it is perfectly valid to judge a book by it's cover but the article is actually pretty different in tone from the headline so I think it's actually worth a read.</comment></comment>


Energy Slaves - <AUTHOR> http://www.stuartmcmillen.com/comic/energy-slaves/ <comment><USER2> This is cute. But the conclusion is wrong — we can actually generate as much energy as we are currently using directly from sunlight.

It's not trivial — costs $1X trillions, covers lots of land (a 300-mile square!) and will take a long time. But then, we have more paved roads than we would need land covered by solar farms, so it's not a completely ridiculous amount of space.

We don't necessarily need to sacrifice lifestyle to use energy sustainably. We just need to stop burning fossil fuels pumped/mined from underground.

<comment><USER3> If it was such a great investment, wouldn't everyone be running to install it more or less? I live in Southern California (prime location for solar) and so far by my calculations, it does not make economic sense to install the panels. The economics are better if you just assume you have to pay for the panels and exclude labor, installation etc.

<comment><USER4> Pumping a barrel of oil out of the ground costs about $10 in Saudi Arabia, and gives about 1600 kWh. Electricity generally costs around $0.10 to $0.25 per kWH, so if you do the math, you can see that's just enormously profitable.

Renewable energy cannot compete directly with that. For some rough numbers, you'd expect about 150 hours of usable sunshine a month (depending where you are), so to generate a barrel of oil worth of power per month, you'd need around 10 kW of solar panels, which will cost around ....maybe $35,000 to build. (Then add a few more $k for batteries, controllers, whatever...)

These numbers are super rough, and vary a lot, but just as a general order of magnitude thing, obviously it's better to pay $10 to pump a barrel of oil out of the ground every month than it is to pay $35-40k upfront to build a solar system that generates the same power; it'd take centuries for the solar system to even break even (and it's only going to last decades).

BUT. We're obviously running out of oil in general, and cheap oil in particular, and the cost of solar power is dropping fast. And also, while it would be extremely _expensive_ (today, at least) to switch to solar and other renewables for everything, it's a thing we can do. And by the time we really will have to do it, it may not even be _that_ expensive. And if you factor in the impact of carbon, the numbers start to look more even.

> If it was such a great investment, wouldn't everyone be running to install > it more or less?

A lot of solar _is_ being installed; for a variety of reasons domestic rooftop installations don't tend to make a lot of sense (you didn't have a coal power plant driving a steam turbine in your basement either), but that doesn't mean all solar is un-economical.

But no, it's not an amazing investment yet. But it is _feasible_. The comic essentially suggested that we're squandering our only chance to live beyond the power of human muscles, and that's far from true. And given the cost curve on solar panels, it's not even clear we're being too slow to make the switch.

<comment><USER5> Half that energy will be lost in conversion to electricity, more if used to move a vehicle.

And recent PPAs for solar in that region are closer to 2 cents, which puts then roughly on par and the prices are still moving, in opposite directions. And if you have the sunshine but not the oil then it becomes a no brainer, why rely on another country with a history of manipulating prices to maximise their profit when you can generate your own electricity.

</comment></comment></comment></comment><comment><USER4> The underlying message is good, but the horrifyingly poorly chosen phrasing overshadows it.

<comment><USER6> A lot of that is Bucky's writing style though too.

</comment></comment><comment><USER6> > During a single round-trip from North America to Europe, the plane's jet > engines would burn more energy per passenger than the passengers would be > able to generate with their own muscles over their entire lifespan.</comment>


Shape-shifting robots possible with new phase-changing material - <AUTHOR> http://www.factor-tech.com/robots/morphable-machines-shape-shifting-robots-possible-with-new-phase-changing-material/

<comment><USER2> Perhaps it could be used to give Robert Patrick more than a single facial expression...

<comment><AUTHOR> well, he'd get at least 2: solid stern and liquid stern.</comment></comment>


Google's type-correction contextually understands key placement - <AUTHOR> https://www.google.com/search?hl=en&q=macvim+configuration+aloq

<comment><AUTHOR> For those not sure what they're looking at, with standard US-en qwerty layout, "aloq" is what you get when you type "slow" with your hands accidentally shifted one key to the left.

I found it interesting that Google searches and highlights the intended word, "slow", in the results. But if you just search for .e.g "aloq" by itself [1], it doesn't perform this correction (hence "contextually" in the title).

[1] [https://www.google.com/search?hl=en&q=aloq](https://www.google.com/search?hl=en&q=aloq)</comment>


Introduction to Pyjamas - <AUTHOR> http://www.ibm.com/developerworks/web/library/wa-aj-pyjamas/?ca=drs- <comment><USER2> Several paragraphs in the article read like they were written by a 2nd grader:

"Conversely, Adobe AIR and Silverlight allow Web-style applications to run on the desktop. Android, Adobe AIR, Google Chrome, Safari, and iPhone all use WebKit for rendering. One problem with GWT is that it does not allow you to write applications that run as desktop applications (even though GWT's development toolset for rendering is based on WebKit)."

And:

"When you're ready to deploy your application to the Web, you need to be a bit more careful about what library you include. It is common to use JavaScript Object Notation (JSON)-RPC services from a Pyjamas application running in the browser."

I'd give a blog post a pass, but this is a web property that I assume has an editor and pays authors for their submissions.

Also, pyjamas confuses me because two of GWT's rationales for existence are:

1\. Using static analysis of your code to heavily optimize the resulting Javascript.

2\. Using static language tools (Eclipse, etc.) to maintain order in large codebases

For 1), at Java->Javascript compile time, GWT will inline code, prune dead code, make calls un-polymorphic, and other fancy optimizations driven by the static typing. The goal is to make your Javascript as fast, or likely faster, than it'd be if written by hand.

Similar optimizations can be done these days at runtime by good VMs, e.g. the JVM and V8 (probably?), but the point with GWT is that crappy browsers (IE6-8) don't optimize at runtime, so GWT helps them out and does it at compile time.

For 2), whether or not you buy the assertion that IDEs/static typing make larger codebases easier to maintain, that is nonetheless the GWT team's assertion and something people using GWT generally agree with.

So, if you forgo static typing, and so give up static analysis, and a static tool chain/IDE, why are you not just using Javascript itself?

(Edit: formatting.)

</comment><comment><USER3> How do people decide what language, platform, engine, etc. to use these days? It's articles like this that make me want to give up tech and start working as a musician or artist.

<comment><USER4> You're stuck in the echo-chamber. I tweeted[1] two ideas earlier that you might find relevant:

" _developers need a driving principle, a prime directive: to serve, and enable human creativity, to make tools for domain specialists_ "

Take a step back and be the computing ambassador for a neglected community. If I had the time, I would pen an open letter to all university professors and TAs asking them to tell us about any unsupported software they still use. There is a bucket-load of DOS and Unix software that is no longer maintained, but heavily depended on by academics, researchers, and small businesses. I wish I had the time to port those stuff to modern machines, or at least organize CS department students to write them. There needs to be more cooperation between CS and other departments, specially humanities. We can be their tool-smiths, and they would happily give us insights into other fields of study and other industries.

The other tweet is more juvenile, but you will appreciate the sentiment:

" _Programmers will never have the luxury of collaborating with their idols, or pay homage to them like artists do. Programming != art :-(_ "

P.S. If you just want to escape computing and take a few weeks off, get yourself a book called "Musimathics" and meditate ..

\--

[1] I don't usually tweet ideas, only rants.

<comment><USER5> But is there money in that market? My previous (limited) experience with the academic work showed that there is hardly any money to be made. At least not enough to live off.

As far as getting insights goes, the academics that I worked with had no idea about the industry or even how it works. So any insight coming from them is one better ignored.

I'm mistaken perhaps?

<comment><USER4> There is absolutely no money, but it also costs very little to eye-ball an ancient app, and write a spec for it for ungrads to implement.

The universities usually have all the technical know-how they need to sustain themselves, they just need to talk amongst themselves (department to department, campus to campus, or uni to uni.) If CS students were told to make software for other departments; architecture students were told to design study halls, stages and learning areas; art students were told to beautify school buildings, hold performances, educate, entertain, enlighten, etc. All the university would need is just someone to facilitate the interactions, introduce people to each other, and the rest can be done via Redmine or Basecamp.

Some of the projects are _insanely_ interesting. In Australia, I was offered a non-pay gig to work with sensors in the field, traveling to beautiful beach areas and hacking x86 assembly. Universities can afford room and board, but not much else, sadly.

</comment></comment></comment></comment><comment><USER6> Pyjamas is great fun. I made this silly asteroids game with it a while back: <http://rumsey.org/space/Space.html>

The sound is the only thing that wasn't written completely in Python. It's flash, and it also seems to have broken in my browser since the last time I loaded it. The rest of it still works fine.

<comment><USER7> Thanks for some time well wasted! By the way, the sound works for me using Firefox 3.6.12 on Windows XP.

</comment></comment><comment><USER8> I've been building GWT projects like <http://beste.st/> entirely in Java, so I can share models between my client side code and server side code.

While this way of working is elegant and very powerful, especially when you have lots of shared state and complex server-client interactions, writing everything in Java is quite frankly, a bit of a pain.

This might be a great excuse to finally stop using Java for these sorts of applications and switch to Python.

<comment><USER9> GWT in Scala has made some good progress recently, with parts of the GWT Showcase successfully ported. Unfortunately, the primary developer behind the project is returning to academia, and will have limited time.

Hopefully Google GWT devs can get behind this initiative and make Scala a first class citizen. GWT has gone from being a Java to JavaScript compiler and widget set, to a genuine app framework with the 2.1 release. Having Scala as an alternative to Java would go a long way towards attracting new developers to the Google platform.

In the future, other JVM language may acquire JRibble backends which would theoretically allow you to write GWT apps in any JVM language. Personally I'm very excited about the prospect of one day writing my GWT apps in JRuby or even Clojure!

<comment><USER2> I'd love to see Scala/GWT happen as well.

Given it's much closer to Java (no new type system, etc.), I think it'd actually be easier to get stab/GWT integration:

<http://code.google.com/p/stab-language/>

Though that'd also require someone coming along and building a great IDE for stab.

As far as writing Javascript apps in JRuby/Clojure via GWT...why use GWT? It's so heavily focused on Java/static type analysis, I'd think you'd be able to make a better/easier Ruby->Javascript translation by just starting anew.

The JRuby runtime itself uses reflection/some-day-invokedynamic to shoehorn a dynamic language into a static VM. Besides the fact the JRuby runtime would never get through GWT's no-reflection/nothing-fancy compiler, you're going from ruby dynamic semantics -> Java static semantics -> Javascript dynamic semantics.

Seems simpler to skip the static part. Some sort of Ruby's meta class semantics implemented via Javascript's prototype semantics.

I imagine the same thing applies with clojure, but I don't know as much about it.

</comment></comment></comment><comment><USER10> As far as I can tell, the advantages of using a RIA (rich internet application) toolkit are:

* easier to develop desktop-like web applications

* more straightforward to avoid duplicating client-side and server-side logic

and the disadvantages are

* your page tends to load significantly slower

* your page isn't accessible to people browsing without javascript or disabled folks

* you'll still have to generate html for googlebot, etc.

Things I'm not sure about:

* difference in development time

* whether it's equally easy to integrate real-time functionality when you're using a RIA toolkit

What did I miss?

(other examples of RIA toolkits are <http://www.sproutcore.com/> and <http://cappuccino.org/>. SproutCore is notable for supporting mobile devices unusually well, so I guess that might be a point in its favor?)

<comment><USER11> * page loads are slower: in a web 2.0 app they're also a one-off, and if you want to you can do dynamic loading of modules. it's not that bad, due to HTTP GZ compression.

* pyjamas-web is an experiment to do pure-html, executing the exact same python pyjamas app SERVER-SIDE. disabled folk: wrong. look at GWT accessibility.

* googlebot: not entiiirely correct. look up the (rather stupid "!" referral system that google "invented") - and again, look up "pyjamas-web" experiment.

l.

<comment><USER10> So have you also written apps with Django? How does development time compare?

</comment></comment></comment><comment><USER12> Excellent. More Pyjamas love pls.

I wrote a JSON-RPC controller base class a while ago for Pylons in the hopes it would be added to the core.

Good articles like this give me the fuel to go ahead and crack out that paster template I've been meaning to develop to integrate Pyjamas into Pylons projects.

Although, is it just me or does non-PEP 8 code look funny?

</comment><comment><USER13> Sorry for the meta nature of this comment, but Pyjamas have been in my bookmarks for so long and I never really got the gist of it. With the first paragraph in this article, I finally "got it". This is the kind of golden stuff I love to see in HN, so please keep 'em coming!</comment>


Show HN: Admin UI/Content Manager for Vuepress - <AUTHOR> https://forestry.io/blog/vuepress-support-beta/ <comment><USER2> Forestry Dev here. Getting this working was a blast.

VuePress is so easy to use it's ridiculous. Starting a new site is as simple as running `vuepress dev` on an empty directory. If you're building a simple docs site, it's the quickest option I've seen.

Definitely looking forward to seeing how VuePress evolves.

<comment><USER3> I just recently discovered vuepress looking for a knowledge base solution. Came across Forestry as well so I am really stocked about this news!

My techninal skills being limited, I was wondering if you guys plan on releasing a more standard theme (for documentation rather than portfolio) to work with Forestry out of the box?

</comment></comment><comment><USER4> Love the work you guys are doing!

<comment><USER2> Thanks! :D</comment></comment>