UNIX Load Average Part 1: How It Works - <AUTHOR> http://www.teamquest.com/resources/gunther/display/5/

<comment><USER2> I prefer looking at output of "sar" which shows you nicely, in 10-minute increments, how idle the system was today (and I think usually this data captured is rotated daily for a month), and gives you also a good idea of whether you have processes waiting excessively for IO.

It also has a bunch of other options.

On my own system, I also generally run "ps auwx" every 15 minutes, together with a scan of what queries Postgres servers are doing and dump of web request activity (read last 10k lines from access logs, find out how long ago the first request was to determine rough hits per second and ares of application they hit). That way when someone says "hey, the system was slow around this time" I can go back and find out that some cron job had a dozen processes taking up tons of memory or blocking on IO.

Some of those statistics also go into some RRD-based system which makes it easier to follow e.g. number of users logged in or number of Apache children based on weekday/time of day.

<comment><USER3> sar gets its info from /proc/loadavg (on Linux OSs), just like top and uptime do, which is produced using the same code the article shows.

<comment><USER2> We must be running different versions of sar then, as "sar" by itself here (RHEL 5) shows information about the time split between user/system/waitIO/idle -- that certainly does not come from /proc/loadavg.

If you run "sar -q" you could get the load average information, but that's not particularly useful, as you can't see whether the 20 load avg an hour ago was caused by heavy disk IO or a dozen CPU bound processes.

<comment><USER3> Nope, we're likely running the same version. The particular info you mentioned comes from /proc/stat (you're right that it's a different file), but again it's the same sources as top:

        # lsb_release -d
        Description:    Red Hat Enterprise Linux Server release 5.3 (Tikanga)

        # rpm -qf $(which sar)
        sysstat-7.0.2-3.el5

        # strace /usr/lib64/sa/sa1 1 1 &> results

        # grep open results
        open("/etc/ld.so.cache", O_RDONLY)      = 3
        open("/lib64/libtermcap.so.2", O_RDONLY) = 3
        open("/lib64/libdl.so.2", O_RDONLY)     = 3
        open("/lib64/libc.so.6", O_RDONLY)      = 3
        open("/dev/tty", O_RDWR|O_NONBLOCK)     = 3
        open("/proc/meminfo", O_RDONLY)         = 3
        open("/usr/lib64/sa/sa1", O_RDONLY)     = 3
        open("/etc/ld.so.cache", O_RDONLY)      = 3
        open("/lib64/libc.so.6", O_RDONLY)      = 3
        open("/etc/localtime", O_RDONLY)        = 3
        open("/sys/devices/system/cpu", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3
        open("/proc/tty/driver/serial", O_RDONLY) = 3
        open("/proc/interrupts", O_RDONLY)      = 3
        open("/proc/net/dev", O_RDONLY)         = 3
        open("/proc/diskstats", O_RDONLY)       = 3
        open("/var/log/sa/sa06", O_RDWR|O_APPEND) = 3
        open("/proc/stat", O_RDONLY)            = 4
        open("/proc/meminfo", O_RDONLY)         = 4
        open("/proc/loadavg", O_RDONLY)         = 4
        open("/proc/vmstat", O_RDONLY)          = 4
        open("/proc/sys/fs/dentry-state", O_RDONLY) = 4
        open("/proc/sys/fs/file-nr", O_RDONLY)  = 4
        open("/proc/sys/fs/inode-state", O_RDONLY) = 4
        open("/proc/sys/fs/super-max", O_RDONLY) = -1 ENOENT (No such file or directory)
        open("/proc/sys/fs/dquot-max", O_RDONLY) = -1 ENOENT (No such file or directory)
        open("/proc/sys/kernel/rtsig-max", O_RDONLY) = -1 ENOENT (No such file or directory)
        open("/proc/net/sockstat", O_RDONLY)    = 4
        open("/proc/net/rpc/nfs", O_RDONLY)     = -1 ENOENT (No such file or directory)
        open("/proc/net/rpc/nfsd", O_RDONLY)    = -1 ENOENT (No such file or directory)
        open("/proc/diskstats", O_RDONLY)       = 4
        open("/proc/tty/driver/serial", O_RDONLY) = 4
        open("/proc/interrupts", O_RDONLY)      = 4
        open("/proc/net/dev", O_RDONLY)         = 4

        # strace top -n -b 1 &> results
        # grep open results
        open("/etc/ld.so.cache", O_RDONLY)      = 3
        open("/lib64/libproc-3.2.7.so", O_RDONLY) = 3
        open("/usr/lib64/libncurses.so.5", O_RDONLY) = 3
        open("/lib64/libc.so.6", O_RDONLY)      = 3
        open("/lib64/libdl.so.2", O_RDONLY)     = 3
        open("/proc/stat", O_RDONLY)            = 3
        open("/proc/sys/kernel/pid_max", O_RDONLY) = 3
        open("/etc/toprc", O_RDONLY)            = -1 ENOENT (No such file or directory)
        open("/root/.toprc", O_RDONLY)          = -1 ENOENT (No such file or directory)

</comment></comment></comment></comment><comment><USER4> This is the second or third article I've read explaining load average, and sad to say I still can't explain it.

All I know is that when it's inexplicably over 3-4, you can't determine why as (no processes are using high CPU), and 1 in ten database queries are taking to 5 minutes, under normal load, that day will not be the best of your life. Well, what I've determined is that a full storage device, or overloaded i/o system for your disk, can produce very high load along with accompanying performance of doom.

<comment><USER3> > All I know is that when it's inexplicably over 3-4

Depends on the box. Say you:

a) have an app that spawns worker threads on demand and doesn't have a limit

b) Have a modern, cheap Nehalem X5600 CPU.

2 sockets * 6 cores * 2 threads per socket mean you're only fully realizing the investment when you have a load average of 24 (assuming that each of these cores is 0% idle, which you can tell with eg top).

High IO would show up as high %system time vs %user.

<comment><USER3> 'Threads per socket' should read 'threads per core' (long day).

</comment></comment></comment><comment><USER5> A couple notes:

1\. Load averages are not directly comparable across different versions of Unix's such as FreeBSD, Linux, Solaris, etc.

2\. Load average is a good way to quickly check if there is anything else to look at.

However, a far better series of tools is sar plus iostat , vmstat etc. which should help you more quickly determine whether your problem is CPU, disk, or network IO .

</comment><comment><USER6> So, what about threads? I've seen Linux versions where they all had the same load as the base process, resulting in a huge load in a multi-threaded server application.

<comment><USER7> In Linux, running threads that are shown in 'top' (with thread mode 'H' on) to be in state 'R' or 'D' are counted in the load average. You'll definitely see this in programs with a ton of threads, like MySQL or the Java JVM.

If you're not in thread mode in top, this is why you will sometimes see a process consuming > 100% CPU usage.

</comment></comment><comment><USER8> Unnecessarily rewritten headline.

</comment><comment><USER9> As far as I can tell, this article doesn't mention the most frequent problem people have comprehending high load averages on Linux: the inclusion of processes in uninterruptible sleep. This can result in a system with virtually no CPU load reporting a very high load average. (And, IMHO, makes the load average much less useful a metric than a pure running/run-queue-based method.)

</comment><comment><USER10> Awesome article with great detail and explanation. I've always been curious about how load averages are calculated and what exactly they mean.

<comment><USER7> tl;dr version:

The average number of threads/processes in the run queue and/or blocked on disk i/o sampled at 1, 5, and 15 minutes.

</comment></comment><comment><USER11> How about an article about measuring memory usage?

From what I've read, measuring the actual total memory consumption of an individual process is nontrivial on both Mac OSX and Linux, because of the way the stats are generated for things like ps, top, etc. and the way both kernels share memory between processes whenever possible.

</comment><comment><USER12> My rule of thumb is that the end users of a web application will perceive that the system is "slow" if the 1 minute load average is above 4 on the application or database server.

<comment><USER13> Huh? What if I have a 48 core AMD server? A fully CPU-bound load average of 48 would be great.

Load average can tell you if the system is under-used, but it can't tell you how the system is over-used.

I regularly have a few dual core systems spike to load averages of 50+ because of suboptimal NFS mounts. The NFS issue keeps processes waiting around with nothing to do for a while. Those processes are still counted towards the "load" even though they have no CPU activity (they are blocked on IO).

<comment><USER14> Always divide the load average by the number of cores.

Maybe we should re-define load average, as the old definition divided by the number of cores.</comment></comment></comment>


Did Shutting Down Silk Road Make the World a More Dangerous Place? - <AUTHOR> http://www.theatlantic.com/technology/archive/2013/10/did-shutting-down-the-silk-road-make-the-world-a-more-dangerous-place/280270/ <comment><USER2> Here's a question for the techno-libertarians stepping up to say the government has no right to shut down sites like Silk Road. Where do you derive this supposed natural right for anonymity on the internet? Life, liberty, freedom from discrimination, due process--these things I understand, and there are well supported philosophical frameworks (rule utilitarian, Kantian, libertarian etc.) for deriving them from first principles. I can also understand a society guaranteeing a right to privacy in limited circumstances: crimes affecting children are one obvious example, records of education and medical treatment are another. In each such situation, the benefits, harms and impact on the rights of the public and the individual have been weighed.

But an anonymous free-for-all exchange being a natural right? We aren't born anonymous. In the "state of nature," without government, we are in no way anonymous. The fact that the internet sometimes allows us to be is in fact a very artificial circumstance that society has allowed to happen. Whether we like it or not, governments are ultimately the overseers that permit networking infrastructure comprising the internet to be built. That isn't some natural right any more than building a nuclear weapon in my backyard is a natural right. Society has weighed the pros and cons and decided that this particular set of technologies is on the whole good. That it might in fact want to limit the level of anonymity on the network seems reasonable, in the same way that making people put license plates on their cars is reasonable.

I'm not supporting the idea of a government ID to access the internet (although some first-world countries already require some level of this), or nationwide surveillance a la China or the NSA. Anonymity no doubt has societal benefit, in that it has fostered great works of creativity (from Mark Twain down through Anonymous). Unfortunately, society depends on accountability, and accountability and anonymity are competing principles in the construction of a just society. Neither of them are natural rights on their own.

