Send me your privacy abuse tipoffs - <AUTHOR> https://robertheaton.com/2020/02/07/send-me-your-privacy-abuse-tipoffs/ <comment><USER2> Whistleblower payoffs in the US can be up to 30% of collected money [https://www.sec.gov/whistleblower](https://www.sec.gov/whistleblower)

> _The Commission is authorized by Congress to provide monetary awards to > eligible individuals who come forward with high-quality original information > that leads to a Commission enforcement action in which over $1,000,000 in > sanctions is ordered. The range for awards is between 10% and 30% of the > money collected._

If the government started paying off employees who report data violations, there would be a lot of retired engineers on Hacker News!

<comment><USER3> That could create a conflict of interest though. Imagine I'm an engineer that can profit by adding some malware on a (e.g.) printer. Ka-ching! I add the malware, count til 10 (weeks), report to regulator, cash out, adios amigos!!! And then HP (for example) is left with the penalty. Not fair for the company. This is one of the reasons we need independent reviews & assessment.

Conflict of interest, maker-checker matter in this line of work. A whistleblower is always a whistleblower, but one can open the gates and then cry wolf.

<comment><USER4> Presumably HP could sue the engineer for willful sabotage? Especially if that engineer whistle-blew the problem that the bug causes (on the code s/he wrote) instead of submitting a bugfix..

<comment><USER5> I think the plan would be to add the malware in such a way as to not get caught/attributed, I.e. hack the build server, impersonate another user account, or similar.

</comment></comment></comment></comment><comment><USER6> Robert deserves a huge pat on the back for doing this. I can only imagine how many tipoffs he will need to sift through and I look forward to seeing the results. I disagree with his thought that this won't make companies learn to respect privacy. We're at a cusp and it's actions like this that are the baby steps that can take us towards a better, privacy respecting future.

</comment><comment><USER7> This is actually a huge source of potential litigation. Lawsuits that easily end in settlement given CCPA, GDPR etc. He's likely not just doing this for his blog.

It's akin to "Injured at work?" billboards.

<comment><USER8> I don't really mind him profiting off this if it means nasty companies stop stalking me. As far as I'm concerned it's a win-win situation.

</comment></comment><comment><USER9> Website suggestion. Forward slashes indicate breadcrumbs and hierarchy, like a file system in the terminal. However, you're using them for link separators all over your website which if very confusing. Traditionally the pipe `|` symbol or potentially borders would make better separators.

<comment><USER10> His web site. His style.

<comment><USER11> Fbpvny pbzhavpngvbaf, fbpvny fgnaqneqf. Fbzrgvzrf fgvpxvat gb pbairagvbaf nvqf va zrfntvat rsrpgvirarf, naq fubhyq or rapbhentrq.

Yes, it's possible to increase frictions. But mostly, that just reads as annoying.

As here.</comment></comment></comment>


Firefox finally plugs the leak - <AUTHOR> http://blog.mozilla.org/nnethercote/2012/05/07/update-on-leaky-add-ons/ <comment><USER2> Well, plugs _a_ leak. The Memshrink team has plugged an awful lot of leaks, and slimmed down an awful lot of code over the last year or so.

They've now hit the point where they're largely fixing bugs in add-on writer's code, rather than their own.

<comment><USER3> This sounds great, I stopped using Firefox just over a year ago due to its fairly heavy memory usage. I usually run with 20+ tabs and even on a machine with 4GB of ram it was pretty unpleasant.

How are you current Firefox users finding the RAM usage, especially compared to Chrome?

<comment><USER4> I've just killed and restarted Firefox, then duped my current set of tabs over to Chrome (in-house jukebox using websockets, a slideshare presentation, couple of open Google Docs spreadsheets, a Pivotal tracker session, a couple of tabs of a local development project, Google Plus, and this HN thread). Totalling up 'Real mem' in Activity Monitor shows Chrome 18 using 735.4mb (of which 33mb is Flash). Firefox 13 (beta release to be fair) is coming in at 450mb (of which 65mb is Flash).

The internal memory measurements (about:memory) come out as 835mb resident for Chrome, and 324mb (of 'explicit', whatever that is) for Firefox.

I'm not using any extensions in Chrome. In Firefox I've got installed Firebug, FireFontFamily, FireQuery, Lastpass, PDF.js and QuickJava.

 _Edit: oops, missed cloning a tab with a video in over to Chrome. That explains the disparity in Flash, and you could probably expect to increase Chrome's real mem usage a little had I not closed it already…_

<comment><USER5> With Firebug installed, you most likely have JIT disabled [http://antennasoft.net/robcee/2009/12/15/firebug-and-the- jit...](http://antennasoft.net/robcee/2009/12/15/firebug-and-the-jit/). I would suggest you use a separate 'webdev' profile for such things (the inbuilt web console that is now in firefox is also getting there).

<comment><USER4> That was true in 2009 but was fixed in January 2010: <https://bugzilla.mozilla.org/show_bug.cgi?id=534120#c52> (although it's true that if you're actively debugging scripts the JIT turns off - Firebug has the script panel off by default)

</comment></comment></comment></comment></comment><comment><USER6> This is great news and may finally push me into upgrading FF on my depleted box. Despite all the grumblings about FF's memory issues, it is the (only) full featured browser that works for me, not Chrome.

There are a few reasons for that. (1) There's no tab abuser worse than me. I have hundreds of them around (I have commented before, why I have it that way) (2) I do all my browsing from a (battery less) laptop with 512 MB of RAM. (3) I do not close my browser for months on end. On top of that I expect that I should be able to do my usual editing etc while I have the browser open.

For this very corner'est of corner cases, if I use Chrome, my box goes into a fetal position and dies. However, and kudos to FF 3.6, (yeah 3.6!) my laptop works great, no problem at all. I have flashblock, no script, bar-tab, memory fox, bunch of greasemonkey scripts (to fix google's layout, and give github and bitbucket a dark theme) and have tweaked FF's cache settings.

On a more performant box I am on FF-11, but have never upgraded on the other, fearing that the new FF assumes (not unreasonably) the box to have more memory.

<comment><USER7> How bad of a tab abuser are you? I can easily reach over 450 tabs. It helps that since Firefox 4, there is an option that doesn't load all tabs when you start Firefox up, but instead only loads the tabs as you switch to them. Tabs that haven't been loaded don't seem to have much footprint at all, so I tend to build up rather a lot of them.

<comment><USER8> How do you guys manage your tabs? I have ~100 and I sometimes feel like I'm drowning. That option you mentioned really helps.

<comment><USER9> Have you used the tab grouping feature?

<comment><USER8> I use Tree Style Tabs. I think it's better than tab grouping.

</comment></comment></comment></comment></comment><comment><USER10> On Sunday, using my latest version of Firefox, I opened a single page loading it only once to check how it looked in Firefox. Then I forgot I had Firefox open for the rest of the day. Eventually my Macbook Pro became slow and looking at Activity Monitor I saw Firefox was taken hundreds of MB of RAM and just eating some 20-30% of CPU% just idling there.

Every time, Mozilla devs claim all the bad bugs will be fixed in the next version. I heard it for v2, for 2.5, 3, and 3.5 and now of course whatever crazy version number Firefox is on now. It still sucks, but now I don't care any more because now I have Chrome.

<comment><USER11> Every time I use Chrome, my Macbook Pro becomes slow and everything pages to disk. It's snappy when it starts, but in Chrome 20 or whatever crazy version number they're on now, there's still a lot of leaks. It's very frustrating.

But for some reason everyone has the impression that Chrome is both fast and uses less memory than Firefox, when the evidence points to the speed difference being anywhere from minimal to completely unnoticeable (I recently read a paper which suggested that Chrome's JIT optimizations have a _negative_ effect on overall performance due to their expense). Furthermore, Firefox uses substantially less memory in general.

Extremely effective marketing on Google's part.

<comment><USER12> You're right, but most people will not notice Chrome's sluggishness because Google has worked very hard to ensure Chrome _feels_ fast. That, and (in my experience) the fact that most Chrome users rarely go beyond 15-20 open tabs, make Chrome an overall better experience than Firefox for many people. In UX design, perception of speed counts almost as much as actual speed.

<comment><USER13> The key for that is that the UI is in a separate process. Firefox for android (Nightly and Aurora) also do that.

Of course Chrome also has a process per tab (and in fact a few more than that), but the main thing is really a separate UI process (or lockless thread for that matter).

Interestingly this is also what made BeOS so snappy. All BeOS apps _require_ an UI thread that is separated from the rest.

All that to say, while Firefox probably won't get a process per tab, I'd like if they ported the Android UI process to the Desktop.

<comment><USER14> Actually in Firefox for Android the UI is just on a different thread than the web content, not in a different process.

</comment></comment></comment></comment></comment><comment><USER15> All of my machines have only 2GB of RAM. On the Linux boxen, I have absolutely no trouble running firefox with 50 tabs, OpenOffice and Gimp at the same time. I don't monitor FF memory usage, because there isn't any significant problem.

On the other hand on the MacBook I must restart FF regularly, else over 700MB of memory the application gradually slows down and "beachballs" regularly. I don't know what's wrong exactly, because I have all the same extensions.

<comment><USER16> > All of my machines have only 2GB of RAM.

Out of curiosity, why? You can get 16GB of DDR3 for under $100 these days. The upgrade from 4GB > 16GB and an SSD were _huge_ productivity boosters for me. When you stop worrying about memory management (from a consumer perspective), things are so much snappier.

<comment><USER17> If he doesn't need it, why spend the extra money? :-) It may be cheap but if it's just going to sit there being unused then why bother at all?

<comment><USER15> Actually I built these machines with parts I had lying around. As I only had 1 GB RAM sticks (and 2 RAM slots), well 2 GB I have. But as I said, I have quite fat systems and for what I need (text editor, xterms, firefox, a little LibreOffice and GIMP from time to time) it doesn't make any meaningful difference.

A few months back I had a 2004 vintage machine with 1GB of RAM and the main annoyance was that firefox was quite long to start up in the morning, and that's about it. Ah, and spamassassin was a tad slow, too, meaning that my emails needed a few minutes more to fetch in the background, no big deal. I switched because the graphic card failed and I hadn't any AGP card anymore :)

</comment></comment></comment></comment><comment><USER18> Just because you have 16gb of memory doesn't mean you won't ever swap. Firefox is not the only application running on a computer. My working set is routinely over 7gb and I have 8gb on my laptop. A goldfish will grow to full its bowl. If I had 16gb, I know I could use it. Every little bit counts.

<comment><USER19> Really? How? I'm currently coding and browsing the web and I'm only at 1 GB, out of 2. Sure, the VM isn't on, but that's still another 500 MB.

<comment><USER20> I don't understand what surprises you. The memory load depends in large parts on the work requirements, I'd guess.

2 weeks ago I went from 4 GB to 8 GB (still would love to have more) here at work, because 4 didn't cut it and lead to lots of paging.

      Visual Studio (often 2 or 3 instances, grabbing around 300-500 each)
      MS SQL Server
      IIS
      OCR Engines (depending on load)

With Windows 7 as host (already not a slim OS) this killed my productivity with 4 GB, especially if (to get back on topic) I opened my beloved Firefox...

<comment><USER21> Same here but from 8 to 16 on both my desktops. Huge improvement under Windows, less under Linux with SSD. Working habits vary, but I multitask a lot.

</comment></comment></comment></comment><comment><USER22> Mozilla has been making outstanding progress in decreasing Firefox's footprint. At least from what I can see on the beta channel, things are getting much better, every single day.

Props.

</comment><comment><USER23> I applaud the MemShrink team for their effort in finally fixing FF. Forgive my ignorance but why are these leaks possible in the first place? Shouldn't the browser manage and constrain plugins (sandbox?) to prevent issues like mem leaks from even being possible? I understand the high level description of the patch but I don't understand why this wouldn't have already been part of FF's plugin management system. It seems like a pretty basic and core concept.

<comment><USER24> Remember that Firefox was originally intended as a minimalist platform, with the expectation that users would use its extension mechanism to build it up according to their needs. As a result, Firefox's extension mechanism is quite liberal. The upside is that its extensions are capable of much more than, for example, addons in Chrome. The downside is that extensions are responsible for much more, and can touch basically any part of the program (which is why powerful addons are so prone to breaking with new versions of Firefox: they're effectively targeting an unstable API).

Chrome addons are less prone to breakage and mischief, because Chrome addons target a stable API with a limited set of functionality. Firefox introduced just such an API last year, called the Jetpack API (it may have been renamed since then). You can tell if an extension is using the Jetpack API if it doesn't require a browser restart to install.

<comment><USER25> "You can tell if an extension is using the Jetpack API if it doesn't require a browser restart to install."

Not necessarily. "Traditional" extensions can be extended to support being restartless as well if they implement the necessary hooks.

</comment></comment></comment><comment><USER26> Better late than never, but you leaked more than just my system memory...you leaked your own market share.

<comment><USER25> Yeah, hopefully this will not go down in history as another too little, too late effort. Firefox still has a sizable market share of about 20%-25% (depending on the source) so Mozilla can still flex some muscle to keep the web open. I dread the day when only cooperate players are left to decide about the future of web technologies.

I wonder how the situation would look today if the MemShrink and Snappy projects had been started in 2009 or 2010 at the latest. My gut feeling tells me that the loss of market share and especially mindshare wouldn't have been as dramatic as it is today. Oh well, I'm happy that Mozilla apparently got their act together and taking the competition more seriously. Right now it's fun looking forward to each next Firefox version. :-)

<comment><USER13> Its hard to say. Bu where Chrome made the most impact is probably not the geeky community, but mr everybody.

And how? => link on google.com telling you _have_ to get Chrome => bundling+force install+defaulting Chrome when updating acrobat reader, flash, etc, even from Firefox or IE.