<comment><USER3> People seem to forget this is just the internet. It's a _communications medium_. Anonymity in communications are certainly not a unique feature of the internet, you can hide your caller id, and a letter will still arrive without a return address. The basic idea being that you can't shoot someone in the face by merely communicating, and I'm pretty sure you can still not commit a violent crime over the internet alone. Communication mediums are the safest thing in the whole wide world.

Your whole intellectual stance from which you approach this topic is off. History is very clear on this: the biggest enemies of justice have been governments and state sponsored entities, every single time. The concept of "natural rights" is motivated by protection against the government.

<comment><USER4> > History is very clear on this: the biggest enemies of justice have been > governments and state sponsored entities, every single time.

If that were true, which it isn't, why did humanity create governments?

<comment><USER5> > why did humanity create governments?

The same reason "humanity" created mafias and gangs -- which is to use violence as a means of economic control.

<comment><USER6> It's as or more reasonable to say that governments evolved out of the need to mediate conflicts between people living in groups.

<comment><USER7> This is also a more reasonable explanation for organized crime, seeing as how criminals cannot rely on the government to mediate criminal disputes.

<comment><USER6> Organized crime has its own internal governance, hence "organized". So that's no different.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> > _Extra-legal violence is often a part of black markets._

Curious turn of phrase. Extra-legal violence meaning "violence outside of the government," which implies that there is intra-legal violence, "violence within the government," which may be referring to how the government coerces its citizens to not transact drugs, by means of violence (that is, the government will arrest/hurt you if you do not comply), and that somehow that is more appropriate or noble.

Also it may be somewhat jokingly implying that the government's violence is "extra legal," meaning "more appropriate with respect to law." I wonder if the author had this is mind when they wrote the article. I don't mean to start a huge libertarian rant about government violence/coercion, only to point out that the sentence could have a clever hidden meaning.

<comment><USER9> While I'm a libertarian, it doesn't require a big political discussion to debate whether the government generally has a monopoly on the legal use of violence. That also doesn't require that "legal" somehow implies "noble" or "appropriate". I guess my point is that the author almost certainly has a libertarian leaning, so I'm not sure that the phrase's meaning was all that hidden.

</comment></comment><comment><USER10> Better to ask, has the war on drugs made the world a more dangerous place?

<comment><USER11> I wonder if there is anyone who believes - really believes - it has not.

The war on drugs is kind of this diorama encapsulation of everything that is wrong with our politics, media, and society.

<comment><USER12> Well. I'm not convinced it did, myself.

If prohibition didn't happen 1920s for the americans, would Al Capone never of being born?

Really these prohibition laws give lowlifes something to fight over, and the fightings dangerous, but who says they wouldn't be fighting anyway?

Does it make life more dangerous. Maybe not.

Does it make it more dangerous for me? Maybe.

edit: Ouch. Looking forward to that rebuttal.

<comment><USER13> > but who says they wouldn't be fighting anyway?

This is a totally fair question. So, let's say, for the sake of argument, that Al Capone's level of violence had nothing to do with his criminal syndicate. He just liked shooting people.

However, shooting people is expensive, especially given that they employed reasonably advanced weapons (sub-machine guns). So, he's not going to get as many bullets when liquor is legal. Also, though Capone is believed to have killed people, far more people were killed on his orders[0]. Without an unregulated and lucrative source of income, it's hard to see him having the money to hire people to kill others.

No one is saying that, absent the drug war, the cartel's enforcers would be in the peace corps. However, the extremely high street price of drugs finances a level of violence that would not exist otherwise. If you want an example, look at the history of Mexico in the last 20 years and compare it to any other nearby country.

[0][http://history1900s.about.com/od/people/a/Al- Capone.htm](http://history1900s.about.com/od/people/a/Al-Capone.htm)

<comment><USER14> Furthermore, while Al Capone could have found other crimes to orchestrate to make himself rich, he wouldn't have been able to perform those crimes _as well as_ liquor smuggling, limiting his supply of cash (lets face it, he was probably doing those things in our history timeline as well as smuggling).

Alternatively, if we suppose some crime that he really did neglect in favor of smuggling, why did he neglect it in favor of smuggling? Because it was not as profitable or carried greater risk (in our history timeline, he was able to manage his risk effectively. He wasn't killed in the act and was only eventually caught for tax evasion. Had he been, say, robbing banks instead, he undoubtedly would not have lasted as long.)

Any way you slice it, prohibition made dealing with Capone worse than it otherwise would have been.

</comment></comment></comment></comment></comment><comment><USER15> One doesn't need to assert any natural rights. Once can make a completely utilitarian case for the decriminalization of controlled substances. In fact, nearly all available evidence points in that direction -- it is increasingly hard in w a world full of data to make the case that criminalizing substance use offers any utilitarian benefits at all. It makes the drug market a more dangerous place, controlled by violence. It destroys the lives and the communities of substance users by incarcerating them for long lengths of time. Etc etc etc. I don't need to lay out all the facts here, they are plain to see for anyone who looks into them.

<comment><USER16> Decriminalization of drugs does not answer the entire question - other illegal commerce was taking place there.

</comment></comment><comment><USER17> Did Silk Road even put a slight dent in street drug sellers in the first place? I would be surprised if street level sellers and buyers are internet savvy enough to use a service like this. SR looks more like the ideal system for savvy college students and young techs to specifically avoid the street level market.

<comment><USER18> Right. Just requiring the use of tor prevented 95% of the population from using SR.

<comment><USER19> I'm not doubting, but why?

<comment><USER20> There were several obstacles to using SR, each of which would have been difficult or frightening to overcome when the alternative is doing transactions in person with cash. You needed to understand TOR (which, while not especially difficult to use in general, is harder than opening Chrome and going to Amazon), you needed to understand and obtain BTC (either mining them or purchasing them, which was generally somewhat difficult given that you couldn't use credit cards or paypal or other simple payment methods), and then you had to figure out PGP for sending your information to the vendor.

It's all definitely doable and none of it really requires much technical knowledge but there's definitely some friction that I assume would intimidate a fair amount of people.

</comment></comment></comment></comment><comment> vezzy-fnord As the article itself said, successor sites are inevitable (and there are at least two that are thriving right now in SR's fallout).

Those who prefer online black markets over physical transactions will simply migrate to the new marketplaces and consequently turn them into the "new Silk Road".

The only true effect, perhaps, will be people taking security even more seriously. I read a statistic at some point that approx. 80% of SR users didn't use PGP (The Daily Dot sources this claim, otherwise I cannot validate it).

<comment><USER21> > 80% of SR users didn't use PGP

I find this to be dubious. How does PGP relate to SR usage? When people communicated with SR vendors, did they use email (where PGP might matter) or did they use the SR software? Did their forum software allow people to sign their posts? How was this information sourced? Was there just an informal poll on their forums?

<comment><USER22> > I find this to be dubious.

I don't. People are lazy and don't want to use PGP because it's confusing and hard. PGP-related questions were some of the most common help problems, on /r/SilkRoad, people would regularly mention not encrypting their address (ranked up there with early finalization for being incredibly frustrating for those of us who knew what we were doing), and the Atlantis CEO stated that like 90% of Atlantis users relied on the Atlantis-provided PGP encryption rather than encrypting it themselves.

> When people communicated with SR vendors, did they use email (where PGP > might matter) or did they use the SR software?

SR had an internal message system, much like Reddit's PMs. You would copy the public key off the vendor's profile page on SR (or possibly from a thread on the forums), you'd ASCII-armored encrypt your address to the public key, and paste it into an address form field during the order process. You'd do the same thing for a regular PM.

> Did their forum software allow people to sign their posts?

Sure: ASCII armor, remember. Any forum which allows you to type in text, allows PGP signing of messages. Few people bothered, except for important statements like from DPR about new rules or .onion addresses or stuff like that.

</comment></comment></comment><comment><USER23> The whole Drug War is a colossal waste of time and resources. Those who choose to indulge in narcotics will continue to do so, despite the legality or accessibility of their preferred substances. Of course, the fact of the matter is that an entire industrial complex has sprung up to wage this "war;" the DEA, weapons and surveillance equipment manufacturers, and many local and national LEO, among countless others. In short, it's a very Big and profitable business. So despite any logic or rationale for maintaining a "safe" venue to conduct narcotics trade, there will always be resistance from the entrenched lobbyists and business interests.

</comment><comment><USER24> If we supplant all street markets for drugs with online ones, will we be trading drug/gang/gun related death with a higher incidence of drug related deaths from overdose/drug abuse?

I'd imagine there would be net less deaths in a world where Silk Roads were allowed to exist. Thats not to say that drugs should be made legal, but we shouldn't wage a 'war' on them. I know drugs aren't safe but the last time I checked, wars aren't either?

And theres no way sites like Silk Road aren't inevitable. Its a more attractive approach to being a street dealer and how many street dealers are there in the world?

I'd imagine in another decade one of the thousands of SR copy cats will have (likely accidentally) made all of the right decisions with respect to anonymity and be the defacto online drug hub.

Reminds of the opening scene of Layer Cake: [http://www.youtube.com/watch?v=A5tzSks5lTI](http://www.youtube.com/watch?v=A5tzSks5lTI)

<comment><USER25> > I know drugs aren't safe

...and keeping them illegal adds to the danger.

Heroin is an unsafe drug, but impure heroin, injected with a needle that has been used and "cleaned" multiple times increases the dangers.

Making sure that heroin is hard to get makes people turn to other drugs. (Because addicts are addicted, and drug addicts take drugs.) One alternative to heroin is the Russian drug krokodil - desomorphine - often made using a variety of weird things.

CAUTION: GRAPHIC IMAGES

([http://www.krokodildrug.com/what-is-krokodil-drug-how-to- sto...](http://www.krokodildrug.com/what-is-krokodil-drug-how-to-stop-abuse/))

EDIT: MORE HORRIFIC IMAGES

([http://www.democracyindistress.com/2011/09/warning- graphic-p...](http://www.democracyindistress.com/2011/09/warning-graphic- photos-krokodil-drug.html)) (apologies for partisan source)

</comment></comment><comment><USER26> Do News Story Headlines Always Have To Ask A Huge Rhetorical Question?

<comment><USER27> I like article titles with rhetorical questions because I don't need to read the article.

<comment><USER28> The answer is always "no", and you can keep doing what you were doing.

</comment></comment></comment><comment><USER29> I think one of the unintended consequences of shutting down Silk Road so publicly will be that the _existence_ of the Tor network is now being advertised to _lots_ of people for the first time.

A _lot_ of regular people are probably now saying, "Wait, I can actually buy drugs online without getting caught or ripped off?"

We'll see if there is another spike in the Tor users after this news cycle: [https://metrics.torproject.org/users.html](https://metrics.torproject.org/users.html)

</comment><comment><USER30> Maybe in some rhetorical sense, but not in any measurable way. Silk Road was enormous for what it was, but it's nowhere near even a tiny fraction of the global drug market. It's probably still tiny compared to the drug market in any large city.

<comment><USER31> Worldwide global drug market is estimated to be around $350B/year. SR did around 1.2B over 2.5 years. So yeah a tiny amount, but a huge amount considering it just started couple years back and needed technical sophistication of bitcoin + tor + pgp to use.

</comment></comment><comment><USER32> Well, I'm sure you're going to be able to buy weed no matter what.

<comment><USER33> Amen to that. Mind if I do a J?

</comment></comment><comment><USER34> The author raises an interesting point, you could easily write a headline that says "Online Black Market The Silk Road Helps Keep More Than One Billion Dollars of Drugs Off Our Streets"

</comment><comment><USER35> Shutting it down certainly didn't help the US Post Office.

Not a silk road user but being able to anonymously contract hitmen (and hitwomen) doesn't seem to make the world safer..

<comment><USER36> Yea, but to honest the Silk Road hitman business is probably like 10,000x smaller than the drug business - maybe more.

<comment><USER12> My understanding is that Silk Road did not have a hitman business. I remember the site laying out explicit rules such that "nothing may be sold that could be used to hurt another human being." I believe that was the phrasing anyway.

I that made sense to me, as it was inline with DPR's philosophies. However, my peers have said he had another site for stuff like that. Maybe they're mistaken? Anyway, I know that stuff wasn't on SR.

<comment><USER37> From Wikipedia:

 _The site 's terms of service had said that they prohibited the sale of "anything who's [sic] purpose is to harm or defraud."[15] This included child pornography, stolen credit cards, assassinations and weapons of mass destruction.[22][25]_

And:

 _A sister site called 'The Armory' sold weapons (primarily guns) during 2012, but was shut down due to a lack of demand.[26][27]_

<comment><USER12> thanks for pointing that out. It seems for a time, the members took it upon themselves to buy and sell guns on the silk road. until it was moved to The Armory, then later shut down.

</comment></comment></comment></comment></comment><comment><USER38> Stupid question and a stupid argument. Buying /selling drugs is illegal, so is buying /selling fake docs etc so why would anyone expect FBI to let such a service operate? Especially when sales numbers reach $1+ Billion and when the owner gives Forbes interviews saying FBI can't catch him?

Let's get back to basics: FBI is supposed to enforce the laws. They do have some leeway in prioritizing, but a $1.2 Billion market is way too big not to attract enforcement.

Now about the war on drugs...

<comment><USER39> I think you've possibly misinterpreted the argument the author is making. My interpretation wasn't that he was being critical of the FBI for shutting it down; of course they had to shut it down. Rather, the criticism is of the laws and policies that are in place which dictate that the FBI had to shut it down in the first place.

As the article notes, law enforcement has been given a "hopeless task", where if you subscribe to the view that Silk Road actually made buying and selling drugs safer (as I do), shutting it down has made the whole business less safe at direct risks to citizens of many countries. As you note, the FBI had to do this, but it's a huge indictment of our drug policy that this is the action they are compelled to take given the result.

Which brings us back to the war on drugs...

<comment><USER38> _Silk Road actually made buying and selling drugs safer (as I do), shutting it down has made the whole business less safe at direct risks to citizens of many countries_

I got his point correctly, that's why I said it isn't up to the FBI to choose a safer way for people to buy/sell drugs. That it's not their mission. Congress of course can change the laws

<comment><USER19> I think you, GP, and the author are in violent agreement. All three of you, in my understanding, have made the same point.</comment></comment></comment></comment>


Launch HN: CoWop – Remote CoWorking Members' Club - <AUTHOR> Hi HN,
After working remotely for 7 years and seeing more people struggle with how socially isolating it was, I created a Remote CoWorking Members' Club called CoWop (https://cowop.org).
I wanted to get the best parts about when I was in the office: the team, the culture, the collaboration and space, with the best parts about remote work.
I'd love to know your thoughts about it :) <comment><USER2> Feels like you're getting rid of one of the greatest parts of remote work - working from home in solitude without the distractions of open working spaces.

If I wanted to work around others, I'd just go rent a desk at a shared working space. I don't see the value added by this 'club'. Please explain.

<comment><AUTHOR> Thanks for your thoughts. So there's a few parts, one being in a place where shared working space isn't available as Dmitri mentioned.

The main thing is that you can virtually CoWork with pairing and roundtables with other remote workers. This is when you're working remotely to have someone to chat with or bounce ideas off of.

The other part is space, for which you have access to several workspaces from coworking to coffee shops to restaurants.

Hope that makes sense :)</comment></comment>


Too little, too late: Blockbuster gives up on trying to beat Netflix - <AUTHOR> http://arstechnica.com/business/2012/10/too-little-too-late-blockbuster-gives-up-on-trying-to-beat-netflix/ <comment><USER2> Too bad, I used to work for them.

They made some major blunders (No Late Fees), you don't drop 30 to 40% percent of your revenue with no plan to replace it.

Should have launched the mail service much sooner, with 9000 thousand stores and a few mailing centers turn around time on mailings could have been comparable or better than netflix.

Rental kiosk with $ 0.99 rentals where not a problem, the fact that they did not have a Blockbuster logo on them was the problem. I don't even remember how many years it took Blockbuster and NCR to design and build a comparable machine.

When it was obvious that Netflix and Redbox were going to be successful there where still other national and regional video rental changes, I think Blockbuster could have bought both without any problems.

IMO opinion of course. I liked the job, it was fun.</comment>


Fuzzing Like It's 1989 - <AUTHOR> https://blog.trailofbits.com/2018/12/31/fuzzing-like-its-1989/ <comment><USER2> Author here.

The predictions and insights from the two papers were fascinating to read with 30 years of hindsight.

I also ran the random input generating "fuzz" tool against everything in /usr/bin (after some very minor fixes to get fuzz to build using ANSI C89). I can post the results later if there is interest.

<comment><USER3> I'd be interested. The two still offending tools (spell and f77) sound super rarely used these days. I think it's fair to compare samples of commonly used tools in 1995 with samples of commonly used tools in 2018 even if those samples are widely different. This would be more related to the change in the probability that an average user sees a crash.

<comment><USER2> This was on Ubuntu 14.04 -- I know 14.04 is dated, but its the last image I had running from the previous tests :).

I wrote some stupidly simple bash to just pipe output of fuzz to every executable in /usr/bin/, with a 10 second timeout. This was only meant as a quick experiment, so there was no consideration of proper arguments (e.g. some applications may only read files and not stdin).

The following applications produced a core dump:

      /usr/bin/icontopbm
      /usr/bin/pnmmontage
      /usr/bin/pnmpsnr
      /usr/bin/rletopnm
      /usr/bin/nslookup
      /usr/bin/aleph
      /usr/bin/acpi_listen
      /usr/bin/info
      /usr/bin/xetex

<comment><USER4> Is nslookup from bind9 or some other package? I think ISC might be interested in fixing the crash.

</comment></comment></comment></comment><comment> dane-pgp The Debian discussion for the ul/glibc issue:

[https://lists.debian.org/debian- glibc/2016/09/msg00177.html](https://lists.debian.org/debian- glibc/2016/09/msg00177.html)

mentions this bug:

[https://sourceware.org/bugzilla/show_bug.cgi?id=20632](https://sourceware.org/bugzilla/show_bug.cgi?id=20632)

"This seems quite exploitable to me: we end up overwriting a function pointer that malloc invokes. If an attacker can invoke the process with stderr closed (easy to do from a shell), and can control what text the process outputs to stderr, the attacker can execute arbitrary code."

If that's true, I can't help wondering if an exploit for this is already sitting in some blackhat's tool box somewhere.

</comment><comment><USER5> The real bomb-shell here that I find terrifying, is that there is still an open and (likely) exploitable bug in glibc that has been around for years and isn't getting attention. glibc is _everywhere_ and used by almost _everything_. If you program in almost any modern language like ruby, node.js, python, java, C, C++, or more, you are calling functions in glibc.

Note: Unless you use an alternative libc implementation such as musl, which is standard on things like Alpine Linux for example. However glibc is by far most common.

<comment><USER6> Golang infamously tried to not use libc at all and just use the kernel syscalls by itself. I think they now do use some stuff from glibc? Or maybe they only use the libc on OSes where the kernel interface is not stable, like Windows?

Also, I don't know how much of glibc is used by openjdk, but potentially not a lot because the jvm wants to behave the same on all platforms, so they don't want to rely on behaviors of the libc.

<comment><USER7> WinAPI for kernel32 is to Windows what libc is to POSIX, approximately. It's a lower level API than a language runtime and is more agnostic to language specifics, but is higher level than a kernel syscall interface.

</comment></comment></comment><comment><USER8> Thanks. I read the Bart Miller papers for professional reasons late last year. It is very, very helpful to read contemporary discussion of this topic.

</comment><comment><USER9> Good article</comment>


What do the green user names mean?  - <AUTHOR> I looked in the FAQ and it says nothing, but I just noticed that some user names are green (both in the home page and in the comments inside links)<p>(for example, http://puu.sh/1C0y)<p>Is it that said users are new? (both the users I saw in green have created < 24 hours, so maybe that's it, but if anyone knows for sure… great :)) <comment><USER2> Green Accounts are for users who are under 5 days old. You can see all their submissions at - <http://news.ycombinator.com/noobstories>

<comment><AUTHOR> Thanks! I didn't know of that url. How did you find it? It doesn't seem to be linked anywhere in the site.

<comment><USER2> I found out via here: <http://news.ycombinator.com/item?id=2434333></comment></comment></comment>


Ask HN - Rate my startup: Struc.to - <AUTHOR>

http://struc.to
After working for a few startups and a few years as a freelance web developer, I noticed that I was repeating many of the same tasks all the time.
So I'm building a cloud service where you can define your full data schema, and get a full embeddable form/REST API. We handle the boring business logic.
I'm going to have the developer-ready beta in the next couple weeks, but the idea + landing page alone is starting to receive some traction. Would love to hear your thoughts! <comment><USER2> So just going to put this out there...

Initial thought #1 -- How can we rate your startup if all you have is a landing page? It's a good way to generate interest, but I can hardly rate anything that I can't, well, use.

Thought #2 -- Wufoo? As part of the marketing-for-dummies crash course, think "why me, why us, why now" when addressing your customers. Why me: because I need forms, why you? Because you provide forms... which Wufoo also does (your target market is likely aware of them, so you'd prolly need to differentiate directly, think the "iDon't" campaign from VZW) and why now: I can't use your service, so I definitely don't need it now.

Also, you have "watch the video" which might have made me watch, but that's a dead link. Right now, in my mind, you're suffering from over promise and under deliver, even with your slickly designed site, which does show some promise.

<comment><AUTHOR> Randall - Thanks for your thoughts -

1) Right now I'm looking for impressions on the landing page + idea. Right now that's the MVP that I'm pushing, to gauge interest on. 2) Yes, differentiation is important. I love Wufoo and its great for non-developers to easily create contact forms and such - this is a more powerful service for full web applications. 3) Fixed the video link. Apologies.

</comment></comment><comment><USER3> This seems like django with a prettier interface. As a developer, I can see the value of something like this to get something simple off the ground quick. However, in my experience, projects become complex enough to warrant actual programming in a real language sooner rather than later. Given that I'm a developer, I would not use this because I'd be better off using django/rails which will only be a little bit slower but far more flexible down the road.

The branding and graphic design are really good. Did you do it yourself, or did you hire someone? If so, who?

<comment><AUTHOR> rguzman - I appreciate your response! Send me a message at email@example.com and I'll happily refer you to my partner who did the design!

</comment></comment><comment><USER4> I think I get the idea but I wouldn't trust any critical information (esp. user info) with a 3rd party, at least other than my host. If this product is supposed to be like Wufoo that's fine, but if it's meant to replace the primary database used in your web application then I don't think this is viable. I'm sure latency will be an issue, as well as security and privacy.

<comment><AUTHOR> This is a cloud service, so a developer would have to be comfortable relying on external services, including data storage. As this is becoming a trend among developers, there is more comfort with having your infrastructure external.

<comment><USER4> Another fear I have is that you could change your terms or your prices at any time and I'd be stuck, as all of my user data would be on your machines (unless of course I could export them). Personally, I'd rather have full control over my database, though I'm sure a few others would be OK with this setup.

<comment><AUTHOR> mdolon - I completely understand where you are coming from - having been in that situation myself many times. Being a developer, I am planning to have this completely open - download your data at any time, either via REST APIs or a full export.

</comment></comment></comment></comment><comment><USER5> Clikable: <http://struc.to>

</comment><comment><USER6> Initial thought:

\- Dead links everywhere.

\- Content below > flying robot.

\- Code or it didn't happen.

</comment><comment><USER7> I am not a developer so I can't comment on the usefulness of your idea.

I can, however, tell you that the landing page didn't really offer a picture of what the software does and the video is a bit out of the way. I would suggest adding a shot of how the software makes code simpler or an example form or an example API call or something along those lines!

<comment><AUTHOR> Thanks, I appreciate that feedback!

</comment></comment><comment><USER8> Glad to see a DC based startup! You should join the HN Readers of DC Meetup group (if you haven't already). We just had a meetup last night where a bunch of startups gave elevator pitches and got feedback. Would love to have you pitch Struc.to at a future meetup. Apart from good feedback, you will likely get a few beta users as a result.

<http://www.meetup.com/Hacker-News-NOVA-DC>

</comment><comment><USER9> Sounds good. I need some web application but I won't do it precisely because it will be a nightmare to set up a webserver, data backend etc. etc. all the crap required for web development. I will never use a web framework because they are all too complicated. IMHO If you build something very simple to use and minimal, it will get some traction.

Zillions of web startups but the web development problem is yet to be solved.

<comment><AUTHOR> Thank you, I appreciate it!

</comment></comment><comment><USER10> If you're aiming at _developers_ , I can say that as one, I'd _much_ rather have control over my own data on my own hardware, however nice the tools are. That said, having your tool generate out a full running app which I can then install and build on would be great. Build in structo, then output for Django, Rails, ZendFramework, Grails, ASP.NET MVC, etc.

I would pay a per-use fee for something like that - the 'per use' meaning the generation of the code in whatever framework format I wanted. It's going to save me a fair amount of setup boilerplate time, and I can then take it and continue to do whatever custom integration and extension work that I need to do.

Let me design out the conceptual app I want as a non-developer, then find someone who can implement my project. I can give that person/team a starter kit with my core app fleshed out in whatever tech they're comfortable with, and they can take it from there.

As nice as those frameworks are above, there's not a true drag/drop interface for the bulk of the mundane project setup work (well, possibly for the .NET side of things).

</comment><comment><USER11> >You can now rest easy, as you don't have to worry about scaling your database, thats on us

that's _

</comment><comment><USER12> so, at the risk of sounding facetious it's like hosted scaffolding?

</comment><comment><USER13> I know you're looking for more than proofreading feedback, but I just wanted to make you aware of a small typo on the main page.

Just above the email input box, it says this text: "Get in our our beta service." I'm guessing you didn't deliberately put "our" twice! :)

Now on to some real feedback! I'm super excited to give this service a try. It will certainly take the monotony out of many projects and allow my brain to focus on innovation rather than repetition. Thumbs up!

</comment><comment><USER14> I'm not a dev, so most of this is over my head. +1 for using Ridonkulous and the design itself looks great.

</comment><comment><USER15> I don't think this solves a problem any developer has. It's fairly trivial to process web forms.

<comment><USER15> On a more constructive note, you're better off providing a service like this to non-developers. It's a much bigger market and the product has already been validated by startups like wufoo.com

</comment></comment><comment><USER16> The link to the video just goes to the home page (at least for me using Safari on my Mac)

<comment><AUTHOR> Thanks - had a small bug pop up! Fixed that.</comment></comment>


Ronnie Nader: Ecuador's One-Man Space Program - <AUTHOR> http://spectrum.ieee.org/aerospace/space-flight/ronnie-nader-ecuadors-oneman-space-program#.VqAEJMipnzs.hackernews <comment><USER2> _Of course, Nader is not really alone. The Ecuadorian Civilian Space Agency (EXA), which he founded in Guayaquil in 2007, counts on about a dozen other engineers, and despite its name, it is partly owned by the Ecuadorian Air Force._

Makes a good headline though.</comment>


Ask HN: What is color of walls where you do your development? - <AUTHOR>

<comment><USER2> Green, red, blue, yellow with some white.... (I work for eBay)</comment>


Half of Older Americans Have Nothing in Retirement Savings - sahin-boydas https://www.bloomberg.com/news/articles/2019-03-26/almost-half-of-older-americans-have-zero-in-retirement-savings <comment><AUTHOR> There is a strong need for financial education.

There is a small minority of Americans who won't have any retirement savings due to catastrophic illness, or a lifetime of inability to get a good paying job, or some other factor. But this number should be very small. Everybody else should be able to accumlate money for retirement.

To save for retirement takes discipline and means forgoing things today to save for tomorrow. The benefits of saving for retirement must be indelibly impressed into people's minds for this to happen.

<comment><USER2> Is it really more education or a lack of impulse control to go out and buy the latest greatest phone every two years?!

<comment><USER3> Do you have a family Barney? I find the run rate costs of raising a family are astounding even with a very healthy two incomes. It doesn't shock me that most households barely scrape by at the end of the month without any reserves to save.

<comment><USER4> Out of curiosity, and I don't have a family, what are your costs?

I suspect you can support a family pretty cheapily. The problem is everyone wants to "do everything possible" for their kids -- pay for the best child care, the best schools (or housing in a good school district), clothes and phones to keep up with the Jones' kids, $500k to bribe your way into USC, college tuition, etc. Yes, that all adds up, but I suspect you can also allocate an appropriate percentage of your income to retirement and just pay less for some of those things.

<comment><USER5> Adding our kid to our health insurance (through employer) added $300 a month. Trying to be responsible and saving for college adds $100 a month.

Kid is too young to stay at home by himself and we don't live by family. So we pay for before/after care (school hours are from 9-3:30). This is astonishingly $600 a month, a relatively cheap option around here (there's cheaper but not by much).

</comment></comment></comment></comment></comment><comment><USER6> Does America has Social Security where the elderly get something?

<comment><USER7> Yes. But how much you get depends on how much you paid in during your working years, as well as what age you retire at.

<comment><USER6> I think that's pension.

What I mean is when person don't have eugh pension to live with, do they beg on the street corner?

<comment><USER2> It's not pension. Everyone with an income pays into social security and how much is stated on your pay statement. Companies opted to replace pensions with a 401k so once the worker leaves the company, they are no longer required to pay more into it (correct me on this if I'm wrong). The 401k is market based so there's risk involved whereas a pension was guaranteed but even that is now based on the market so during the 2008 market issues, even pensions saw a dip in value (pension funds).

<comment><USER8> Pensions are not always guaranteed if the company goes under, they're also often incredibly mismanaged. Everyone should be moved to 401k, particularly the public sector which is wreaking havoc across state budgets

<comment><USER9> 401k plans have huge society inefficiencies. If someone dies early, the 2 or 3 million they save up in a 401k plan is wasted. Pension plans can capture that inefficiency and provide superior value over 401k plans as a result.

Annuities try to bridge the gap. But I admit that I don't know too much about them.

Stocks and stuff are nice. But what happens if you die early or outlive your savings? At an individual level, you cannot plan such a thing. But a decent annuity company can provide value by smoothing out that kind of variance.

Pensions were a combination of stock plans + annuities. The main issue with Pensions is that people live a LOT longer today than they used to 40 years ago: medicine has gotten much better. So most pension plans (including Social Security) have underestimated how much they need to pay out.

"Fortunately", the American life expectancy is dropping due to the opioid crisis. So maybe things will be a bit better for pensions / annuities / Social Security than we expected just 5 years ago.

<comment><USER4> The 2 or 3 million? I think I read recently that less than 10% have a million, 2 or 3 million is 1% territory. And if someone does save that and dies early, how is that 'wasted' if it goes to support their family?

Annuities can 100% bridge the gap. The problem is most Americans are financially illiterate, this stuff (401ks, annuities, how much to save) is too complicated for them and most people are too impulsive and consumerist to save enough.

So 401ks/annuities are better on a societal level assuming prudent savvy employees, which is a completely false assumption.

<comment><USER9> > The 2 or 3 million? I think I read recently that less than 10% have a > million, 2 or 3 million is 1% territory. And if someone does save that and > dies early, how is that 'wasted' if it goes to support their family?

In particular, it could have gone back to their family sooner. IE: Leaving money in your 401k plan means NOT paying for your kid's college tuition with that money (or their house, or their first car, or their wedding)

Sure, maybe the kid will get a giant payout when they're 30 or 40 years old. But by then, their lives are probably established and they don't really need the windfall. And they only get that windfall if you die.

> Annuities can 100% bridge the gap.

Annuities have the same failure mode as pension plans: if they fail, then no one gets the money they were promised. When comparing 401k plans vs Pension Plans, its definitely a factor to consider.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> So... what are they going to do?

</comment><comment><USER11> It is clear to me that 2020 or later there will be a more socialist America, whether the Americans like it or not. And that could be good for America.

<comment><USER12> > It is clear to me that 2020 or later there will be a more socialist America, > whether the Americans like it or not. And that could be good for America.

I'm not entirely sure. We (I'm American) have an attitude of what befalls a person is because of the decisions they made. We have a very "pull yourself up by your bootstraps" and anything that costs one person money to help another is a non-starter. Look at the Affordable Care Act right now. America is an individualistic society.

<comment><USER13> > We have a very "pull yourself up by your bootstraps" and anything that costs > one person money to help another is a non-starter.

And yet there seems to be actual political risk and difficulty to simply repealing the ACA in its entirety without a replacement... because as bad as the ACA is in practice, in _theory_ many Americans want it, or something like it, and do not in fact want healthcare to be left entirely to the free market.

The attitude and outlook you describe certainly exists, but don't conflate the ideology of a single political party to the status of general American culture. We're not all libertarian minarchists and cowboys.

And for such an "individualistic" society, we sure do have a lot of socialism already, such as food stamps, school lunches (hell, public schools themselves) federal student loans, Medicare, Medicaid and Social Security, the GI bill, farm subsidies, public libraries, etc.

I don't think it's as unlikely as you do. The system is starting to fail for a lot of people. We've already seen the regressive populist shift, in response, and a progressive socialist shift is inevitable. Trump _won_ but don't discount how popular Bernie Sanders actually was.

<comment><USER12> Personally, I do hope you are right and that the direction this country is moving toward a more egalitarian society where a pre-existing condition doesn't mean a death sentence and that we have social programs in place in order to support a base level of retirement. Yet I also fear that me living in a liberal, leftist bubble (living in Boston, working with Democratic candidates, working in tech) prevents me from seeing what other people feel and think. Watching Fox News or Tucker Carlson opens one's eyes about what kind of "news" other people are ingesting.

<comment><USER13> Trump may have won the election, but a lot of people supported Bernie Sanders as well. And the blowback the Republicans got from their own constituents after trying and failing to sell a repeal of the ACA happened, mostly, because no one but the independently wealthy and corporate interests wants to see it replaced with nothing but the free market.

And when Republicans don't even trust Republicans with healthcare, it suggests a massive failure of messaging on their part.</comment></comment></comment></comment></comment>


The Lost Opportunity: Our Education System - <AUTHOR> http://blog.sokanu.com/the-lost-opportunity-our-education-system <comment><USER2> "The Purpose Of Education" - He left out "babysitter" as one of the purposes. Another purpose of education is to babysit children, teach them that they are a number and to blindly follow authority without question. If they happen to pick up some math or reading along the way that is nice too.

<comment><AUTHOR> I can see why you say this, it seems to be that way in a lot of cases. This is most likely the fault of the system though. Students wouldn't be that bad if they were taught properly from the beginning.

</comment></comment><comment><USER3> I agree with the general premise of the article (that school's purpose should be to help children become adults who know their talents (and have talents)), and will ignore the notion of "discovering" purpose (as acknowledging it requires that we discuss whether purposes are created or found, which I don't care to discuss beyond this cursory treatment).

However, the pragmatics of it all are quite a bit messier.

Helping each individual student discover his/her individual talents and skills and passions requires that we restructure schools almost entirely.

1) The current system of 22+ students per class means that, in a 50 minute class period, each student can get a maximum of just over 2 minutes of personalized time, assuming a minimum of time wasted. Over the course of a school year (180 days), this works out to be about 6 hours. Hardly enough time for direct individual feedback or for solid relationships.

(I understand that there is a lot more to it than simple contact time, and also that small groups can be more efficient than 1-on-1 interaction). If all you are doing is lecturing, it does not matter how many people are in a room so long as their behavior is not disruptive (or so long as their behavior can be controlled). If you are hoping to deal with their ideas, though, there is a definite point beyond which it's impossible to do much meaningful work.

2) The school system, as it is, is mostly designed to get as many kids through as possible. Again, individualization plays only a cursory role, typically only with students who are "exceptionalities" (read: who have IEPs). Not the environment needed for the type of learning the author describes.

3) In order for the changes the author wants to see happen to actually happen, students (and teachers) will need a lot more autonomy. This means freedom to set one's own schedule to at least some amount, freedom to at least somewhat choose one's own learning, and access to all types of competent and caring adults and older peers who can help guide the student.

Personally, I'd love it if a student who was very talented in music was able to spend 4 or 5 hours a day practicing and learning those skills, and the other 3-4 hours per day doing the other bits of learning necessary to be a competent adult (literacy, numeracy, scientific and historical thinking, and so on, as well as reflective and metacognitive thinking).

Conclusion: the current system was built by people who see students as points of data and entries in a gradebook, and needs to be rehauled dramatically to provide the freedom and opportunity necessary for the type of individualized teaching the author suggests.

<comment><USER4> I agree with you mostly.

On point 1: I don't think there is much that is more important than personalized time. I don't think 2 minutes of 1-on-1 time a day is ideal, though it's 100x better than what we have now. Something better may be if each week a teacher spends 10-15 minutes of quality time with each student, rotating who to spend time with from week to week. Still, naturally we need to try to have less students per classroom.

On point 3: Ideally there would be more autonomy, though as a first step to be significantly more successful, some slight bending of rules would do mounds.

On your conclusion and mine: I believe a major re-education of teachers would solve a lot of the issues. Most teachers think their main job is transferring knowledge in whatever subject they teach. However, in today's world where practically all knowledge is freely available, that job has been mostly taken care of. I believe a teacher's role is being a mentor for each student - assisting each student in discovering the world and their respective subject, inspiring them, freeing their minds, passing on curiosity and intrigue.

<comment><AUTHOR> Very interesting how you see the role of the teacher. I never thought of it that way, but it's so true. With "free" learning available anywhere, their jobs are more to do with mentoring and less with transferring knowledge.

</comment></comment></comment><comment><USER5> I feel that we do need to reward the "good" teachers a lot better than what is currently common practice. Having two close relatives that are teachers I hear firsthand the struggles they deal with just to be teachers. Sometimes it is hard to imagine why anyone would ever want to go into that field, but knowing these people the way I do I know that it is their true desire to be there and to do everything within their ability to be good teachers to our children. So why wouldn't we want to reward them for taking on such a huge and important responsibility of educating our children.

</comment><comment><USER6> I would like to see high school having an optional two-year extension. During those two years teach students skills they are likely to use and start earning a living. Then let them now go and start making money.

A few years down the line, when they have figured what they really want to do, they can go an enroll and pursue advanced studies.

As of now I can spend lots of time learning and understanding history. When I was 19, I was just not interested in history, geography, medicine etc...

<comment><USER4> My understanding is that Quebec has a system not unlike what you describe with the extra 2 years.

About your point of going back to pursue advanced studies - the problem there is that most people end up not going back once they've stopped, even if their intent is to return. This once again though is a matter of having them truly understand the benefits.

<comment><USER6> Sorry for the late reply. I have not configured my Notifo correctly.

I respectfully disagree. Lots of us here cut back on our working hours, or quit our job to go start companies. That is because we feel we have a fall back plan which is the experience and knowledge we have acquired on the job.

<comment><USER4> I'm confused. What do you disagree with?

</comment></comment></comment></comment><comment><USER7> Premise: _learning is fun._ Premise: _school children are bored._ Conclusion: _learning is not taking place in schools._

This seems as true now as it has ever been. The belief that schools can be fixed is one of the main reasons people become teachers and why the existence of schools will drag on for at least another half century.

<comment><USER3> I worked with a teacher a few years back who would repeat the mantra "Learning is not fun. Learning is never fun. The only time you can have fun is after you are done learning."

But you're right; honest engagement with a discipline is a brilliant combination of fun and frustrating (and more importantly: the right kind of frustrating).

<comment><USER8> I beg to differ: struggling to learn is not fun, practice and homework are not fun, learning something that seems pointless is not fun.

Learning without the above constraints is fun.

</comment></comment></comment><comment><USER9> It's about time this topic get the attention it needs and deserves. And I am glad to see so many people take interest. I hope this article will turn some heads. Very timely with new Waiting for Superman movie. If you don't know what I am talking about, you need to read this post.

<comment><USER10> I'm totally with you about being excited that the topic is getting the attention it deserves - if enough people are turning heads, lending a dollar and a hand, maybe we can fix the problems with our education system.

However, the hardest part about giving a lot of attention to a topic is that people who are not authorities on the subject end up with opinions about what's going on, purely based on the media or the propaganda campaigns of the bigger players.

Even in examining my own perspective, I find myself dramatically in favor of destroying the teacher's union, expanding school hours and curricula, and providing more freedom to the students, so that they can engage themselves in the subject that most interests them and appeals to their strengths. Sounds idyllic, doesn't it?

But the problem with this is that I'm not an educator. I don't know what conditions are like and I don't know what the real challenges are - I just know what I'm being told by the media. Just as in a startup, we have a lot of potentially unproven hypotheses that need testing.

This then to me is the real promise of the charter school movement - not that all of them are successful (most are not - even the ones featured aren't nearly as great as they seem, as I'm finding out from working with them), but that they represent the freedom to try new things, measure them, and figure out what does work.

What scares me is that people think they have the silver bullet, rather than the silver hypothesis. Even in making these drastic changes, if no improvement is wrought, then what? Will people give up? Or pivot?

</comment></comment><comment><USER11> Our education system needs a facelift! And this is a great post. More people need to recognize what is said in this article. Very interesting read.</comment>


Technology Review's smartest company of the year - <AUTHOR> http://www.technologyreview.com/featuredstory/524531/why-illumina-is-no-1/

<comment><AUTHOR> And no, I don't work for them :)</comment>


What does it mean for light to be stopped or stored? - <AUTHOR> http://www.askamathematician.com/2013/07/q-what-does-it-mean-for-light-to-be-stopped-or-stored/ <comment><USER2> I think that was the easiest to understand/intro to quantam information handling that I have read.

I also enjoyed how they went from: Heinze, Hubrich, and Halfmann -> H and H and H -> the three H's. I kind of expected it to go to "triple H"

<comment><USER3> H^3 perhaps. There is a precedent. The Lenstra-Lenstra-Lovasz algorithm (LLL) is often called L^3, admittedly because the complexity is O(L^3) in the bit size L. Later a quadratic algorithm was discovered, cheekily called the L^2 algorithm. Later still it was done in quasilinear time. Unfortunately, the authors of those papers did not have the sense to have names starting with L.

<comment><AUTHOR> I was unaware of an L^2 (or better) algorithm - can you provide a reference? Even just a term to search for - my Search-fu is failing.

Thanks.

 _Added in edit:_

OK, I've found these - hoping I'm on the right track:

        1982    LLL    Lenstra Lenstra Lovász
        1987    BKZ    Block Korkine Zolotarev
        2002    RSR    Random Sampling Reduction
        2002    PDR    Primal Dual Reduction

</comment></comment></comment><comment><USER4> I've tried to read the paper (note IANP, I'm not a physicist) and some additional descriptions, remembering what I've read in Feynman lectures. The principles really sound like reading about the DRAM (with the pulses to write, to read and to "refresh" the content of memory) but with photons in the input and output instead of the electrons. Inside of the crystal, it's the electrons that get to move to higher levels when the photons hit the atom they orbit and then to the lower level emitting the photons out. That's how a plain glass window works. The difference is that the researchers add carefully controlled electromagnetic (light is also electromagnetic emission) signals (additional controlling inputs and outputs) which gives them the possibility to "write" at one point in time and "read" sometime later the same "image." The new achievement is that they reach 40 seconds or more between the write and read, which is a new record. There's even some application of genetic algorithms described in the paper used for preparing the conditions to make such write and read possible:

 _The loop starts with a random set (''generation'') of preparation pulses (''genetic individuals''). Each individual is described by a temporal array of intensity and frequency values (''genes''). The self-learning loop applies the pulses for EIT and determines the individuals with the highest fitness, i.e., the best light storage efficiency. The next generation is built by imitating concepts of evolutionary biology: The best individuals are copied into the next generation (cloning). Other good individuals are modified by variations of their genes (mutation) or combination with other fit individuals (inheritance). The loop goes through several hundred generations, until the gene sequences (i.e., pulse shapes) converge toward an optimum. Figure 3 shows the progress of the self-learning loop, i.e., the increase of signal pulse energy after light storage vs number of completed generations. As expected, the fitness increases monotonically with the generations._

I'd appreciate comments from anybody who knows and understands more.

</comment><comment><USER5> An actually readable explanation that can be understood. However, it seems to me that the actual accomplishment, as the author mentioned, is our newly acquired ability of "storing quantum information" and not actually "stopping light". I like the "H's" references...how interesting that they all have H last names - perhaps there is a German stat of last names starting with H.

<comment><USER6> The article discusses at the outset that the distinction between "storing info" and "stopping light" is subtle, I not nonexistent in this case. When light travels through a material, one can treat it either at a macro level of a light wave slowing down, or at a micro level of light travelling at vacuum speed but being continuously absorbed and re-emitted. The former is a much simpler picture and captures the essence of what is happening. So, if you use a material (as H^3 have done) in which the effective speed becomes vanishingly small, this is "stopping light" in the only sense one can talk about.

</comment></comment><comment><USER7> What I wonder is if this could be used to bridge across decoherence.

Current problem: a quantum system is used to do a calculation, but it decoheres to fast to be useful, or to scale.

Possible solution: do part of a calculation, shove the result in one of these light storage thingies, decohere, reboot and re-establish coherence, feed in result from light storage thingy, continue calculating.

<comment><USER8> Are you saying the light would somehow allow you to easily reconstruct the lost state of the quantum computer? Or that it's easier to read out and store the quantum state as light than another way?

I don't think either of those things are true, so I don't think this would work to solve that problem.

</comment></comment><comment><USER9> Could it also conceivably be used to store energy?

<comment><USER10> Light is energy, so yes.

A slightly better question might be whether EIT could store energy in amounts large enough to make it useful as a capacitor. At present, this is not likely. This technology is striving towards optical RAM, not caps.

</comment></comment><comment><USER11> Maybe someday we'll have slow glass: [http://en.wikipedia.org/wiki/Slow_light#Slow_light_in_fictio...](http://en.wikipedia.org/wiki/Slow_light#Slow_light_in_fiction)

</comment><comment><USER12> Is this a possible way to store information in quantum computers?

EDIT: Note to self, reading is tech.

<comment><USER13> FTA: "What makes the experiment most exciting is that this experiment has proven to be an extremely long term method for storing quantum information, which has traditionally been a major hurdle. Normally a quantum computer (such as they are) has to get all of its work done in a fraction of a second."

<comment><USER14> Take note, all you commenters who asked "what's the practical value?" when discussing that experiment last week.</comment></comment></comment>


A Farewell to CSS3 Gradients - <AUTHOR> http://designfestival.com/a-farewell-to-css3-gradients/ <comment><USER2> While I agree that SVG is a great approach (and you can even base64 the SVG and inline it in the CSS, if you fancy), an alternative to handle gradients (as well as other vendor-extended css properties) is SASS, LESS or, my favorite, Stylus (<http://learnboost.github.com/stylus/>).

With Stylus and nib (<https://github.com/visionmedia/nib>) I can write:

      background: #eee linear-gradient-image(22px, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%)
      background: linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%)

and get:

      background: #eee url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAWCAYAAAABxvaqAAAABmJLR0QA/wD/AP+gvaeTAAAAJklEQVQImWP49euXMdO3b98YmD5+/MgAYVGZy8zAwCDF9O3bNwYAuKA8teqzKuEAAAAASUVORK5CYII=");
      background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(255,255,255,0.20)), color-stop(1, rgba(0,0,0,0.20)));
      background: -webkit-linear-gradient(top, rgba(255,255,255,0.20) 0%, rgba(0,0,0,0.20) 100%);
      background: -moz-linear-gradient(top, rgba(255,255,255,0.20) 0%, rgba(0,0,0,0.20) 100%);
      background: linear-gradient(top, rgba(255,255,255,0.20) 0%, rgba(0,0,0,0.20) 100%);