Both work fine as long as Chrome is a decent browser (and Chrome is a very decent browser that's for sure)

They stopped the later and still do the former (it doesn't necessarily show up in all situations so your mileage will certainly vary), any time you go on Google.com with any browser. At least the former is not morally wrong, but it certainly has a huge impact due to their near monopoly on search, and people believing that Google _is_ the Internet and if Google says something, they should probably do it.

I don't think Mozilla could beat neither of those 2 points, even thus they could have lowered the overall impact by doing things better (especially their switch to 6 weeks release without having silent update/auto addon compat, that one was just plain dumb).

<comment><USER25> Yeah, there are probably several factors which assisted Chrome's rise to prominence. Obviously Google's huge marketing power and their bundling deals can't be disregarded easily but in the end Chrome is also a great product. It's fast (real and perceived performance), it has a remarkably polished primary UI (though some of the secondary UIs like history are rather suboptimal) and has neat features which only get slowly adopted by the competitors (e.g. ingenious tab closing behavior, built-in translator, built- in PDF reader, etc.). So great product + good marketing = success.

And the importance of geek/early adopter/enthusiast users shouldn't be underestimated because these are the ones who often have wide reach (e.g. journalists, bloggers, etc.) or are responsible for how web technologies are used (e.g. developers). It's a bitter lesson the non-WebKit browsers vendors had to learn after most mobile web developers started to target only WebKit because that's the devices/browsers they are using on a day-to-day basis. And in its early days Mozilla thrived on the free guerrilla marketing provided by enthusiast users, not just in their immediate private space but also in magazines, on websites and other outlets where users and authors were constantly praising Firefox for its security, speed and features compared to IE6. Today that place has been mostly taken over by Chrome.

I still having a hard time wrapping my head around how badly Mozilla handled the appearance of Chrome for _years_. The threat was so obvious from the very beginning and not just in hindsight. As I said, I have the impression that they are on the right track now but there must be lessons to be learned from the 2008 to 2011 period for Mozilla itself and other organizations in similar situations. I wish Mozilla higher-ups would sit together and publish a retrospective about what they perceive they did right and wrong.

</comment></comment></comment></comment><comment><USER27> According to the article, they plugged one leak but opened another, which appears as soon as you have a simple Add-on made with, so typically, Mozilla's own "Add-on SDK."

<comment><USER14> That's just a bug. It will be fixed (there's even a patch in <https://bugzilla.mozilla.org/show_bug.cgi?id=752877>)

</comment></comment><comment><USER28> Pfew... 230 megabytes for a running browser. Not long ago that was all my workstation had!

</comment><comment><USER29> So every extension built with the SDK version before 1.6.1 is suspect.

That's a whole bunch of extensions.

<comment><USER14> That appears to be a bug in the approach we're using, and we think we have a fix for it.

<comment><USER30> This is great news. Any estimate on when these fixes might be released into a production version?

<comment><USER14> We're on track to ship this in late August.

</comment></comment></comment></comment><comment><USER31> Almost an identical title to this one 10 months ago... SMH

Mozilla May Have Plugged Firefox's Memory Leak Once and For All Posted 07/06/2011 at 8:36am | by Paul Lilly [http://www.maximumpc.com/article/news/mozilla_may_have_plugg...](http://www.maximumpc.com/article/news/mozilla_may_have_plugged_firefoxs_memory_leak_once_and_all)</comment>


QA Engineers: Join the $50k Global Hackathon - node-bayarea https://info.applitools.com/uD09<p>- More than 100 winners, $50,000 in cash. Top submissions will share $50,000 in prizes including two $5,000 diamond, 10 $1,000 platinum, 20 $500 gold and 80 $200 silver prizes.<p>- Earn $25 for early submission (first 500 qualified submissions).<p>- The Hackathon runs from May 27th through June 30th. Judging and winners announcement will happen in July-August!<p>- In the Hackathon, we ask you to automate 3 tasks against the Hackathon app and run it in different combinations of browsers and viewports using the latest browsers. You need to write tests in both the traditional approach (not using Applitools) and in the Ultrafast Grid approach (using Applitools).<p>- In the traditional approach, you can run the tests locally or use any cross-browser cloud vendors. https://info.applitools.com/uD09 <comment> node-bayarea [https://info.applitools.com/uD09](https://info.applitools.com/uD09)</comment>


Wind Power Without the Blades - <AUTHOR> http://news.discovery.com/tech/wind-power-without-the-blades.html?fb_ref=fb2&fb_source=home_multiline

<comment><USER2> If some alien civilization landed on Earth, I'd like them to land in Dubai. It's as if they're building a future land, the landscape, the sand, the buildings. Amazing.</comment>


Inside the IBM FlashSystem 900 All-Flash Array - <AUTHOR> http://www.tomshardware.com/news/ibm-flash-ssd-flashsystem-900-afa,31808.html <comment><USER2> They must not be expecting to produce these at scale if they are loading them with FPGAs. Or the markup is enormous. Being IBM, the latter might be it.

edit: looking at the picture, they are XC7K410T's. 500,000 flops... almost 2000 multipliers. Looking at the specs on FPGAs these days makes me giddy.

[http://www.xilinx.com/support/documentation/data_sheets/ds18...](http://www.xilinx.com/support/documentation/data_sheets/ds180_7Series_Overview.pdf)

<comment><USER3> Your comment made me curious, so I went looking and found a price sheet. I see two SKU's, one at $32K and one at $39K, I think probably this is just for the chassis. The storage modules list at $22K, $46K and $92K for the 1.2TB, 2.9TB and 5.7TB models, respectively.

I don't think too many people really end up paying list, but I have to imagine the markups are very healthy.

This thing looks rad af. I work exclusively with IAAS stuff now, but in a past life I used to spend a lot of time with enterprise hardware like this. I bet those modules feel real good when you snap em in.

[http://www-01.ibm.com/common/ssi/rep_ca/3/897/ENUS115-003/EN...](http://www-01.ibm.com/common/ssi/rep_ca/3/897/ENUS115-003/ENUS-115-003-LIST_PRICES_2015_02_23.PDF)

<comment><USER4> The SM950 can be had at $300 for 512GB with 2.5/1.5 GB/s sequential read/write and 300K IOPS. RAID together 6 of them in parallel and you'll have something with better specs and storage than the 2.9TB module ($46K) for just $1.8K (albeit with less endurance, though not sure how much less).

<comment><USER5> IBM's margins are heavenly, no argument here. Yet what you propose is apple to oranges. The SM950 would have endurance of 1K to may be 3K writes. The IBM's flash is 10K. This is enterprise/database, not desktop, ie. you need the write endurance. It is one of the main reasons why we don't see many database servers with SSD arrays like you proposed, and instead we see huge RAM servers with RAID-ed HDDs.

<comment><USER6> That is bad engineering, HDDs have about the same drive writes per day as SDDs once you get into the TB sized SSDs.

</comment></comment></comment></comment></comment><comment><USER6> Curious to see FPGAs at the center of a product like this, especially from IBM which has always been willing to do low volume tapeouts (helps to own a foundary)

<comment><USER7> Think it's closely related to their Netezza line; a 'Big Data' storeage solution that also features a FCPA-centered design for the storage/T-SQL engine.

<comment><USER6> I don't. I think they are using an FPGA because it is convenient and they are willing to throw away some of the margins on their product for ease of implementation. That particular FPGA has a PCIe hard IP, and they probably implement the NAND read/write/balancing using its LUTs and interface using its digital I/O. A consumer SSD (or really any product) might start off life like this, and then tape out to an ASIC before release if it is going to ship in any significant volume. The ASIC will have drastically lower power and, once sufficient volume hits, much higher margins.

I don't buy the programmable argument either, you can implement programmable cores (this is what basically any high feature NIC is like Chelsio, SolarFlare, etc) while still baking in the PCIe, NAND interfaces, offloads like CRC/erasure coding.

Those FPGAs each cost several hundred dollars. Imagine if each PCI device in your computer (sound, network, video) had a full Xeon on board. Not entirely dissimilar.

<comment><USER8> > Those FPGAs each cost several hundred dollars.

Several hundred? Try several THOUSAND. Here's the part that's seen in the photos:

[http://www.digikey.com/short/3pmq5w](http://www.digikey.com/short/3pmq5w)

A fully loaded FlashSystem has around $100,000 of FPGA silicon in it (12 modules x 4 FPGAs/module x ~$2000/FPGA).

</comment></comment></comment></comment><comment><USER9> Doesn't the Pure Flashblade do something similar? [https://regmedia.co.uk/2016/03/13/flashblade_950.jpg](https://regmedia.co.uk/2016/03/13/flashblade_950.jpg)

</comment><comment><USER10> When will the memory itself be running a database server? Or is that already a thing?

<comment><USER5> [https://en.wikipedia.org/wiki/NVDIMM](https://en.wikipedia.org/wiki/NVDIMM)

NVDIMM-N is basically flash backed RAM

</comment></comment><comment><USER11> Looks like it's for algorithmic trading

<comment><USER7> ...or the AD industry...</comment></comment>


Education pays ... - <AUTHOR> http://www.bls.gov/emp/ep_chart_001.htm <comment><USER2> Education pays. Or being clever gets you more education, and also pays. Or being willing to work hard does those things. Or coming from a family with more money, or with a particular kind of attitude (curiosity? go-getting? ...), does those things. Or there's a lot of prejudice out there (on the basis of sex, skin colour, or whatever) that affects both how a person's education goes and how their later career does. Or any combination of those. Or any number of other possibilities.

All together, now: Correlation is not the same thing as causation.

<comment><USER3> It's much worse than that. The linked article is about the 'median wage' at each of those education levels. I can't imagine a metric less interesting to HN than 'median performance.'

Show me the top 10% of earners, then give me the breakdown of how much traditional education those people consumed. Hustlers aren't getting by on their credentials.

<comment><USER4> What's wrong with using median in this instance?

Other than knocking off a few obvious outliers: Mssrs. Gates, Jobs, Ellison, and Zuckerberg, I believe.

<comment><USER5> It's wrong because average people are more likely to do average things in their life, like pursuing a college degree because that's the common thing to do.

Outliers on the other hand sometimes choose their own path. Sometimes they drop out of college because of financial problems, but still attend courses that interest them. Sometimes they choose to learn on the job, by making mistakes and fixing them, by screwing around disassembling stuff, by learning from mentors they admire, by trying out new things and so on and so forth.

Saying that Gates, Jobs, Zuckerberg are college dropouts really ignores that these people are/were more educated than the hordes of people coming out with master degrees. And this I think is the biggest problem with our educational system, the fact that these alternate paths aren't properly recognized.

Disclaimer: I'm also a college dropout, I regret it and intend to finish college, on the other hand I have a monthly revenue at least 3 times bigger than the software industry's medium salary in my city for senior developers.

<comment><USER4> Um, you're not OP.

What are you suggesting as a preferred measure of central tendency if not median? The usual suspects include arithmetic mean (strong outlier bias, especially for incomes), or mode (which has other problems).

Or are you suggesting that measures of central tendency are inappropriate for this sort of analysis altogether? In which case, what population/sampling moments would you use instead?

I'd suggest that 2 is false. For a policy analysis, you're interested in either total (mean) or typical (median) outcomes. Probably median. You might toss in some floor/ceiling limits as well (if a particular course of action has a highly bi-modal tendency, with one mode being particularly low, it's not so hot).

As to my own feelings on the matter: a good college education is really valuable. I've certainly met people who are brilliant and/or successful who haven't finished, or even in some cases attended college. One of the biggest problems (and it ultimately does become a problem) with the latter is what I call the "chip on the shoulder" issue: it's an awareness that the person has that they _haven't_ been to college and a mix of compensation and confidence issues resulting.

Much of what you learn in college comes from the context: who you're exposed to, what you're exposed to, library access (much less significant today than 20 years ago, given the Internet and its resources, but there are still huge amounts of information _not_ readily available online). You absolutely can experience much of this outside the academic environment, but you've got to work at it.

At the same time, there are many schools (and student bodies) which are uninspired, and programs which do a poor job of preparing students for the outside world. There were holes in my education. There was much that I learned in college which was self-directed, or incidental.

One of the bigger lessons was the degree to which you might want to discount some random professor/researcher's claim of something ;-)

</comment></comment></comment></comment></comment><comment><USER6> All such studies suffer from the same debilitating flaw—there are almost certainly confounding variables at work. To reach any firm conclusion, you would need to compare degree recipients with a cohort of statistically equivalent people who could have earned degree _X_ but did something else instead. All these "education pays" charts show is that people who earn advanced degrees earn more money. But such people are also probably smarter and more determined than average. You don't need a Ph.D. to know that correlation doesn't imply causation.

P.S. This is not sour grapes. I have degrees in physics from Harvard (A.B.) and Caltech (M.S., Ph.D.), and I make well more than the median earnings for Ph.D.s.

P.P.S. I know the real reason these sorts of studies proliferate, but this comment is too small to contain it.

<comment><USER7> Stories like this pop up frequently on HN. But I'm intrigued by your post post script. What do you think is the reason for the proliferation of these studies, and why do they so often ignore the correlation-does-not-prove- causation fallacy?

In this case, I see two possibilities. The Bureau of Labor Statistics author is too dumb to understand the fallacy. The second is that she does understand the fallacy, but thinks that at least some Americans won't. If the latter, what purpose would that serve?

Interesting.

<comment><USER8> I think it's because not because these numbers are imperfect, or because many things can be read into them that shouldn't, that they are completely useless. In the end you need some data that is intuitive to understand, even if there are many ifs and buts involved.

</comment></comment></comment><comment><USER9> It is irresponsible to show these graphs that average different degrees together. The top 5 majors earn 2X the bottom 5:

<http://www.payscale.com/best-colleges/degrees.asp>

<comment><USER10> Perhaps it's too much data for just a few graphs but it would also be interesting to see race, gender, and so on.

</comment></comment><comment><USER11> This topic reaches the frontpage on HN at least once a week. Can we avoid rehashing the same arguments? Maybe just vote these up when something original comes up.

</comment><comment><USER12> So, does education make you better at your job? My experience says that there is very little correlation between having a MS vs a BS vs no degree in the quality of work people get done, at least as a professional coder. In fact, to me, a Masters is a red flag, it causes me to give a person additional scrutiny, because of the huge glut of awful coders with Masters that I have run into.

So, in my experience, having a more advanced degree could only lead to higher income because of big companies with big HR departments, the government, and other clueless employers giving a pay differential.

I would love to see the numbers comparing someone with a PHD from Shit State, compared to a person with a BS from Princeton, compared to a person with a genius level IQ who dropped out of Berkley. Or a PHD in History vs a BS in Math.

I'm always suspicious of PHD's in industry. You don't get a PHD to go work for GE, you go work for GE when you have a piece of paper with PHD on it but can't get an academic position.

So, what I'm saying is, while education level may be correlated with income, it's not a cause, except where employers are clueless.

<comment><USER13> I occasionally run into this "I'm suspicious of Ph.D.s in industry" phenomenon and frankly it's baffling. (disclosure: I am obviously biased by having a Ph.D. and no longer being an academic)

Ph.Ds. in industry create lots of amazing things: UNIX, 747s, airbags, wireless protocols, manufacturing robots, search engines, and logistics optimization systems are just a few that almost everyone depends on every single day (indirectly in some cases). These are not systems that can be designed without a large amount of focused domain knowledge, which is precisely what the Ph.D. entails.

Sure, there are some people with Ph.D.s who are impractical and unsuited for front-line "get things done" work. I can assure you that is an intrinsic personality trait and not something created by intensely focused study on interesting ideas, which is the defining characteristic of the doctorate.

</comment></comment><comment><USER14> There is a big, big, big problem when comparing degrees: People with PhD's are older and therefore have more experience. Everything in this entire chart could theoretically be attributed entirely to experience and not education. Of course, it could also all be education, but as they say, Correlation does not imply Causation.

</comment><comment><USER15> This is a specious argument by the bls. The question isn't whether education pays or not; the real question is whether or not education increases a person's productivity.

I'd argue not. It all depends on the degree. College is a form of job training for people like engineers, in which case it has a high return on investment. However, many [if not most] degrees have no relevance to their college degrees.

As many as 63% of college graduates occupy jobs that don't require a college degree! (Uncited, lazy, sorry.)

So does college "pay"? Sure. Does it increase one's skills and productivity? Factoring the opportunity costs, it's hard to tell. I'm in the camp of people who argue that the returns to higher education are due to what's called a "sheepskin", or "signalling", effect in economics.

</comment><comment><USER16> Interesting that doctoral degrees do not pay more on average than professional ones! Perhaps it is because most PhD's enter the field of research as opposed to industry? I haven't met that many PhD's in industry but there are a few.

<comment><USER17> It doesn't say "PhDs", it says "Doctoral degrees", which may mean (it isn't clear), that EdD (Doctor of Education, a common degree for public school administrators), DBA (Doctor of Business Administration, usually from Harvard), EDB (Executive Doctor of Business, typically offered to already successful business people) and other similar specialized but not necessarily "professional" degrees (which I interpret to mean MD, JD, DDS, chiropractic, etc.) would be in this group.

</comment></comment><comment><USER18> Does either an engineering degree or mba or CS degree count as a professional degree for BLS ?

<comment><USER19> I believe a professional degree is MD, DDS, etc.

A BSN is an undergraduate professional degree so I'm not sure where it falls in that list.

Edit: Engineering and accounting are professional degress, computer science is not.

<comment><USER20> So they are "professional" because the are part of the standard career track that eventually leads to someone getting a formal "professional" qualification? That would suggest that an MBA is not a professional degree, although it is a vocational degree, because MBA graduates don't typically go on to become formally professionally qualified (e.g. unlike lawyers, medical doctors, etc.).

[NB I'm in the UK and while I know plenty lawyers/chartered engineers etc. I've never heard anyone talk about a "professional degree"].

<comment><USER19> No they are professional because they are required* as part of the license in that profession. To be an RN you have have to have a Bachelors of Science in Nursing. A CS major couldn't become an RN but an RN can become a software developer. It is the same for accountants, doctors, surgeons, etc.

Professional degrees are very specific and single focused. An MBA is just an MBA, no career requires it, but it is a nice to have. It is not considered a professional degree although many professionals do have it.

[*] and when I say required it is a felony to work in that field without the proper degree or license.

<comment><USER20> I didn't think UK CAs have to have a degree in accounting, I'm also pretty sure that you _can_ become a CEng without an engineering degree, it's just very difficult.

I know that in law in Scotland you need two academic qualifications (a law degree, and a postgrad diploma in legal practise) then two years training before you qualify as a solicitor. However, if you want to go to the bar you only need a law degree - but then you have to do a specialised training course and then devil for a year before you can be called.

</comment></comment></comment></comment></comment><comment><USER21> I still get a kick out of people who talk about how education pays but don't the whole correlation/causation thing. Apparently, education for them does not include basic stats.

</comment><comment><USER22> I hope this data is normalized and other contributing factors such age are removed. It is better to see a regration model than pure stat graphs.

</comment><comment><USER23> Looks like the benefits of a bachelors are shrinking

</comment><comment><USER24> yes, having education might mean you can get the job that pays more but this does take into account the unemployed into the median.

</comment><comment><USER25> That is current averages ie. historical data.

What it says is that somebody who got a medical/law degree 20-30 years ago, did very well over the last 20-30 years.

It says nothing about whether somebody leaving school today will do better in 20-30 years having spent 10x as much as their parents generation on college - rather than becoming a plumber or electrician or founding a startup

<comment><USER25> And it's even worse than that - 20/30 years ago most of those none law/medicine degrees would have got somebody a VP type job. Now a non- professional degree gets you an entry level secretary job.

If you compare the lifetime earnings of a rare graduate 30years ago with those of a new 'social studies' type grad today it will be a lot worse

</comment></comment><comment><USER10> Has anyone considered that maybe the types of people who become educated are also more motivated?

People who floss their teeth have a 7 year higher life expectancy. Obviously, flossing your teeth doesn't increase it.

<comment><USER26> I agree with your primary point, but your follow-up example isn't the greatest... Flossing your teeth can have a real impact on health -- gum disease (which flossing is an excellent preventative agent against) can cause all sorts of serious health problems like increased risk of heart attack and stroke. People with periodontal disease have a 2x greater chance of coronary artery disease than people without periodontal disease. That's a pretty big deal.

<comment><USER8> The first point (gum disease can cause health problems) is most likely true, even if just intuitively, but they would have to be pretty serious to reduce life expectancy by 7 years - even smoking reduces it by 'only' 14 years, and I'd be hard pressed to believe that not flossing is half as dangerous as smoking.

The second argument is a classical cause/effect thing. I can't imagine that tooth diseases increase heart diseases by 100%, but I can very easily imagine that people with certain habits (eating lots of cheap unhealthy food with much fat and sugar) suffer from both.

Then again I don't know anything about this field, if there is any research that confirms your arguments I'd be surprised but interested.

</comment></comment></comment><comment><USER27> Education Pays.. right.. Who will pay for education??

<comment><USER28> ...the educated?

<comment><USER27> Or to call them the paid / rich?

<comment><USER28> How about the educated / rich?</comment></comment></comment></comment>


Query, a new question app built by a 17 year old  Iphone developer.  - <AUTHOR>

A couple of months ago I released my question app "Query". I am a 17 year old student who loves
developing apps. Query is listed on the What's Hot list Productivity in the Turkish app store. Query It's a very easy way to find an answer to an question. The only thing you have to know is the
question you feel the need to ask and let Query do the rest for you. It only supports Yahoo! Answers, however, a lot more Q&A servers will be added soon. I would like to know what you think about Query
and please leave a comment if you feel like. Creating apps is an amazing experience and, it's so satisfying to write something yourself and actually
see it work! https://itunes.apple.com/tw/app/query/id725029532?mt=8 <comment><USER2> Nice app, but I think you're a bit too old to keep pulling the "17 year old developer" trick out of your sleeve since being 17 in the world of developers isn't that special. Maybe if you were 12...

<comment><AUTHOR> Thanks for your replay and saying something nice about my app. You're right but I'm not from States and where I live, developing apps is fairly new for kids my age so I hope you understand.</comment></comment>


Show HN: I made a simple Google Analytics alternative that runs on my phone - <AUTHOR> https://github.com/lbrito1/android-analytics <comment><USER2> Really enjoyed reading the in depth blog post: [https://lbrito1.github.io/blog/2020/07/replacing_google_anal...](https://lbrito1.github.io/blog/2020/07/replacing_google_analytics_android.html)

Learned about running webserver on android and goAccess

<comment><AUTHOR> Thank you!

I stumbled upon GoAccess after I noticed that nginx logs were enough to get the visitor info. Hours later I found out the HN post where someone else did something very similar to what I was doing :) [https://news.ycombinator.com/item?id=19883876](https://news.ycombinator.com/item?id=19883876)</comment></comment>


Ask HN: How can I discover the current market value of private equity? - <AUTHOR>

I have been offered a job at a privately held company that seems like it might be about to IPO, and the compensation package includes equity that, under some circumstances, could be a large portion of my compensation. I'm trying to figure out the current market value of that equity.
If I end up considering the equity as worth $0, like some people recommend doing for jobs in startups, taking the job would be a huge pay cut from my current position, and I would not accept the job offer.
What I know so far:
1. The stock prices at all rounds of funding, both the most recent and all previous ones
2. The revenue growth since the last round of funding
3. Employees are telling me that internal transparency about revenue has gone down recently, which they interpret as a sign of approaching an IPO
4. High-level employees have given me their personal estimates of the value of the stock today. Some of those estimates are too low for me to want to accept the job offer, some are high enough that I would want to accept the job offer.
How can I discover what this equity would sell for today? I'm trying to get information out of SharesPost and EquityZen, but that seems to be a very slow-moving process by design. <comment><USER2> The pre-IPO bids for Facebook at SecondMarket were substantially higher than the original IPO (first-day trading price), less than a week before private trading was halted. Even the private market has no idea what non-public shares are worth. IMO, ask for an increase in salary, or tie the value of the stock to a conditional bonus payout. Keep in mind that even if the company goes public and the stock does well, you probably won't be able to sell for 12-18 months due to lockups, so the IPO price is less relevant to your compensation than the long-term stock price. If you are smart (and have the cash), a 83(b) election can be hugely beneficial for your taxes... unless the price at which you do the election is far above the eventual market price of the stock, in which case you are out quite a bit of money.

Edit: If the company truly feels that their stock can be substituted for salary, then it shouldn't have more than a 12-month cliff for vesting.

<comment><AUTHOR> > The pre-IPO bids for Facebook at SecondMarket were substantially higher than > the original IPO (first-day trading price), less than a week before private > trading was halted.

How much higher?

<comment><USER2> Roughly 10%, but I forget the exact numbers. It took over a year before those private buyers could sell above cost.

</comment></comment></comment><comment><USER3> Unless the executives strike you as people who _want_ to make you rich, I'd take the people suggesting lower valuations more seriously. I'd also consider lower transparency as neutral at best, worrying at worst.

I'd add that exercising options may not be viable in a liquidity event or if you leave the company.

Good luck.

</comment><comment><USER4> I joined a pre-IPO company as a contract to hire, and then decided to not join as full time. But I had buddies who joined full time. They all left the company 8 months later after the IPO: the stock price fizzled out.

Just compare your salary and options, with what Google, Apple offer. And also check whether the start up is type A (Uber, Dropbox, etc), type B (box, etc) or type C (unknown potential).

<comment><AUTHOR> > And also check whether the start up is type A (Uber, Dropbox, etc), type B > (box, etc) or type C (unknown potential).

What do these categories mean? How can I distinguish between them?

</comment></comment><comment><USER5> If a company has a public competitor/comparable, you may be able to use comparables to estimate value of the company. Personally, if your only reason to take the job is how quickly you can make a buck through IPO flip, you most likely will be very disappointed.

 _seems like it might be about to IPO_

Seems by whom? What is the likelihood of IPO happening?

Every startup I have talked to in past 4 years, claims they are going for IPO within a year or two. Not a single company among them have done the IPO yet. I personally see claims of impending IPO just a recruiting tool. Any IPO claims need to be discounted heavily. IPO is not easy to pull off! M&A is much more likely than IPO.

 _under some circumstances, could be a large portion of my compensation_

What circumstances and the likelihood of those circumstances occurring? You need to list each circumstance, and its probability of happening, and the outcome.

 _If I end up considering the equity as worth $0, like some people recommend doing for jobs in startups, taking the job would be a huge pay cut from my current position, and I would not accept the job offer._

That is the baseline you should start with. Do a probabilistic analysis, the likelihood of different event, expected outcome and benefit to you. If you can't come up with a highly probable scenario, I wouldn't assume anything beyond baseline scenario to play out.

 _The stock prices at all rounds of funding, both the most recent and all previous ones_

Do you have actual number of shares at each funding round or how much the company was valued at each funding round? It might be useful in valuing the company if it is really going for IPO. As investors expect M&A to be more likely event, most will have some sort of liquidation preferences attached to funding. So outcome for you in case of M&A is much more diluted.

 _The revenue growth since the last round of funding_

Do you have actual revenue numbers or just claims by someone of revenue growth? If you have actual revenue numbers they will be useful in valuing the company, revenue growth not so much. Most of the time, these growth claims are inflated so will need to heavily discount such claims.

 _Employees are telling me that internal transparency about revenue has gone down recently, which they interpret as a sign of approaching an IPO_

Do these employees have direct exposure/visibility to sales and revenue pipeline? How close are these employees to the pipelines where they can see the actual product, sales and revenue flow? More visibility, more believable unless they are working on convincing you of something. I have never met a Sales VP who claimed sales are not going that well.

Has company retained investment banker yet or do employees see suit-types (bankers, accounting, lawyers) showing up and hanging in the office or CEO making frequent trips to Investment Banking companies and locations? These are better indicators of IPOs. The pessimistic interpretation of reduced transparency will be that company is struggling to generate revenues and revenue growth and is in trouble.

For a complete picture of revenue and revenue growth you will need to talk to different internal groups that touch customers such as sales, marketing, service, account receivables, finance.

 _High-level employees have given me their personal estimates of the value of the stock today. Some of those estimates are too low for me to want to accept the job offer, some are high enough that I would want to accept the job offer._

The ones giving you the low estimates are likely to be more realistic unless personally they are impacted negatively by you taking the job. I will suggest to take some of them out of the office individually for lunch or coffee and see if you can dig in to the basis of their estimates and motives. I will ignore the ones giving high estimates, they are optimistically blind. Any employees with the midrange estimates who are closer to customers may be worth talking to.

<comment><AUTHOR> Thank you, you've given me a lot of good questions to ask and things to investigate.</comment></comment>


Inefficiency + Quality = Desireability - <AUTHOR> http://hbswk.hbs.edu/item/6105.html

<comment><USER2> Inefficiency, in this case, isn't really an issue. Its efficient enough to serve the number of people Adrià has decided to serve.

 _Scarcity_ would be a better choice. The inefficiency may create uniqueness, which contributes to that scarcity, but its the scarcity, together with the over-the-top quality that makes this so desirable to people.</comment>


The Android Who Cried Wolf - <AUTHOR> http://techcrunch.com/2010/02/16/best-android-phone/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29&utm_content=Google+Reader <comment><USER2> Sometimes I think MG Seigler is inventing things just to write an article.

So Android has a problem because it is innovating faster than the competition? Android is doomed because there are too many good phones?

The HTC Desire is not better than Nexus One. Sure the hardware specs are almost the same but Desire has the Sense UI. This means that it may have Android 2.1 right now but it will not have the latest and greatest version of Android right away.

All the latest updates on Android reaches Nexus One first. That is the big advantage. If you have a Nexus One right now, you should not be disappointed.</comment>


Excel as a database - <AUTHOR> http://wyorock.com/excelasadatabase.htm <comment><USER2> I really wish I couldn't say this literally, but I've been witness to that comic strip in real life.

A few years ago I was asked to build a database in Excel which would import spreadsheets that clients submitted, accumilate all that data then spit out a whopping great big CSV file every month. And the most insulting thing of all was that I had to build this abomination using VBA macros so I could guarantee that the CSV output was clean enough to be exported into an Oracle RDBMS we also ran. I frequently raised the point that we should be running all of our databases on Oracle, but I was refused every time (I could write a whole essay on their dumb rational behind this, but that's another rant entirely).

So off I set writing one of the most complicated Excel macros of my life (and wondering what I'd done in a past life to be lumbered with such moronic management). I wrote every piece of data cleansing I could imagine knowing full well that the spreadsheets our clients would be submitting are bound to have had their formatting messed around with (and trust me, I tried everything I could to lock that template spreadsheets down). Yet, and without fail, every month at least 10 spreadsheets would be rejected from my macro's import routine because the data was so garbled that it was beyond cleansing.

Usually it was a simple job to fix the spreadsheets - or a simple phone call to the client where I verbally slapped them as much as I dared; vainly hoping that might serve as a warning to them that they shouldn't be cocking about with the layout of the template. Needless to say, it never had any affect.

However this one time I was completely baffled. The spreadsheet look fine at first glance, yet my routine rejected it. Sure, I couldn't click inside any of the cells, but the spreadsheet was locked from editing so that was to expected......or was it?

It turned out that the idiot who submitted that spreadsheet printed out their completed template, then scanned it in on a MFD (a scanner with bells and whistles). Then got that MFD to e-mail them a PDF of the printed page and now scanned page so that they could then embed that back into the fucking template.

All I asked them to do was fill a couple of columns of data then e-mail me the spreadsheet as an attachment. But nothing is too simple when you're dealing with users who _think_ they understand computers.

<comment><USER3> I remember one user a decade ago who I set up a process for that was basically, "Run this report, verify that it looks OK, then send it there" who was unable to do so. Repeatedly.

Turns out that she was opening a CSV file in Excel, saving it, and then it couldn't be parsed.

It took a surprising amount of training for her to understand that this really was "changing something". When she eventually got it she asked why she was supposed to be able to look at it at all. My reply is that that was the spec, and someone higher up thought she should see it.

She stopped looking at it and the problem went away.

<comment><USER4> a line of copy I added to a client's website last night

 _Please do not simply rename the file extension of your file to match the formats we require. They will not open._

Apparently there are plenty of people who thing changing the file extension from .docx to .psd changes to format. Windows (and OSX too, I guess) are partially to blame here as they'll happily change the icon

<comment><USER5> To give the complete picture though, recent Windows warn you before applying the changes to the file extension.

Although the users would still blindly click "Yes" even if the dialog asked for their firstborn child.

<comment><USER4> don't get me started...

Now here's an idea for any software developers - grab AutoIt (is it still around?) and make a quick script called "typical_user" that automatically clicks "Yes" (or similar) on any dialogs that appear. Now, run this in the background while testing the UI of your software :)

Edit: Yes, AutoIt still exists! <http://www.autoitscript.com/site/autoit/>

<comment><USER6> Or try <http://www.sikuli.org/>

For automation, it's replaced AutoIt in my toolbox - just in case I get another contract in the future like one of these.

</comment></comment></comment></comment></comment></comment><comment><USER7> I know it's fun to beat up on people who use their software meant for summing accounting tables as simple databases, but really the alternatives in these small cases usually introduce so much friction to the user and require so much work to get up and running as to not be worth it.

Even worse, most of the "right" solutions eliminate the easy look at dozens of rows that a spreadsheet offers (letting the user do fast unconscious visual comparisons in their own data) vs. showing what's essentially one row out of some table at a time.

Sometimes a simple grid that users can quickly navigate around, enter stuff into and see all of _is_ the best solution.

The problem is that we (the tech industry) seem to only offer two choices, do it a) the wrong Excel way b) do it the huge giant IT initiative way...

I bet there's huge money to be made in a simple spreadsheet-like user interface that can be setup with similar constraints as a database (field types, foreign key constraints etc). That's all it seems both sides really want.

<comment><USER8> When I used to be an "IT guy", everything had to be in Excel. I begged to switch to Access. Hell, I even built a few prototypes in Access in my free time to demonstrate how much better it would be (I was still a student).

My point: Over time, I came to appreciate Excel and realize what an amazing program it is. It is accessible to pretty much anyone who knows how to use a computer, and at the same time can basically be used to create mini-programs.

That's the reason you only have the two choices you mentioned: _a) do it the wrong Excel way b) do it the huge giant IT initiative way_

Also, Excel does provide the ability for both the data type and foreign key constraints you mentioned.

<comment><USER9> I am sceptical about your final sentence, are you talking about anything other than the broad brush data validation constraints provided by Excel? If so please give examples.

<comment><USER8> [http://chandoo.org/wp/2010/11/01/mix-vlookup-with-data- valid...](http://chandoo.org/wp/2010/11/01/mix-vlookup-with-data-validation- for-some-magic-vlookup-week/)

</comment></comment></comment></comment><comment><USER10> There are a lot of really reasonable reasons to use Excel — it empowers the non-technical user, is flexible and extensible, and can easily wrangled into supporting edge cases.

Is it a poor replacement for a real database and application? Frequently, yes. But it frequently isn't realistic to spec & build a new application to support a growing business process.

All in all, I'm not clear why we don't celebrate how empowering Excel can be to many business users, even if it can be frustrating to deal with when it evolves into a core piece of a critical business system.

<comment><USER11> Sounds like what you need is a database for inputting data that doesn't require an "application" to be built around it. I guess this is what access was trying to be, but it is to technical for non techies and to non technical for techies.

Perhaps even something that looks like excel but is stricter with it's inputs and some easy way to handle relations.

Even showing somebody rails scaffolding can get you a fair way.

<comment><USER12> Given the culture of Microsoft, Excel is exactly the tool that its users need it to be. MS isn't going to take chances with a major profit center like Office. I challenge anyone to make Excel as good as it is for all of its users.

<comment><USER11> I wouldn't expect such a tool to come from Microsoft, could be fertile ground for a startup maybe? The hard part is of course gaining the acceptance of existing excel users which is why I would make it look not too dissimilar from excel.

The complicated technical part is making something that enforces strong schemas and good support for concurrent users without feeling complicated or overly constrained.

It doesn't necessarily have to do everything that excel does, just be good for use cases like "make a customer list that everyone from the CEO to the new temp can use at once"

<comment><USER12> Unfortunately, computer geeks like us are far more interested in making interesting features than making things discoverable and accessible. It's hard enough to get an OSS dev to make a GUI, let alone a good one.

I think the most prescient point so far has been that Excel quickly gives you a sanity check of you data, because it gives you the full view of days right away. Working on an ERP rewrite right now, this has been our continual issue, making all of the data visible, in ways that the old system never did.

</comment></comment></comment></comment></comment><comment><USER13> The reasons why people use Excel are actually simple and reasonable:

\- it's easy to use

\- everyone has it

\- it maps nicely to the skills user have (like moving files around to copy data)

\- it's _flexible_

The last thing is important here. The problem with most database applications is that they are inflexible. Users are not allowed to add another column just to put a small note next to a data field. Or add a datum that is needed only in exactly three cases and no-one thought of it before yesterday. Or color up some particular entries and have it retained. Or million other different cases. They can't do this stuff on their own, without having to contact IT department or whoever, which makes the feedback loop much longer, seriously impacting productivity.

Yes, Excel sucks. But everything else sucks much harder, from user's point of view. Give them something as flexible as Excel, and they'll gladly switch.

<comment><USER5> How to give something as flexible as Excel that is not Excel?

I think that they'll gladly switch is a myth. From casual users I never heard "I sent you a spreadsheet", only "I sent you an Excel". And there is no incentive for them to get better educated in this regard.

<comment><USER13> > _How to give something as flexible as Excel that is not Excel?_

This is our problem; if we can't, then obviously Excel is the right tool for the job.

> _I think that they'll gladly switch is a myth._

Ok, I think you're right. What I meant by "gladly" was more like "they won't be desperately trying to copy the data from the application to Excel and work the old way".

> _Athere is no incentive for them to get better educated in this regard._

AKA. they won't change, because they have no reasonable reason too. So why do we (as developers) seem to expect them to?

<comment><USER5> Well, buried in your comment is the assumption that the alternative must be equally flexible, and I disagree.

Flexibility is often the cause of data loss at these companies, see "sorting a column but not the whole table" case for example.

People hate constraints, but constraints are exactly what we need to maintain data integrity. If convenience is more important, be my guest -- but I'll quit the moment they're asking me to fix an Excel table. (A bit of an exaggeration, but you get the point.)

</comment></comment></comment></comment><comment><USER14> Ha ha! Those non-programmers are so dumb! Good thing we're so much smarter and better than them!

(The irony of a three hundred word complaint about medium ignorance being rendered as a comic is the cherry on top.)

<comment><AUTHOR> The only irony I see here is the medium ignorance you exhibit.

Who said comics are not supposed to be word-heavy? Comics are not just comedic panels or superhero stories.

Especially in the European comics tradition, but in other cultures too, including alternative US comics, all kinds of ratios between words/pictures have been used to great effect.

<comment><USER15> Yes. But just talking heads is silly.

<comment><AUTHOR> Well, he's no professional. He got the point across nicely.

</comment></comment></comment></comment><comment><USER16> MSFT guy here who relates. As a small adjunct project to <http://pytools.codeplex.com>, we developed some bindings so you can sidestep VBA and use Python with Excel. It works well for what it does. Here's a short video overview: <http://www.youtube.com/watch?v=Oi3QKuFugWk> . It's OSS/Apache. You don't need VS to use it.

<comment><USER17> Hello smortaz,

Your post reminded me DataNitro[1] (previously IronSpread), a python-in-excel solution that was featured on HN nearly a year ago[2], and a YCombinator- backed company.

As far as I'm aware it seems closed-source and costly, while your solution is open-source and free. But how does it compare functionality-wise?

At my company we're using using Excel pretty often and python is growing, so using such a tool could be a really convenient.

1: <https://datanitro.com/>

2: <https://news.ycombinator.com/item?id=4090337>

</comment></comment><comment><USER12> Your view of the marketing department expressed in this strip is why they are likely to avoid involving you in their decisions. People can tell when others feel contempt towards them, and it is not a trait that attracts people. There is a reason Jimmy Fallon had a tech-guy skit on SNL for so long.

<comment><USER18> No, most marketing people would rather not involve anyone else in their decisions. And as we're using comedians as our oracles, check out what Bill Hicks had to say about people in marketing and advertising. It may surprise you, but that is far from an uncommon sentiment. Marketing is, in too many cases, indistinguishable from manipulation, and IMO, worthy of contempt.

</comment></comment><comment><USER19> Excel as a database, comic strip as a vehicle for 400 words of prose. It's amazing how tools can be adapted.

<comment><USER20> I believe you mean "abused" not adapted.

I spent most of last week cleaning up and replacing an email-the-Excel-file- around "solution" with one out-of-the-box sharepoint list. Fortunately, the change was mandated by someone with the knowledge to see that the Excel based "solution" was a horrible idea, and the power to enforce the replacement's use. Unfortunately, the data is now at the mercy of sharepoint, at least that problem rests on others.

</comment></comment><comment><USER21> I don't get why Excel specifically gets so much bashing. It is an excellent tool, a very versatile tool. The problem lies with the users, as always. This hasn't changed. It's just that the customer base is enormous compare to other tools. Excel can do marvels in the right hands. I could use something else because I'm literate with a larger set of tools than my peers in the actuarial world, but again, to what point if I'm the only one who can reproduce what I did. In Excel, it's pretty easy to track back what was done. Excel strength lies in its ability to empower me with tool to produce a reproducible report in a matter of minutes from database output to presentation. Stop complaining about Excel and start teaching to people how to use it properly.

<comment><USER22> (rant

My training session begins and ends with "Stop using Excel."

because Excel sucks. Blaming "the user" because they don't how to use it properly is no excuse for this bloated piece of awful software. I've been using and abusing Excel for decades and there are too many things that are wrong with Excel. Here are three of my major beefs...

\- cutting/copying and pasting, I think I need to press enter to make that rectangle go away.

\- sort. Oops, you only sorted the first column, but you didn't notice that, and a week later you notice something isn't quite right with "the data"

\- so many things from a UI experience that could be dead simple, but feel like advanced gymnastics

LibreOffice brings no improvement, it simply duplicates the terrible experience of using Excel. And unfortunately the innovations of spreadsheets from the very very distance past are dead: Visicalc, Lotus 1-2-3, Resolve, Wingz, and many others are long gone.

So no I won't stop complaining about Excel. This is a pain point and maybe there is an opportunity to create a killer spreadsheet app / web app that does not require someone to "train" "the user" "how to use it properly", but I am not holding my breath.

)

<comment><USER5> You bring up lots of good points, but your training would sound a lot better as "start learning Excel."

There is no software you can not shoot yourself in the foot with. There's no point in switching when people will certainly misuse other applications as well.

<comment><USER22> You are right. The only way to learn is by making mistakes.

</comment></comment></comment></comment><comment><USER23> I miss when Rory Blyth (original author, I don't know who is cutting and pasting it to their private website at wyorock.com) used to run a blog called <http://www.neopoleon.com/>

There was some great stuff on there. He stopped blogging in 2008 but it's archived.

[http://web.archive.org/web/20080517080006/http://www.neopole...](http://web.archive.org/web/20080517080006/http://www.neopoleon.com/blog/)

</comment><comment><USER24> The first panel reminded me that Access exists. While I've been forced to dive into it on occasion (usually to do excavate some buried data), I can't say I've ever used it for anything productive (unlike Excel).

What's a good & defensible use case for Access? It always felt like a worst- of-both-worlds package both in terms of functionality as well as UI / UX.

<comment><USER25> I've been able to make some pretty cool things with Access as the backend, and Excel as the frontend. Add a little VBA/SQL and you're looking like a rockstar. Access and Excel provide a versatile infrastructure to quickly prototype different and effective ways of using/presenting your data.

<comment><USER26> This is a great point too. Excel is hard to lock down and easy for non- computer people to use. Access is easy to lock down and relatively harder to use.

If you know what you're doing, you can use Access (scary program that people don't really know what it's for) to lock down the data and enforce business rules and that kind of thing, then give coworkers Excel spreadsheets with pivot tables from an ODBC connection to the Access db that they can "do their thing" and mess with and email around.

The true worst of both worlds though is when somebody creates an amateur Access db, locks it down so you have to do everything through a 1995-Visual- Basic-looking switchboard, creates horrendous forms with garish colors and giant bitmap images that have no coherent UI... and ... I can't even go on, these are too painful to remember.

<comment><USER25> I honestly would never recommend Access as a user frontend. It's amazing how quickly Access userforms become convoluted and confusing. The only "FE" development I've done with Access is simple database maintenance tools usually only used by the developer(me) or a trained maintainer.

Also, most people are comfortable with Excel. Access userforms can scare the crap out of some users, but they're able to manipulate Excel just fine.

I was able to whip up a tool for my boss where his direct reports could log the time they spend on a particular project each day (ridiculous, I know). It's a simple Excel spreadsheet with Excels built in calendar selector, and two columns: Project and hours. Clicking a button writes to an Access database, which my boss can now pull the data straight into Excel with a couple canned reports. No one ever sees anything but Excel. I get that this may not be ideal but: 1\. Took a morning to get to production 2\. Quick user uptake because they're already comfortable with the system 3\. Gets the job done, and my boss can still mess around with the numbers in excel all he likes

So there are use cases.

Another one that I've used successfully is utilizing Access as a middle-man to join two discrete systems within a corporation by using the Import Linked Table feature and building a join query. This way, Access does the heavy lifting of mashing two separate datasets together, allowing users to understand relationships instead of spending time trying to jam lines of data side-by-side.

This comment got long...sorry.

</comment></comment></comment></comment><comment><USER27> I started cracking-up until I realized that I'm going through that right now. Now I'm just sitting here, silent. I need a drink.

</comment><comment><USER28> Actually, I would still love to have a setup where Excel is the front end with a database it can query and manipulate.

<comment><USER29> Excel does this with it's built-in data sources. Typically it can connect to any ODBC data source, which includes pretty much any SQL database and most proprietary databases (although in some cases you'll need to buy ODBC drivers. Yuck)

Then, bingo! You've got real, structured, data available in Excel so you can run Pivot Tables, build charts, and filter data to your hearts content. I use it frequently to build read-only data views for people who want to analyse their data in ways they don't know how to do using more native tools.

This microsoft post is for Office 2007, but applies equally in newer versions: [http://office.microsoft.com/en-au/excel-help/connect-to- impo...](http://office.microsoft.com/en-au/excel-help/connect-to-import- external-data-HP010089898.aspx)

<comment><USER30> I used to work for a hospital that used this strategy for almost all of its internal reporting (I was contracted to ease the transition to Business Objects); it can get out of hand quickly.

Every morning between 8:45 and 9AM, doctors and administrators would come in, fire up Excel and refresh their data, the slowdown on the network was noticeable (pretty much a 'select *' on a massive de-normalised reporting tables hundreds of times throughout the site).

The flexibility that Excel offered some (not-too-technical) power users in those circumstances was fantastic, though, as much as I hate to admit it.

<comment><USER29> Yep, it's got it's limits - I would only use this in production with carefully crafted queries to try too counter this problem.

My usual use is against MS CRM data, which puts a 10k line limit on by default. First instinct for many people is to disable the limit, but in reality it's a good fail safe!

</comment></comment></comment></comment><comment><USER31> Made sense until he was supposed to get a Pomeranian in the last panel.

<comment><USER32> This is probably just a cultural misunderstanding. In many European corporations, it's common for dogs to be given as awards for exceptional work. Pomeranians are, of course, the highest honor to receive.

<comment><USER33> Could you care to clarify which countries in Europe do that? Never heard of that before. Just to clarify something: the OP appears to be Rory Blyth, ex- Microsoft employee, living in Portland, OR, and American if I'm not mistaken.

<comment><USER34> (mistercow was joking.)

</comment></comment></comment></comment><comment><USER35> Haha somewhat ironic that this post is on the front page at the same time as the story about ZeroCater which was started by a guy with no programming experience, using Excel :)

</comment><comment><USER36> As of Excel 2013 it has more database like capabilities (relationships between tables, combine multiple data sources).

[http://office.microsoft.com/en-us/excel-help/powerpivot- powe...](http://office.microsoft.com/en-us/excel-help/powerpivot-powerful- data-analysis-and-data-modeling-in-excel- HA102837110.aspx?CTT=5&origin=HA102837097)

</comment><comment><USER37> I've always thought that a spreadsheet/db hybrid would be an interesting idea for a startup, but surprisingly none of them ever took off:

DabbleDB had a great UI [http://www.eweek.com/c/a/Database/Dabble-DB-Bridges- Database...](http://www.eweek.com/c/a/Database/Dabble-DB-Bridges-Database- Spreadsheet-Divide/)

<http://www.ragic.com> <https://www.zoho.com/creator>

something tells me that the incentives for paying for this kind of software aren't aligned with the management. it's just easier to push crap data down to "IT guys" to fix then look for a real solution. would love to be proven wrong.

</comment><comment><USER38> I appreciate the humour in this. This is currently my situation in life. Old businesses are horrible when it comes to managing data.

If it wasn't set up for it in the design or a bit further modified later on after realizing how rediculous it may be to change anything then it has failed beyond miserably.

This is the real reason behind the crazy huge amount of data formats there are: xml, obj dump, json etc

And people always think lets fix it by adding a new one!! In general xml and json are ones that made sense and the ones we keep continuing to make aren't really improving on much.

</comment><comment><USER39> This reminds me of an obviously perfectly logical request a coworker came to me with once.

Even though our CRM automatically emailed our customers a copy of their invoice once their order was taken, she wanted to print out the invoice, scan it back to her PC as a PDF, then email that PDF to the client "just to make sure." Nevermind the fact that the CRM had a mechanism specifically designed for manually emailing an invoice to the customer already built in in the event that they didn't get the invoice the first time.

</comment><comment><USER40> My last job featured a database written by me, which had to be done because there was no way to pull proper data out of the company database.

The problem was that there was several people over several years who used the company database and they all had their own silly opinions about how to update and enter information. There was a few things that were firmly set by the system. For example, once you entered any information on the UI, the letters auto-capped so the data had some integrity.

The biggest problem was the product entries. The logical way to create the UI would be:

SKU:

Color:

Product Name:

etc.

This is how it actually was:

SKU:

Product Name:

And whilst there was a color field, it was buried so deeply in the morass of entry fields that I didn't even know they were there for the first 6 months I worked there.

So, the data was entered like this:

123-BLUE

123-RED

123-BLACK

123-BLK

123-BLU

etc....

I come in and am asked to compute sales history by SKU, Color, Product Type, and all sorts of ugly things. As you can see, there was no way to even get things by SKU, much less by any other important metric. It didn't help that it was all GUI and no one had access to the raw SQL.

This was the time that Excel came to the rescue in spades. I exported everything off the database, pushed everything into CSV and hand-separated all of the data into something that I could use, then pushed it into Postgres on my machine.

Moral of the story for me: Yeah, Excel isn't the best thing, but a poorly designed database system made by a half-baked company with 15 years of rot creates a nightmare situation as well, and at least in this experience, having the ability to examine the raw data, do find-replaces in wordpad, and other odd ends like that was the only thing that saved me and my job.

After I had left, I was asked to return for a week to encode my job to the best of my ability. There was just no way to ensure that the uploads had the correct integrity considering the size and time-constraints of the project.

I knew it wouldn't go well because my replacement was partly tasked with helping me clean the data for the next importation, which I tasked her to do since she kindly deleted the entire database that I spent the prior year building up. I told her that x, y, z, etc, had to be done manually and she couldn't understand the simple concept that you cannot navigate an Excel document with a mouse, so she kept handing me broken files and blowing up the imports.

I'm sure you can figure out what happened next: first time she uses it, despite stupid-simple step-by-step instructions, she destroyed the database and I sat at home tearing my hair out on how to import all the data back in. I really didn't have time to get this part perfect. I just docked it as a non- feature I knew I'd regret later and hoped against hope.

Companies should never ever hire people to do anything semi-technical that has anything to do with tech.

<comment><USER15> Why were they able to destroy your database repeatedly? Where there no backups? I can imagine they might not understand, but wouldn't you have sneaked some backups in a corner some where?

<comment><USER40> Yeah, I had some CSVs backed up in a dark corner they couldn't touch the first time, but I didn't have a full dump because, honestly, I thought they'd never use it again, and it was highly unlikely they'd ever find someone who can do SQL after I left.

The second time was some messy issue with encoding so the backups nor CSVs wouldn't load in. After trying absolutely everything I could find, I just build a script that wrapped all the backed up data in INSERT clauses and sent a raw .sql file over. I couldn't physically go in at the time, so I was trying to be phone support on my own trashy product.

</comment></comment></comment><comment><USER41> The most important tool is the one that people use.

</comment><comment><USER42> I'm probably guilty of doing the opposite, using a database when a spreadsheet might have been more appropriate.

</comment><comment><USER43> If you industry folks knew the stuff we see in scientific software in academia...

It's scary. I complain about this all the time.

</comment><comment><USER44> Handling bad and dirty values from business users is the bread and butter of the data cleansing industry. Cleaning user inputs is standard, if you expected to build a database application without having to properly clean user submitted records, you have sent yourself on a fools errand.

</comment><comment><USER45> Unfortunately, the vast amounts of medical research data is collected and stored in Excel "databases". Yes, you heard that right - Excel. The very studies that we use to inform clinical practice that we do when you get sick and come into hospitals are pretty summed up by that comic.

<comment><USER46> I have a friend who works on some of those medical research studies. They are required to use Excel. It is a giant pain because it is difficult to share the spreadsheet, there's constantly different versions, and data corruption issues.

All of the staff want to switch to an Access database that they can all access within the office (it would not be a complicated DB and they happen to know how to use Access).

But a senior manager on the project believes that the study board only approved Excel, when the study was originally approved years ago, so, therefore, they cannot now use Access.

This costs them tens of hours per week across the team.

</comment></comment><comment><AUTHOR> This comic was featured in the volume "Best Software Writing vol. 1" by Joel Spolsky (of Joel on Software/Stack Overflow/bizarro language that compiles to PHP and VB fame), which is a nice collection of developer writing.

</comment><comment><USER47> I've been working on this. It converts excel spreadsheets to a sqlite file. It can then serve the sqlite file as a flask app.

<https://github.com/lucidguppy/conjuring>

</comment><comment><USER48> If you think this is limited to non-technical users, think again. Upon request for the zone file of some domain, some IT department of major telco sent me a screenshot of their windows-based DNS maintenance tool...

</comment><comment><USER49> Excel is a great flat file database.

It's also a great way of formatting a small amount of data for human consumption.

Its not a database in the modern sense of the word, nor should be used as such.

</comment><comment><USER50> I'd managed to repress the nightmares that came from living through scenarios just like those depicted in the comic. I guess I'll just stay up all night tonight!

</comment><comment><USER51> This problem and its implication to the finance sector were the genesis of our startup: Addepar.

<comment><USER52> We're wrangling with this in our organization. I looked at your site and there's no pricing information.

<comment><USER51> You can reach me via email in my profile if you need details about Addepar.

</comment></comment></comment><comment><USER53> Why is the author using grave accents as apostrophes?

<comment><AUTHOR> Because that's his handwriting. He is not a font.

</comment></comment><comment><USER54> At my previous job (a .edu), our "enterprise" systems still ran on the trusty, decades old mainframe. Batch jobs typically ran once daily and were written in JCL and getting data out required writing reports in RPG.

Until ~5 years ago, we had a staff member whose job duties involved nothing but using RJE to submit these "report jobs", wait for them to finish, print them off on the huge IBM printers, and deliver them to the appropriate people (who, the majority of the time, never even looked at them).

Coincidentally, it was our marketing department who came up with ideas they wanted to pursue but were unable to due to a "lack of data". The data they needed was actually there but getting it in a form they could work with was the issue. My boss, a man who, it seemed, was incapable of saying "no" to requests, told them we'd come up with something. Thus, the idea for the "Mother Of All Databases" (MOADB) was born.

Fast forward a few months and several meetings with other departments and we had a vision of what this database would look like. My boss, despite having never written a SQL query in his life, had decided to take it upon himself to "design the database". Because I knew the most about databases (which wasn't saying much), I became intimately involved in this project (against my better judgment and recommendations that we ditch the project).

What we ended up with was a database shared amongst tens of users across several different departments. This database consisted of, ultimately, dozens of tables (some stored in Access, some in MS SQL Server), and an MS Access front-end. The boss designed "forms" in Access for the end users to interface with. Remember how I said my boss had never written a SQL query in his life? Well, he also had no idea what normalization is. Several of the tables in the database had in excess of 100 columns (the record, last I remember checking, was 173 columns).

Because I had looked at a report written in RPG once, I was drafted to write a massive report that would pull all of this data out of our mainframe system. The resulting "data files" were CSV files that we had to get into the database. We hit some limit of the system and had to split the job up so that it would only run on a semester's worth of data at a time. The aforementioned staff member would run these jobs every morning, wait for them to finish, and download the data files.

To get the data into the database, CGI scripts were written. The staff member would navigate to a specific URL where he'd upload the CSV data files to the CGI scripts, which would parse the CSV files, and insert/replace the data in the database. An e-mail would then go out to the users of the database, letting them know that the "daily updates" had ran.

This database was ultimately used by many different departments for a variety of tasks: marketing, retention, financial aid, advising, testing, etc. It grew and grew and results to add new data to the database continued to come in (you know how I said my boss didn't like to say "no" to anyone? eventually this changed.). It contained records on tens of thousands of students (including lots of data that shouldn't be laying around in .mdb files on file servers).

Although it was being "phased out" as we had finally upgraded from our old mainframe-based system, the database still existed and was being used whenever I left about two years ago.

(Related note: we dealt with, on an almost daily basis, requests from users for "Excel databases". This comic really strikes a nerve with me!)

Edit: I forgot a step... Staff member would download data (CSV) files, open them in Excel, had to do something to them (can't remember what), save them as .xls files, and upload them to the CGI scripts (Perl, using Spreadsheet::ParseExcel, if memory serves).

</comment><comment><USER55> nice comic</comment>


Show HN: Crudlet.js – A common, streamable interface for synchronizing data - <AUTHOR> https://github.com/mojo-js/crudlet.js <comment><USER2> Great work, just a warning: your [http://crudlet.herokuapp.com/#/live- todos](http://crudlet.herokuapp.com/#/live-todos) example gets stuck in an infinite loop of inserting whatever todo item. Do you have any other demo examples?

I work on data synchronization problems as well (I'm the guy who built [http://gunDB.io](http://gunDB.io)) I'd love to talk. I assume you are using OT? OT requires a "master" server, right - or do you handle decentralized conflicts in other ways?

I'm glad you already have a query doc working, I'm still adding such a feature. Let's chat, send me an email: email@example.com . Good work!

<comment><USER3> Thanks for the heads up - the todos example should be fixed. Right now the todos example is pretty simple - it just hooks up with a socket.io (master) server which re-broadcasts all operations to each connected client.

</comment></comment><comment><USER4> This looks great. I think it deserves more examples though. Looking again, I see from the commits that you've already been working on the docs. Again, great! I may give this a try in my toy project.

Edit: I'm currently using Baobab[1] to manage state in a React app and I'm thinking about writing an adapter for it. I wonder if that makes sense. I'm leaning towards "yes".

[1]: [https://github.com/Yomguithereal/baobab](https://github.com/Yomguithereal/baobab)

</comment><comment><USER5> There seems to be a lot of overlap with orbit.js[1], how do they compare?

[1] [https://github.com/orbitjs/orbit.js](https://github.com/orbitjs/orbit.js)

<comment><USER3> They definitely solve similar problems. Bigger difference is that crudlet acts more like a utility belt library for interacting with service adapters that support the same operations. You can really do just about anything you want. For example, here's crudlet used as an event bus system:

[https://gist.github.com/crcn/cfe215ab3b604fb0b441](https://gist.github.com/crcn/cfe215ab3b604fb0b441)

Crudlet also uses node streams instead of promises.

</comment></comment><comment><USER6> It would be awesome if it persisted all the operations to a log. That way, when I attach a new endpoint I could get it "caught up".

And then, assuming your handlers are idempotent, running db migrations or adding a new representation of your data would be as easy as attaching a modified handler and running through the log from the beginning.

<comment><USER3> Shouldn't be too difficult to implement. Here's one possible way to do it:

[https://gist.github.com/crcn/cac5b5826590abed921d](https://gist.github.com/crcn/cac5b5826590abed921d)

</comment></comment><comment><USER7> I've been working on some offline first real time collaboration apps, will definitely give Crudlet a try.

Maybe promote the existing Todo example to the site of the repo so it's easily accessible for first time visitors?

</comment><comment><USER8> Echoing other comments, this does look pretty cool.

Would appreciate a comment from OP on what the use case is with this library? Maybe an example app or ideal use case?

<comment><USER3> Author here - the primary motivation behind this library was to make APIs interoperable with other data stores. For example: [https://gist.github.com/crcn/be352008bca201e8ac00](https://gist.github.com/crcn/be352008bca201e8ac00)

Currently working on more examples - didn't realize this would appear on HN so quickly!

</comment></comment><comment><USER9> Is this something similar to what Meteor[1] does?

[1] [http://www.meteor.com](http://www.meteor.com)

</comment><comment><USER10> What problem is this solving?

<comment><USER3> I'm a front-end developer, and there's lots of service features to think about when building a single page app:

Should app data be generated from the server initially? Should the app support offline read-only mode? Should the app support realtime data? Should operations be batched and sent to a data source? Should the app be isomorphic?

And others. I built crudlet to help encapsulate services so that these sorta features can be added anytime without affecting the rest of the application.

That, and also to help decouple applications from a particular service. For instance, it'd be pretty easy to swap firebase with parse, or socket.io for pubnub if you want.

</comment></comment><comment><USER11> Looks awesome! Agreed w/below that more usage examples would be great!</comment>


Ask HN: Why do you love your text editor? - <AUTHOR>

 Or IDE? What features do you rely on the most? Less than obvious answers would be great. What I'm wondering is what the next great editor/IDE needs to do well in order to succeed. <comment><USER2> Vim.

I'm used to it (20+ years including vi).

Finger memory. Sometimes I don't know how I do things, they just get done when I think about it. When I show someone something in Vim I sometimes have to slow down and show myself first.

There's always something new to learn. That keeps it fun.

Emacs and Vim can do the same things, differently. Long use is what makes a good editor, or IDE.

<comment><USER3> I like that avoidance of the vi v Emacs war; but I do agree. You do good work in the editor which you both know and have used.

<comment><USER4> I'm addicted to Vim's modes & shortcuts. If use an IDE, I end up installing Vim emulators in VS2010, Eclipse, or NetBeans.

</comment></comment></comment><comment><USER5> I like vim because my primary user interface is 6 rows of approximately a dozen buttons each. Vim lets me use them efficiently and to maximum effect, without getting my fingers tangled in a game of keyboard Twister (sorry, emacs).

</comment><comment><USER6> I'm an Emacs user. I love my editor (or OS, as some would think of it) because it has everything I need to do at my fingertips: no matter what I do, I hardly ever need to leave it, if at all. That way, I have familiar keybindings all over the place, it's scriptable and extensible, and documented better and more extensively than anything else I've ever seen.

I can browse a projects git history, and follow bugzilla links, for example (it's even possible to set things up so that different projects will lead to different bug trackers). I can also easily poke around in said history. I can find functions defined in a whole other area of the projects by using etags. I have an integrated debugger, which shows everything I need, and more. I have an email client with a ton of goodies (gnus threading is awesome, so is scoring and a lot of other things).

And I could continue virtually forever, but in the end, the reason I like Emacs is that it provides a familiar and integrated environment for every single task I can think of, and it lets me extend and enhance it at my heart's content.

<comment><USER7> It bears repeating that emacs _grows with you_. You don't have to learn and customize a new editor when you take on a new type of task.

From the time I wrote my first Linux config file, to when I started coding in C (and through the next dozen languages I learned), from using RCS to CVS to SVN to git and hg, when I was a security geek, a nuts-and-bolts coder, a web developer, and a typesetter... I stuck with emacs.

I know folks who learned only a fraction of that breadth of computing tasks, yet passed through six or seven editing environments, revision control front- ends, and so on doing it. There was this extra thing they had to do -- audition appropriate IDEs and customize on to their liking -- every time they learned something new. I'm confident I can pick up whatever language I like without that overhead.

</comment></comment><comment><USER8> I'm with sixtofour, once you don't have to think about what to do, you speed up massively. Personally I prefer vi only because I've learnt it. Changing slows me down for very little gain.

For me, vi + git + make works well. Have tried most IDEs and keep coming back to this combination. Use a second screen to refer to APIs etc.

</comment><comment><USER9> I use a few, usually I am working most with Kate via Quanta and Gedit.

Things I like about them \- they are fast - to load up and fast to do search/replace on large files.

\- in the case of Gedit it works with the filesystem which works with FTP so I could do a quick edit on-line just by logging in and right-clicking a file - very convenient.

\- Syntax Highlighting

\- In the case of Kate also auto indent and in Quanta the autocomplete and highlighting open/close parenthesis, brace, bracket pairs.

What I would like to see is some editor that helps flag non-ISO-8859 characters.

</comment><comment><USER10> I use emacs. I love that I don't have to move much to do anything. Sorry vim, but pressing esc before I execute a command is a pain in the neck. I also use the no X version so that I can be browsing in the terminal and pop something up really fast. Its wonderful.

</comment><comment><USER11> What I love most about Emacs is Org mode.

<http://orgmode.org/>

</comment><comment><USER12> SciTE because it is blazingly fast and 100% dependable. Use it for everthing.

</comment><comment><USER13> Because I built it myself :)

</comment><comment><USER14> gEdit. Becuase it's simple.</comment>


Homepage critique and hope we didn't build something no one needs? - <AUTHOR>

Hey there, we're a small team trying to make a big customer service software that does everything the business owner would want. You probably know software such as Zendesk and UserVoice, which are designed to address customer service requests. We've created Helprace, (http://helprace.com) which does the above and offers a feedback community to the business owner on top of that.
Issue 1: We don't know if people actually want a feedback community. We had ONE customer who encouraged us to develop it. So a user, would you want your questions & ideas be publicly visible, in other words would you go through the trouble of posting it? Would love to hear your take on this!!
Issue 2: We just launched our homepage today. Upon visiting, -What do you think it can help you with -What's the number 1 reason that is stopping you from buying? -What's your biggest concern about this product or service? -Is there anything that is confusing on this page? <comment><AUTHOR> [http://helprace.com](http://helprace.com)</comment>