First is a fallback for older browsers: It generates a PNG with the gradient, and inlines the base64 representation. Then it creates rules for webkit, moz and css3.

With Stylus' transparent mixins and nib's vendor mixins, I can write `border- radius: 5px` and get support for all browsers. It's really convenient.

<comment><USER3> Nib looks interesting but it's hard to know as there aren't any docs I could find.

For example does it help with border-radius for IE pre-9 or do I still need something like CSS3 PIE for that?

<comment><USER2> If you grok Stylus, nib is pretty self-documenting.

Looking at the vendor support mixins, [https://github.com/visionmedia/nib/blob/master/lib/nib/vendo...](https://github.com/visionmedia/nib/blob/master/lib/nib/vendor.styl), border-radius doesn't employ any specific MS techniques.

You can take a look at the opacity mixin in the same file, which does use a MS filter.

</comment></comment></comment><comment><USER4> I love SVG, my current gripes are:

1\. Patchy support. If you stick to the most common parts of the spec its ok, but there is no comprehensive test suite, and only Microsoft seems to be interested in test coverage. Import stuff that Inkscape can render to a browser and you may get issues. Opera is better than Firefox and Webkit.

2\. No CSS transitions on SVG properties, so it is back to Javascript for animation.

3\. No support in Android 2.x. Or WebOS.

4\. Server side rendering of a fallback image (especially if you use css styling) is a pain. Maybe there are good solutions I havent found yet.

5\. It is a big spec, I feel that some better learning resources would help.

Do love it though...

<comment><USER5> You can animate SVG without JS. <http://en.wikipedia.org/wiki/SVG_animation>

CSS3 has similarly patchy support.

I think the worst thing about SVG is the lack of resources.

<comment><USER4> OK I admit I never tried SMIL, but I believe the browser support is terrible.

The CSS support works in principle, but in fact almost none of the SVG properties can be transitioned in any current browser. I think some of the shared properties like color can be though, but I couldn't get anything useful to work without javascript (and d3.js has nice javascript transition support...)

</comment></comment></comment><comment><USER6> This is the first post I've seen that makes it clear how to use SVG graphics for something useful and attractive in web design. I need to look further into the syntax. Thanks for the post.

<comment><USER4> If you want another use look at d3.js <http://mbostock.github.com/d3/>

</comment></comment><comment><USER7> Comparing CSS3 gradients with SVG is like comparing MS Paint with Adobe Photoshop, of course it seems like SVG is good at gradients but it is overkill. Also, SVG XMLish syntax vs CSS3 gradients syntax, no need to compare them, both are bad, but I'd prefer the later at any time.

<comment><USER8> Define "overkill".

<comment><USER7> It's simple, both SVG and CSS are totally different things, and it's kinda silly to compare them (don't consider my previous comment ^^).

The article simply goes from "Hey, CSS3 gradients are crap" to "look how awesome is SVG at things". Blah and bleh.

I'd sugest to check the wikipedia page or proper documentation for both of those two, you'll get a better definition than I can give.

Cheerio.

</comment></comment></comment><comment><USER9> I've been struggling to come up with a good cross-browser(ish) solution for gradients that doesn't require external images or extra markup, and indeed SVG + CSS3 + IE's filter is the best I've found. It means IE9 (via SVG) renders the page exactly like Chrome, which is great. For IE8 (which has a larger market share than IE9 in our userbase) I had to use IE's filter property in a separate conditional rule so as to not mess with IE9 (for which it breaks border-radius).

Unfortunately, I'd rather not request 10+ svg images, so I chose to embed them in css. That means around 512 bytes per gradient, so around 1K for a button with a mouseover effect. But it's something I can live with (and compress). If you're willing to load external images for linear gradients and don't want the hassle of creating each image by hand, you could build a lightweight server side script to generate the SVG based on url paramters.

There's several IE behaviours out there, of which I found CSS3Pie to be the most complete. It implements border-radius, linear-gradient and more for IE6+. All that warrants a Keanu Reeves-like WOAH, but there's a catch: it's VERY slow.

All in all, unless your userbase is using ancient browsers, go ahead and use CSS3 while make sure older browsers show a degraded, but still useable version. The days CSS advancements were unuseable due IE6 and such being the dominant browsers are pretty much over.

Slightly offtopic, but here's a snippet that I found on last.fm and was blown away by (although it's obvious, I just never thought of doing it):

      <!--[if lt IE 7 ]> <body class="ie ie6"> <![endif]-->
      <!--[if IE 7 ]>    <body class="ie ie7"> <![endif]-->

and so on. Makes for easy conditional CSS rules without the need for separate files.

<comment><USER10> HTML5boilerplate uses those browser conditional statements too, but applies them to the html tag instead of body: <http://html5boilerplate.com/>

      <!DOCTYPE html>
      <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
      <!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
      <!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->
      <!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->
      <!-- Consider adding a manifest.appcache: h5bp.com/d/Offline -->
      <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->

</comment></comment><comment><USER11> This is just trading one tool and syntax for another.

These days it's okay if your site doesn't look the same in every browser.

</comment><comment><USER12> I'd wait to 2012 for pure SVG solutions, considering it's not in Firefox 3.6 (or IE8).

Having just upgraded to 6.0, I respect the wishes of anyone needing to stick with 3.6.x for awhile longer.

Although, there is this <http://code.google.com/p/svgweb/> ( [http://codinginparadise.org/projects/svgweb/samples/demo.htm...](http://codinginparadise.org/projects/svgweb/samples/demo.html) )

<comment><USER13> No offense intended... but I don't understand you, or people like you. The upgraded version is better in every imaginable way. It's like you have a dirty old Honda Civic in your driveway, and someone is offering you a brand new 3 series BMW, for free, with zero effort (and they will even transfer your change out of the driver's console, and swap your radio stations for you).

Is it just laziness, or distrust of "new" code, or something I haven't thought of yet? If you stumbled on a website that required a recent browser, would you actually leave instead of upgrade?

<comment><USER14> Say I take your analogy seriously.

Someone is offering you the BMW for free, but it has different control placement (cruise control is in a different place, climate controls work totally differently, and so forth), and requires more expensive gas. Oh, and you have no money to pay for the gas, and you do a _lot_ of driving and don't want the distraction of learning the new controls on the road. And for your current usage, the Civic works fine.

Oh, and the Civic has better reliability than the BMW. See [http://usnews.rankingsandreviews.com/cars- trucks/Honda_Civic...](http://usnews.rankingsandreviews.com/cars- trucks/Honda_Civic/2011/Reliability/) vs [http://usnews.rankingsandreviews.com/cars- trucks/BMW_3-Serie...](http://usnews.rankingsandreviews.com/cars- trucks/BMW_3-Series/Reliability/)

I can totally understand someone wanting to stick with the Civic instead.

Of course I speak as someone who bought a Civic, precisely because it's a pretty darned good car. ;)

</comment></comment></comment><comment><USER15> Dude needs to google SASS or Stylus if he's considering this a problem. So many other CSS features are only supported by a limited subset of browsers. You have to start treating them like "extras" for the most up-to-date users and gracefully degrade for those who aren't.

The problem is solved with creating great designs and mark-up from the beginning with browser limitations in mind, not addressing limitations during development with some hack.</comment>


A Pure Swift 2 Implementation of MKNetworkKit - <AUTHOR> https://github.com/MugunthKumar/MKNetworkKit-Swift <comment><AUTHOR> Why MKNetworkKit?

Actually, you don't need a networking framework today (post iOS 7). We live in the era of NSURLSession and with networking becoming a core feature of every app, you need to know how to write a good networking stack without using a third party library.

Now, you may ask, So, why are there so many networking frameworks? Almost every iOS developer I know uses one or the other networking library.

Well, that's because, when iOS was introduced, the two frameworks built into the iPhone (iOS) SDK, namely, CFNetwork.framework and NSURLConnection(Foundation.framework) were complicated to understand and use. Though NSURLConnection was easier than CFNetwork it still wasn't easy enough for most developers.

With iOS 7, Apple introduced NSURLSession based networking that blew everything out of water.

Using NSURLSession is super easy to use. Most of today's third party networking frameworks that exist today are built on top of NSURLSession. With deprecation of NSURLConnection in iOS 9 (tvOS 9.0 marks NSURLConnection as unavailable), you don't even need to know the "basics" like NSURLConnection. In fact, NSURLSession is the new "basics". NSURLSession is the class that you should learn, if you are doing networking today.

In my opinion, the only benefits of using a networking framework instead of NSURLSession are

Easier Authentication (www-authenticatebased and client certificate/server trust based) Authentication with NSURLSession still requires delegate handling like NSURLConnection

Multi-part form upload

In addition to the above, MKNetworkKit has the following features.

Queued Requests (Batch a bunch of requests and get notified once they are done) High performance background caching (based on HTTP 1.1 caching specs) built in Fetching remote images are done using extension methods in strings. Just call the loadRemoteImage method on any URL String and get the image in the completion handler. What's more? All these fetched images are automatically cached and you don't need a separate image caching library. Auto network indicator support MKNetworkKit manages the display of status bar network indicator for you. (on iOS only) cURL-able debug lines Fully compatible with application extensions Background image decompression Background completion Full support for NSStreams</comment>


I taught a computer to write like Engadget - <AUTHOR> http://www.engadget.com/2015/12/02/neural-network-journalism-philip-k-dick/ <comment><AUTHOR> Some of my least favorite quotes:

"A single neural network is never going to be able to write news articles with actual sense or meaning." \- why not?

"they're never going to be providing you with an honest opinion of a product" \- and a human reporter is going to be more honest?</comment>


Innovation is almost entirely absent - <AUTHOR> http://www.post-gazette.com/pg/11317/1189262-109-0.stm?cmpid=newspanel

<comment><USER2> I politely disagree. There are a couple of reasons that computers/software have been sources of rapid innovation.

First of all, there's relatively little government disincentive to innovate, but there have been significant government incentives to innovative especially during the Cold War (e.g. ARAPnet, etc).

Second, capital costs and the road to release are generally lower/shorter in software. I think the author makes a good point in mentioning an X prize type challenge - these prizes reduce capital costs slightly, but more importantly by generating publicity the prizes can reduce the road to market.

However, these prizes themselves and even the author's article are an example of the power of the "sexy" social technologies. More people are gaining awareness of x prize type prizes in part because of buzz in online communities. I read this article because it was upvoted on HN. The very social technologies that many people complain are outshining innovation in other realms are creating a worldwide communication/social system that is just now beginning to become the foundation on which other innovations can take place.

The most important pre-requisite to disruptive innovation in a variety of fields is the very innovation in communication that software makes possible.

In short, changing our ways of collecting, organizing, and communicating information is the key to future radical innovations.

</comment><comment><USER3> Another example of a misuse of the phrase "disruptive innovation". The writer marvels at the fact that nearly no venture dough is thrown at the internal combustion engine. But investment in gas-burning engines would be a sustaining, not disruptive, innovation. Hybrid and electric engines are the disruptive innovations here, and plenty of investment is being done in this area.

<comment><USER4> Not to mention the fact that the internal combustion engine, while it might not receive a lot of venture capital, probably has more money going into research and eyeballs on it than most other technologies. Between the various big motor R&D departments, F1 teams, and even backyard tinkering, there are probably not many more-studied problems.

A modern engine might only be about 20-30% efficient compared to it's theoretical output but most of the energy loss is not in the engine, it's in the aerodynamic drag. Second is probably driving outside of the optimal power band: exactly what hybrid technology addresses. This was a bad choice by the author to make an otherwise good point.

</comment></comment><comment><USER5> I like the message - more innovation please. But the article contains some questionable passages. For example:

"Both wind and solar technologies require tremendous capital expenditures before they can be brought to the market and scale up to production. In contrast, a radically improved internal combustion engine could be easily produced with existing industrial capabilities and quickly dropped into the global car production cycle."

This seems to indicate that the author believes that a radical design change could be easily produced. But who's to say that a radical design change wouldn't require radically different capabilities? And as far as I can tell, the ICE has definitely seen improvements in efficiency not only in years where there was government involvement. Sure, it hasn't been "disrupted" with another technology, but that doesn't mean there is no innovation.

And what exactly is a "sexy technology"? How would a radical development in ICEs be less sexy than a radical development in battery tech or solar, or computing?

</comment><comment><USER6> We don't have civilian super-sonic flight or manned space flight anymore. I'd say in some ways we're slipping backwards as far as technological progress is concerned. Progress in energy technology is particularly pathetic. Nuclear energy was discovered in the 30s and no _significant_ new source of power has been developed since (Solar isn't significant).

<comment><USER7> Isn't it possible that manned space flight could be considered "slipping backward"? Unmanned space flight is supposed to be an advance because it doesn't put human life at risk, IOW it's an efficiency.

<comment><USER8> Not to mention if we're ever going to map the galaxy within a mere 200 million years, we'll need autonomous probes capable of making copies of themselves.

</comment></comment></comment><comment><USER9> The state of the art was stuck at a crappy free market local max, where no one was willing to invest in a thing that might pay off later.

Turns out, we all win; someone just had to bite the bullet and fork up the sweetener.

But we really should have smelled an opportunity here. Like the article says, what else are we missing?

<comment><USER10> The article presents it like that, but oil companies actually have a huge incentive to make better faster cheaper cleanup, as they have to pay the cleanup costs. I suspect though they are not really paying enough though to incentivise them, and they should pay higher fines for externalities like spills, eg based on amounts of non recovered oil.

<comment><USER11> They pay nothing close to the cost of the cleanup. Exxon paid less than half of the cost of the Valdez spill, and recovered most of that from insurance claims anyway. They have held up on appeal further damages awarded by the courts for _twenty-two fucking years_. They still haven't paid.

If you think BP is going to pay anything close to the cost of the Deepwater Horizon spill, you really haven't been paying attention. The fact is that buying a stake in the legislature and the courts provides a much better ROI than investing in cleanup technologies.

<comment><USER12> > recovered most of that from insurance claims anyway

Insurance companies don't lose money in the long run, so Exxon paid that money too.

Insurance companies make extra money by charging for more risk than is actually present. One way they can do that is by making certain things a condition of insurability.

</comment></comment></comment></comment><comment><USER13> Is it possible that human beings in "developed nations" are too comfortable to seriously want innovation as a whole? If your basic physical needs as a society are already met, what motivation do you have to develop better technology?

Perhaps a small group of people/organizations are open to the change inherent with technology development/deployment, but a large group likes the status quo because they are uncomfortable with the uncertainty that comes with change that may affect them adversely for the short term. The net result would be that the society as a whole is more sluggish to change in a directed manner. Without an explicit high-level mandate like "Every year, we will spend at least 10% of revenue on R&D in such and such an area.", it's harder for things to change.

I might even venture that a society without strong top-level mandates/directives like that is like a a human being who has sensations, and reflexes, but no conscious control over his body, or even self-awareness. This may be an exaggeration but that's an idea.

<comment><USER14> It's very easy to just drift along making default choices & lead a very comfortable life. It's easier and safer. As well as individual choice, a huge amount of societies resources is dedicated to making people as comfortable and entertained as possible, the opportunity cost is doing great things, discovering or pushing things forward.

I think you are right that you have to work hard (which is uncomfortable) in order to achieve anything. People still do it, though, for various motivations.

</comment></comment><comment><USER15> I agree with the sentiment of the article. How many of the innovative products coming out of the Valley (for example) address basic needs and problems, versus providing convenience, entertainment value, or just incremental improvements? How many don't involve websites, phones or even the internet? There are a lot of things in the world that need improvement but don't intersect with digital technologies.

</comment><comment><USER16> Assuming that innovation truly is dwindling (not saying it is, just saying it is for this argument), maybe it's just because of exponential growth.

Think of the graph of the square root of X[1]; as x increases rapidly, the change in Y gradually gets smaller and smaller.

Maybe as advances in technology increase rapidly (as they have for the past many thousands of years), the amount of true innovation gets smaller and smaller as a function of the same changes.

Or maybe I'm just being a math nerd looking too much into this...

And also, I think if something was truly innovative, maybe we wouldn't immediately be aware of it[2].

[1] <http://thesaurus.maths.org/mmkb/media/png/Squareroot.png> [2] [http://www.freakonomics.com/2011/09/09/why-we-desire-but- rej...](http://www.freakonomics.com/2011/09/09/why-we-desire-but-reject- creative-ideas/)

<comment><USER17> The square root of s x is not an exponential function.

<comment><USER16> No, it's not. The diminishing returns dwindle similarly as exponential functions grow, and I figured that getting too technical wasn't necessary just to make a point. Downvotes unnecessary.

</comment></comment></comment><comment><USER18> I agree that more innovation needs to spread across different fields outside of computers and software. But it doesnt just take the knowledge of technology to innovate but the knowledge of that particular field. In a way you need to be an expert in both worlds.</comment>


People in your organization that grow legacy code - <AUTHOR> http://zeroturnaround.com/rebellabs/the-5-people-in-your-organization-that-grow-legacy-code/ <comment><USER2> Judging code is important, but this article seems to be judging people too much.

When I see unwieldy legacy code at Fitbit, I assume it was written by an overworked early employee wearing five different software-engineer hats, two of which they were experienced in. I assume they were working as fast as they could to get their startup to take off before the end of the runway, and that they anticipated having enough money to hire a team of people to clean things up later if they succeeded.

They did succeed, and I'm part of the cleanup crew.

See also [http://retrospectivewiki.org/index.php?title=The_Prime_Direc...](http://retrospectivewiki.org/index.php?title=The_Prime_Directive)

</comment><comment><USER3> Legacy code... that's the stuff that solved business problems well enough to provide you with a job fixing it, right?

</comment><comment><USER4> I don't agree that "the smartass" is the worst of 5. I'd propose a 6th one: legacy technology proponent. How many times there was a moment of decision what stack to use for a new project and there was always this one guy going "How about we use LAMP with XYZ PHP framework? There are a lot of 'coders' around we can hire for that and they will be cheaper than ruby/python/scala/etc guys".

<comment><USER5> Or #7 the programmer who is too cool to use modern, stable, popular tools that would be perfectly adequate for solving the problem. Instead insists that the team write everything in unproven fad technology XYZ - then disappears when he/she gets bored in 3 months, leaving others to maintain a code base written on a abandoned platform.

<comment><USER6> Having read the article, I'm pretty sure that person is #2 :)

</comment></comment></comment><comment><USER7> While I understand the reasoning behind the Elusive Firefighter, I think the example is rubbish. Set the license limit to MAX_INT. Surely two billion licences should be enough, and the problem is solved (with a high degree of confidence) within minutes. I don't know the codebase, but disabling checks may also suffice.

Depending on the company, refactoring legacy code is like walking through a minefield to get to a territory that isn't really desired by the higher ups. High cost, low reward.

As for the rule "If you see something wrong fix it properly!" I disagree in some cases. If you are a legacy maintainer, usually something is broken and management/clients want it up ASAP. The proper fix is rarely the fastest. Beyond that, you have to be careful when advising refactoring. If you advise it too much, in cases that don't really need it, management may not take your advice as seriously when there really is a problem.

<comment><USER8> Surely four billion IPs should be enough. Oh, wait...

<comment><USER9> I think we can safely assume that two to four billion unique users for a single deployment of some software that originally had a small user count and only four billion unique public network identifications are at a completely different level of risk for happening.

</comment></comment></comment><comment><USER10> Ok, I'm an idiot but how would you rewrite getDayOfWeek?

<comment><USER11> 1: Should have used a library function

2: not 0-indexed (there can be good reasons for this, but the context of the function should at least suggest the reason)

3: Doesn't handle errors - should throw IllegalArgumentException, and if should do it in the default handler of the switch. If you suddenly see "???" in the UI, it's not easy to track down to this.

4: If for some valid reason this can't be a library function, it should be an enum, and it should be used throughout the code.

        enum DayOfWeek {
           MONDAY(1, "Monday"), TUESDAY(2, "Tuesday") ...

           public int id;
           public String displayName;  // these should be private and have getters according to most style-guides.

           public DayOfWeek(int id, String displayName) {
               this.id = id;
               this.displayName = displayName;
           }

           public static DayOfWeek fromId(int id) {
               for (DayOfWeek d : values()) {
                   if (d.id == id) return d;
               }
               throw new IllegalArgumentException("Illegal DayOfWeek id passed: " + id);
           }
        }

<comment><USER12> FWIW, the default Java API to get weekday strings is also 1-based (DateFormatSymbols.getWeekdays(); and Calendar.SUNDAY is 1).

<comment><USER13> Yeah, with Java DateTime API being royally fubarred [1].

[1]: [http://stackoverflow.com/q/1969442/60188](http://stackoverflow.com/q/1969442/60188)

<comment><USER14> ... every DateTime API ...

FTFY

</comment></comment></comment></comment></comment><comment><USER15> Isn't it really just one person, the manager who permits it?

<comment><USER16> You must be a manager.

<comment><USER15> LOL I've seen them work (or not) for a couple decades, and I'm observant. Boss has no idea whats going on = best polish up the resume, everyone will be needing a job soon.

</comment></comment></comment><comment><USER17> omg i'm the smartass, i'll admit that

<comment><USER18> I was definitely the smartass when I started out. Every time I hear someone say the words "that's easy" or "couple of hours", I look back on my career and cringe.

</comment></comment><comment><USER19> with regards to The Overly Energetic Engineer ,there is also the management which does not allow you to give back to community. Sometimes well known libraries have issues which are fixed inhouse but you cant contribute them back to community and you are stuck between devil and deep blue sea.

</comment><comment><USER20> I'm basically all of these five people. Except maybe for the intern.

</comment><comment><USER21> I've been all of these, probably a couple of them only today...</comment>