Ask HN: MAC vs PC for a developer? - <AUTHOR> I don't wanna start a new flame war, but work is buying me a new computer and I can chose, but I really don't know what I should pick.
My criteria are: most productive for web development lowest possible maintenance
I mostly develop in python and also do a lot of HTML/CSS editing
what would you recommend and why? what software would you use on a mac? what are the major disadvantages of a mac over pc? <comment><USER2> Mac, most definitely.

For one, Mac OS X comes with a Python version installed. It also comes with a whole toolbox of Unix utilities, including a number of text editors. (There are many other 3rd party text editors for the Mac, too. Though I stick with "vim" or Xcode myself, both of which are included.)

You can't understate the value of being able to pop down to the Unix layer when needed. There are lots of times where a simple "grep" or "cp" or "mv" is exactly what you need, and I love that this is just built in to the Mac. If you aren't that familiar with Unix commands, I think it's knowledge well worth having; most of the basic ones are really not that hard to use.

I have to use Windows at work, and I have to say I'm amazed with how little it comes with. While it is possible to work productively on Windows, I have found this is only true after a large setup cost. So if you don't mind downloading stuff for hours, you can eventually get the right tools. Still, I have never found Windows tools to be as "integrated" as Unix utilities are; every Windows program wants its own scripting language, its own hackish way of doing things (in my experience, that is; YMMV). Microsoft's command prompt is also pretty lousy; it really doesn't compare to a Unix shell, and the idea that you could only get that level of power by installing all of Cygwin, is a turn-off to me.

<comment><USER3> As a web developer, you'll also probably need to test in Windows and IE. For that, get Fusion or Parallels and you can have Windows and OSX running side by side.

<comment><USER4> That's true - and another reason to go with Mac.

On my Mac I can test Mac versions of Safari, Firefox, and Opera. I can also have virtual machines to test for Windows Firefox, IE6, IE7, and IE8 at the same time. If I were on a PC I would only be able to have one version of IE installed.

It's still funny to me that to develop websites that work on all of the Windows browsers a Mac is the only thing that makes sense.

<comment><USER5> "If I were on a PC I would only be able to have one version of IE installed."

That's not true. You can have virtual machines to test multiple versions of IE, too.

<comment><USER6> Microsoft has released a program called "Web SuperPreview". It enables you to compare pages both in IE6 and IE7/8.

[http://www.microsoft.com/downloads/details.aspx?FamilyID=8e6...](http://www.microsoft.com/downloads/details.aspx?FamilyID=8e6ac106-525d-45d0-84db- dccff3fae677&displaylang=en)

<comment><USER7> The performance is kind of "meh", though, especially in VMWare (where it's practically unusable). I personally prefer IETester: <http://www.my- debugbar.com/wiki/IETester/>

</comment></comment></comment></comment></comment></comment><comment><USER8> I have a Mac and a PC and I feel more productive on a PC. I think the main reason for this is that I'm a "maximised windows" kinda guy and switching between windows and tasks feels much more smooth and simple for me in Windows. It may sound like a small thing but because the OS X dock deals with apps, not windows, it can be a pain switching between open windows (yes I'm aware of shortcut keys etc). Also the tendency of OS X to clutter the screen with open windows (which it seems most people are happy with) really frustrates me. Spaces alleviates this somewhat, but I much prefer something like Photoshop on Windows, for example. Much cleaner.

Having said that, the shell in OS X is really useful and a lot of Linux stuff you'll be using (Python for example) feels nicer in that shell than under Windows. Others here have commented on the "unix core" and it definitely is a benefit.

For me, though, I'm content to use Windows and Putty/VNC into my Linux box when required.

If you can, play with a Mac before you buy it. Developers tend to be a picky bunch so what works for others may not work for you.

<comment><USER9> tiled wm like ion3, wmii, dwm open new windows automatically maximized

no need to use mouse to scroll, move, resize, min, max window ... huge time saver

<comment><USER10> As a long-year ion3 user I'd like to second that. The productivity boost is comparable to moving to vim/emacs from notepad.

<comment><USER11> Does ion3 handle standard .desktop shortcuts? A lot of the smaller WMs (with the exception of XFCE) want to re-implement launchers for every app.

<comment><USER10> I don't think so, mainly because ion3 doesn't really have a "desktop". It is fully programmable though, so you could easily write a script that searches your $HOME for .desktop shortcuts and adds those to the builtin menu, creates keyboard-shortcuts or even dock-icons for them.

Personally I have never cared much for desktop-shortcuts. My most used applications are all on the keyboard (F1 xterm, F5 browser) and for the less used stuff I simply "F3, amar<TAB><CR>" (runs amarok via the "launch" shortcut).

</comment></comment></comment></comment></comment><comment><USER12> As someone who is doing programming nearly 90% of my working hours, and someone who used all three major systems (OS X, Vista, Linux), I would suggest you go with a computer that is giving you highest raw metal power for the buck.

If you are really _working_ and not playing around with desktop cpu monitor gadgets or trying out hundreds of time organizing schemes instead of doing some actual work, you will come to the conclusion that it's not that much about the editor, or the OS you are using, it's all about cpu and memory cycles you wait for while compiling, debugging, testing.

Since Macs aren't actually known for their "bang for the buck" ratio (in hardware terms), I'd go with a PC and install either Vista or Linux. Mac OS X simply doesn't add that much value to justify the price difference (plus it has its own quirks and wtfs).

<comment><USER13> _it's all about cpu and memory cycles you wait for while compiling, debugging, testing._

Did you miss the part where the guy did a lot of Python development and HTML/CSS?

"Why are you sword-fighting in the hallway?" "Oh, I'm waiting for my CSS to compile!"

Last year DHH claimed to be doing all his Rails development on a _MacBook Air_ , a wonderful machine which I really like but not the fastest computer around. On the other hand, it's still faster than anything I had years ago. And the speed difference between the Air and my 24" iMac doesn't much matter for Rails, unless you recompile your MacPorts or rubygem docs on an hourly basis.

But, if you see no value in the Mac OS, by all means use something else.

</comment></comment><comment><USER14> PC running Linux is your best bet. Take the money they save versus buying a Mac and use it for a second monitor which I find to be one of the _most_ important development tools. Having your code and browser open at the same time will make your life that much easier.

<comment><USER15> I disagree. I find virtual desktops much easier to use than looking at a monitor that isn't in my field of vision. I would rather press a key than make my body uncomfortable.

(For this technique to work, though, you need to be very comfortable with the keyboard, and you obviously have to disable desktop-switch eye candy. Not a problem with xmonad ;)

<comment><USER16> I use virtual desktops and use multiple screens. I find it much easier to glance back and forth between two screens (or three, or four) than to switch virtual desktops and locate something. (This may be a training effect though)

</comment></comment></comment><comment><USER17> Pick the PC.

If you happen to be starting at the place I work, the only way I can get a Mac is if new employees say they want a PC. Otherwise I'm stuck. I don't know if I'm next on the list, but even if not that'd get me one step closer to my Mac.

So, yes. That's why you should pick a PC.

<comment><USER18> So you pick the PC because there's a waiting list for the Macs?

</comment></comment><comment><USER19> Honestly, if work is buying the computer for you, I'd get a Macbook (or Macbook Pro depending on the budget they're giving you) and run OS X and your Linux flavor of choice side-by-side. Develop in Linux--you may find that you never need to go to OS X so you might even opt to get rid of it. The hardware is really great; the new models are built very well and I hear there is good support for the hardware features like the camera etc. in Linux (double-check that obviously).

Especially for Python, which is installed in Leopard but is frozen at 2.5.1, and general web development, you won't struggle at all in Linux. If you're comfortable in a portable power editor (read: vim/emacs) then you're golden. Plus, apt-get is _incredible_. Coupled with multi-booting or VM'ing, you'll happily test across multiple operating systems and browsers.

</comment><comment><USER20> The only disadvantage of picking a Mac is that (unless they spring for a Mac Pro) you can't stuff it to the gills with RAM.

Until the latest generation of consumer Macs the limit was 4gb, though now if you spend $500 you can get 2x4gb DDR3 for an iMac or Macbook (though the Macbooks can only address 6gb). In the PC world, you can get 4x4gb DDR2 for a desktop Core2 motherboard for $350, or 6x2gb DDR3 for a new Nehalem motherboard for $240.

<comment><USER21> You're doing web development, not building a supercomputer or trying to run your laptop as a high-performance server. That level of RAM is entirely unnecessary on a machine used for dev.

<comment><USER22> I disagree. Doing web dev, you could easily be running a browser with multiple tabs, web servers, db servers, and a handful of virtual machines all at the same time. The more RAM you have, the smoother it all runs. That is unless you like nice little pauses when you switch apps. If you have a 32 bit system, you should have 3GB if you can. 64 bit, throw in 6 or 8 GB. Memory's cheap.

</comment></comment></comment><comment><USER23> Laptop or desktop?

If it's a desktop, I won't comment, that's entirely up to you (maybe others have advice) - I haven't used a desktop regularly in at least a year. If it's a laptop, though, unless you work in a totally Windows-centric environment, a MacBook Pro is the only choice (even in a Windows shop, I'd consider it since you can dual boot and the hardware itself is really nice). Get one N-O-W.

Seriously - these things are freaking awesome, ever since I got one I can't imagine ever buying anything else. I've never met a person that bought one and didn't absolutely love it. First laptop I've ever had that didn't feel like a cheap plastic toy...

Go for a 15" matte screen, though - the bigger ones are too cumbersome, and the glossy screens just suck.

<comment><USER15> _a MacBook Pro is the only choice_

Why do you say that? Thinkpads are built much better, and IMHO are better- looking. You should only get a MacBook Pro if you want to run OS X. If you are going to run Windows or a UNIX, you definitely want a Thinkpad.

(Only disadvantage is that Thinkpads are a real pain in the ass to buy. "Ships in more than 4 weeks." Fuck.)

<comment><USER24> HP Compaq n series are really nice too you guys should check them out. Just like the think pad but less of a pain.

<comment><USER15> I don't see anything on HP's website about an "n series". Link?

</comment></comment></comment></comment><comment><USER25> You need a *NIX system with some sort of port system (i.e. MacPorts, aptitude, etc.) and the ability to open VM's to test a bunch of the configurations that come up. Mac, Ubuntu both qualify. Windows is sorta possible via Cygwin.

Particularly since work is buying the computer, I'd get a Mac for the hardware, and then decide what OS to throw on it later. You can run whatever you want on a shiny new Macbook Pro.

</comment><comment><USER26> 1) You just did.

2) Intel/Mac or Intel/Linux, so you can run IE6/7 in a VM/Wine. Macs are lower maintenance.

3) TextMate/Coda or Xcode (or Scribes in Gnome) will be your definite friends, as well as Terminal and Firefox/Safari's debugging features. Python and the relevant libraries come with both systems and are easy to add to.

4) Would not recommend any Windows version for doing either development or design. Or anything mission-critical, for that matter. All the software you _need_ comes with the Mac in the "Developer Tools" package on your Leopard DVD or in the public repositories for your Linux distro. You'll find many more choices are available, and you may even fall inlove with some.

Major disadvantages of a Mac over PC would be that the hardware is mostly set in stone at the time of purchase, which can, even if rarely, become a nuisance. There is some very strong classic gaming going on on the platform, but new titles often go on by not noticing OS X, which can be a bummer if you like your machine to be your do-everything, including being a gaming console. There are no disadvantages in relation to development, however.

 __And now for something completely different: __don't let them buy you a Mac _if you won't own it_ when they do. That is, there will most probably come a point when you'll _want to_ own it.

</comment><comment><USER27> Since so many pros and cons have already mentioned, I'll just add that the Mac keyboards are not so super for coding (at least the german ones). It doesn't have "Home", "Page Down", "Page Up" or "Del", other keys like "~" and "\" require weird keyboard combos ("\" = alt+shift+"/"). Probably not an issue if you are a whiz with Emacs or Vim, but I tend to not remember many keyboard shortcuts, so atm it still bothers me occasionally (I am fairly new to OS X).

The MacPorts package manager works surprisingly well, but I still miss my Ubuntu when I have to install other stuff than the Unix things.

Also, the preinstalled programming languages on OS X might get in the way of the ones you install with MacPorts. Another case where I prefer Ubuntu, because it reduces the number of "app managers" messing with the system.

<comment><USER7> Assuming you're on a laptop, Fn+up/down = page up/down, Fn+left/right = home/end, and Fn+backspace = delete.

<comment><USER27> Thanks!!!

</comment></comment></comment><comment><USER28> My work just bought me a mac book pro, and coming from a souped up desktop running Linux, there were some upsides and downsides. Personally I would pick Apple hardware if you can get it and run OS X, but if you've never used Linux or OS X, odds are good that unless you really want to rethink how you use your computer, Windows is going to be the best choice for an operating system. One of the benefits of OS X, as others have mentioned, is the Unix core, but the applications for OS X are really awesome as well - Textmate, CSS Edit, Things. However, if you normally develop on Windows, the application centric vs window centric model of OS X takes some getting used to. Personally I prefer OS X's window manager over Windows, but that's just me.

</comment><comment><USER29> If you need to use Photoshop for your HTML/CSS editing (for taking image from layouts, for example), dont go with Linux. Because you will not have the possibility to install the latest version of Photoshop in any version of Linux. Sure you can use a VM for things like that, but Photoshop requires a lot of memory. Sometimes you'll have to open a 100 megs Photoshop file (PSD files can really be huge like that)... Because of this, i cannot imagine myself using something else than a Mac or Windows. Unfortunately, because i love Linux otherwise.

</comment><comment><USER30> I find a combination of OSX with an Ubuntu VM (vmware) works really well. That way you can keep your dev environment the same as your production linux machine .. it's pretty hard to beat apt-get.

By using VMWare, the OS you use doesn't actually matter that much as long as you have a decent terminal and your personal editing weapon of choice (jEdit in my case).

</comment><comment><USER18> While there are a number of long-winded arguments that could be made in favor of X vs. Y, Mac vs. Windows or otherwise, it's hard to argue against the simplicity of the OS X platform.

Windows is inherently high maintenance in my experience unless you keep your installed applications to a very specific short list. Uninstalling software, or worse, drivers, can be an exercise in frustration.

I've never had an issue removing software on OS X as applications are generally quite well behaved or they're effectively managed by the Darwin Ports system.

It's also great that doing source installs on OS X is trivial. I don't think the same can be said for Windows. Tradition is to go the binary installer route there, and there's so many badly written installers.

While I respect those that choose to use a Linux-based desktop, as it can be quite a chore to keep up to date and tricky to get different apps to work together politely, I'd say that approach only works for people with intimate familiarity with the various quirks and caveats of their distribution. To get something like Debian, Ubuntu or Gentoo running in top form takes talent.

Making Windows into a productive development environment can be just as much of a challenge, too, and there's some things that can never change. The registry is a persistent horror, drive letters and backslashes in paths are an extreme nuisance, and the second-class status of things like a proper command line shell and compiler are just examples of my grievances with Windows.

While it's possible to glue together a workable environment in Windows, especially if it's just for something simple like PHP + MySQL, once you really want to stretch your legs and be more adventuresome you may run into trouble.

Although it could be fanboyism, 99% of the people I see at web-biased conferences are on Mac machines. It's the singular dude using the Dell who's doing the "think different" thing.

</comment><comment><USER9> if someone pays for me: mac

if i have to buy myself: used pc for sale, install openbsd/ubuntu and i'm ready

but of course ...

no vim ... no work

</comment><comment><USER31> I'd go for a Mac. If it's too expensive Linux computer would do. Windows use a lot of resources (IMO) which would be very necessary in web-side development.

</comment><comment><USER32> So you're saying you mostly edit text? There are only so many variations on typing things on a keyboard and having them appear in a text editor. You'd probably be fine either way, so you're really just looking at cost.

I'd suggest that if you've never used a Mac, the potential lost productivity you'll have using and learning an unfamiliar OS could be a burden to you.

What have you been developing on up to this point?

</comment><comment><USER33> I also do a lot of Python development and a bit of HTML/CSS work. I recently had to toss up the pros and cons of an MBP versus a Dell XPSM1530. The 1530 won on the grounds that it was £700 cheaper than the Mac, more powerful and a better screen. The related cons (Vista, being a Dell) aren't so bad and I'll upgrade to Win7 when it comes out.

</comment><comment><USER34> You need to have access to and be competent on all systems.

My weapon of choice is the MacBook Pro. Pretty fast hardware. Swap in a 500gb hdd and triple (or more) boot os x, windows (xp and vista), ubuntu, bsd, etc.

Or you can get a bunch of different machines and use synergy. I found that to be most useful for testing web stuff across platforms.

</comment><comment><USER35> What do you guys think of Freebsd? Hardware and software availability? And can I run stuff like Skype, VMWare and Flash?

<comment><USER36> It has a quite good hardware support. Unfortunately, flash isn't available, but you can run skype with the linux emulation layer.

</comment></comment><comment><USER37> get a mac pro with gobs of ram. thats what i got a couple years ago. use it to rock vm instances of windows/linux/solaris whatever. mac is, by far, the leading dev tool in this space.

going to various computer/dev conferences over the years it was hard to not notice the rise of apple laptops to the point where they are at least 60% of all laptops seen at these conferences.

nevertheless, whatever you do - mac or pc - be sure to get at least two monitors. studies have shown, and i can attest, that multiple monitors is the number one thing you can do to increase your productivity.

my rig: <http://www.flickr.com/photos/9864615@N06/756229467/>

</comment><comment><USER38> if you don't need gaming, I'd get a linux box ( or a mac ), and run windows in a virtual machine.

</comment><comment><USER39> get whatever you use at home

<comment><USER40> Better to get whatever matches most closely your deployment environment.

</comment></comment><comment><USER41> linux, duh

</comment><comment><USER42> Linux Box running proxmox virtualisation if you're serious about web developing you'll be wanting to test your sites in multiple versions of I.E, Firefox & Webkit & Opera. That means running Windows at some point, virtualisation is your best way. I run ProxMox virtualisation <http://pve.proxmox.com/wiki/Main_Page> which runs a Linux in OpenVZ for running the HTTPD stack and various 2k/XPs etc in Qemu.

But the answer shoudl really be : the one that runs the tools you use in the best possible way.

I run Plan9 for my text editing requirements and I say it was the best I've come across. so YMMV

</comment><comment><USER43> For desktop web development all you need is an iMac 24" and Photoshop.

Nothing else...

</comment><comment><USER44> Don't forget that on OS X you would find Textmate, which has no match yet. On windows the best editor would be Notepad++. But nothing comes closer to Textmate. If you wish to save some money, then better got for a PC.

<comment><USER19> That's quite an opinion you've thrown there. I run OS X and refuse to use anything but Vim--but I'm not going to try convince developers to switch. I think it's a little ridiculous (even though I'm sure it happens) to switch to an operating system exclusively for Textmate...

I'm not saying you're necessarily wrong, but it's completely unreasonable to say Textmate has "no match yet". And, for the record, yes, I do own a copy of Textmate, and wasn't happy with it after several months of usage and went back to Vim. MacVim is my editor now.</comment></comment>


Swiss hospitals rely on fax to transmit Covid-19 data - <AUTHOR> Hospitals in Switzerland, allegedly one of the most innovative countries worldwide, heavily rely on fax to transmit Covid-related data to the federal government.
Article in German: https://www.nzz.ch/schweiz/coronavirus-das-bag-kommt-bei-erfassung-der-faelle-kaum-hinterher-ld.1547359
I've been told by a reliable source that someone came up with the idea to use deep-learning to extract the information from the faxes.
Is this tragic, idiotic or completely normal? <comment><USER2> Fax, being a handshaked and unshared network has hung on in many applications due to it's security. Hard copy at each end = filing pain in the ass. Also good for Japanese/Chinese writted ideograms

<comment><USER3> Except when it goes through fax-to-email?

<comment><USER2> Yes, then the intrinsic e-mail risk vectors come into play</comment></comment></comment>


Airliner reports debris field SE of Ho Chi Minh - <AUTHOR> http://avherald.com/h?article=4710c69b&opt=0

<comment><AUTHOR> Relevant text:

Hong Kong's Air Traffic Control Center reported on Mar 10th 2014 around 17:30L (09:30Z) that an airliner enroute on airway L642 reported via HF radio that they saw a large field of debris at position N9.72 E107.42 about 80nm southeast of Ho Chi Minh City, about 50nm off the south-eastern coast of Vietnam in the South China Sea and about 281nm northeast of the last known radar position. Ships have been dispatched to the reported debris field.</comment>


The Decline of the Baronial C.E.O - <AUTHOR> https://www.nytimes.com/2017/06/17/business/ge-whole-foods-ceo.html <comment><USER2> I think this parallels the situation in the startup economy. Founder-CEOs are the norm today, as opposed to the older baronial CEO types who walked, talked and looked like old school VC firm partners.

It used to be that you needed a lot of capital to enter markets - you had to build a data center, hire people, build and sustain in the hope of a market. For that you needed money, and for old school VCs to feel comfortable, they wanted someone in their mold, and who they could trust. So founders became CTOs and VPs of Engineering, and picked someone the VCs could get behind to raise money.

But with the cost of starting a company plummeting, founders no longer have to show this deference. And as some of these companies succeed, their founder CROs are now the new rock stars. And a new breed of VCs asks looks for performance metrics and worries less about fitting a theoretical mold. If there is a mold, it's the founder-CEO in their minds, not the old school baronial CEO.

I think a similar dynamic operates in larger companies as well. The necessity of capital acted as an automatic restriction on competitors emerging. Companies could charge high prices, make higher profits and build private five-star hotels.

With the cost of building a business dropping however, markets are more competitive than ever, and it's much harder to charge the prices required to sustain profit growth expectations. And investors of course will have no patience for the lavish perks.

The times they are a changin'.

<comment><USER3> > It used to be that you needed a lot of capital to enter markets - you had to > build a data center, hire people, build and sustain in the hope of a market.

I'd say that this is still the norm with some lucky exceptions in the Valley, but the Valley itself is a huge capital investment (public and private). If you look world-wide, nobody can compete with Facebook, Google or Apple, even with high investment in data centers, people, etc. Our economical system gives a lot of benefits to monopolies.

<comment><USER4> Perhaps more importantly nowadays with this gen of unicorns: Companies are willing to spend a looooot more on acquisition of users, beyond the actual value of the users. Mainly to try a monopolistic play.

Uber is the typical example of "turn money into market share", though you can see a lot of SV companies nowadays spending a huge amount in this space.

</comment></comment></comment><comment><USER5> Nothing about CEO salaries or compensation or wealth, though, which would seem to be the true measures of CEO status.

<comment><USER6> gwern! Are you the same from gwern.net?

I think this article made clear that Fortune 500 CEOs are getting paid a lot --- more than in the past. For example, "So while boards are still willing to dole out huge golden parachutes to C.E.O.'s, even if they fail, they've become much more generous with money than they are with additional time."

But just like any form of 'money,' it's not just dollars. Money is a form of status, but so is power, reputation, stocks, and more. It seems like 'staying power' would be a truer form of status than 'cash' alone.

Frank Underwood once said: "Money is the Mc-mansion in Sarasota that starts falling apart after 10 years. Power is the old stone building that stands for centuries." Not that he is real or anything, but it's a powerful quote.

<comment><USER5> (I am.)

CEOs may have shorter durations, but that may be illusory in that they can be engaged in a revolving door between companies or the public/private/academic sectors. I'm also not too impressed by the article's talk about opulent offices seeming old-fashioned - opulence is relative, and a personal Gulfstream, however spartan, that one is riding to one's mansion in Tahiti is far more opulent than some marble floors or dumbwaiters in Michigan. If Jeff Bezos has a table made of a door from Home Depot ( _cough_ ) does that make him any less baronial? Compensation, however, and cases like Snap going public with 100% non-voting shares are far more indicative of the true power of CEOs than some office design or hamhandedly publicly bloviating & dabbling in politics (rather than donating behind the scenes).

</comment></comment></comment><comment><USER7> > Not only did Mr. Immelt have his own bathroom

Crazy that this is a big enough deal to be worth mentioning in the article.

Honestly, after several years of working from home, the whole bathroom situation has perhaps been the hardest part of corporate life to get used to.

</comment><comment><USER8> From the article"

>"Google's Class B shares have 10 times the voting power of normal shares, enabling the founders, Larry Page and Sergey Brin, to retain control of the holding company Alphabet without owning a majority stake."

This implies that these two are the only two posses shares with voting power, is this accurate?

The article also references FB and the consolidation of voting stock in one individual. My question is what is the protocol if something were to happen to person or persons who retain all these voting shares - death, or incapacitated etc?

<comment><USER9> Iirc Schmidt Page Brin combine to control the majority of votes. This tight control will lapse when the Schmidt estate goes through a generational estate transfer event and liquidates shares to conver taxes (since he is the oldest of the three).

<comment><AUTHOR> In anticipation of that, though, the three could form a new share structure that consolidates power in Brin and Page.

</comment></comment></comment><comment><USER10> It's not just CEOs, all white collar workers are changing from a somewhat hallowed position to just another job. As blue collar jobs disappear competition increases for the positions left and many white collar office positions seem more like factory workers than knowledge workers. It used to be that a college degree would guarantee you a job, now it guarantees you an internship at best.

</comment><comment><USER11> Only ones it seems left with privilege are those who have a lot of capital. Everyone else has been reigned in to serve them and their needs and interests. Which I guess is how meritocracy works.

<comment><USER12> Nah, folks with capital think that they're being screwed too. It's very hard to find investments with positive inflation-adjusted returns, and when you do, the perception is that they're often overvalued and hence quite risky. Public- company shareholders who thought they had a steady dividend-paying income source are finding that even the steadiest dividend-paying income sources are going out of business or getting bought in transactions that shareholders have little leverage on.

What's really happening, I suspect, is that we're living in a time of great change where all existing institutions are steadily decaying and eventually collapsing. And so if you can identify a group as a class and write about them in a news article, chances are they're getting screwed. Plenty of individuals are _not_ getting screwed and are profiting massively off this, but they belong to groups that didn't have labels a decade ago, like "tech startup founder" or "import/export business owner" or "Chinese contract manufacturer" or even "data scientist". These individuals have a very strong incentive not to crow about their success, because when everybody else is getting screwed and you say "Oh, actually I'm doing better than I ever expected", you paint a big target on your head.

<comment><USER13> >It's very hard to find investments with positive inflation-adjusted returns

While I understand that you're perhaps not asserting this personally, and are restating the words of others it's important to say that this part is absolutely untrue. In fact, if somebody with wealth _actually_ believes this, and isn't just using it as propaganda in class warfare, that person is a poor steward of capital and it would be best if it were in more capable hands. Trivial investment choices, like total-market stock index funds, have solid returns that easily beat inflation, and little to no risk on 10 year time scales, which is where investment should take place. If they can't stomach any temporary negative dips, TIPS will give them that. In any case there is an abundance of easy, inflation-positive investments out there just lying around. Even the middle-class that have saved small amounts can get first-class investment in index funds.

<comment><USER14> Totally agree, this drives the point home: [https://www.fool.com/investing/2017/02/26/warren-buffett- jus...](https://www.fool.com/investing/2017/02/26/warren-buffett-just- revealed-the-best-investment-m.aspx)

</comment></comment></comment></comment><comment><USER15> Like it or not, the CEO is working class. It's a job, like yours, with a boss. And they, like the rest of the working class, had more power in the mid-recent past than they do today. Today, 40% of wealth is owned by 1% of the population. And the 1% are _not_ CEOs. This capital concentration has greatly reduced the influence of a CEO.

<comment><AUTHOR> It depends on what you mean by "the CEO." If we're talking about S&P 500 CEOs (which is itself an overly broad proxy for the "corporate giants" that are the subject of this article), they're definitely members of the 1%.[1]

[1]: [http://www.equilar.com/reports/48-associated-press-ceo- pay-s...](http://www.equilar.com/reports/48-associated-press-ceo-pay- study-2017.html)

<comment><USER16> I full heartedly disagree. Maybe the number "one" is wrong, maybe it's 0.1%, but the industrial emperor is not the same kind of people as today's typcial CEO. Today's CEOs have to be hard working, good looking, result oriented people, just like you and me fearing to get wacked at any mistake or delay. It's just that they live on a higher level than we, but still the same kind of life.

The "Baronical CEO" is the kind of guy who grows a belly in his fourties, and spends just as much time in the club with the other guys drinking and pretty girls as in the office. This is not today's typical CEO.

However, if you want to imply that even the richest of the richest are sh*tting their pants because they also don't know how everything will continue, then I would agree as well. It's likely that fewer and fewer people have a relaxed life, and those who have mostly live that way due to lack of oversight.

<comment><USER17> _> Today's CEOs have to be hard working, good looking, result oriented people, just like you and me fearing to get wacked at any mistake or delay._

And their failure case is a golden parachute, not penury. _Little bit different._

<comment><USER16> I would agree with that point if it would result in CEOs being less hard working people.

What all people want is a stable, save, maybe a little boring, position that shows other people they are respectable and that pays the monthly bills. But not even the highest level of employee has that safety any more. And while they get more money even when they get fired, a fired CEO is still considered a loser, just as you and me, and they fear being considered a loser just as much as you and me. And maybe what increases their pressure back to the sam level as ours is that their failure is way more public than ours. If you lose your job and you get a new one, you can pretend everything is just as it was before. They can not. Everybody has seen the articles in the news paper and know some (true or not) reasons for why they failed.

<comment><USER17> A fired CEO of a company in the orbit we're talking about (I mean, I'm the "CEO" of a company, but I obviously am not pulling in a hojillion dollars a year in revenue, so, different thing) doesn't need to ever work again. A CEO might be "labor", sure, but they are compensated sufficiently to _de facto_ buy into _capital_ in a way even people not too many percentiles down never, ever can. This is a difference of kind.

The question here isn't "do you work hard," it's "are you labor or have you capital", and the difference when the latter is true is _overwhelmingly transformative_ compared to when only the former is true.

<comment><USER18> There's some survivorship bias due the "orbit we're talking about".

The reason the new CEO is coming into place is that the old one didn't work out as intended, and the board has set its sight on someone they think would do a better job. Such desirable person is usually not living off unemployment benefits, is comfortable financially already, therefore has little motivation to jump ship unless he gets a substantial increase in pay.

The board could potentially hire via an ad in the paper or a temp agency advertising a salary at 50c above minimum, saving stockholders (themselves included) massive amounts of money, but yet even the most financially stingy and cost-hawking shareholders - private equity folks and activist shareholders - usually don't resort to that.

<comment><USER17> Sure.

If they're under _consideration_ for such a job, what I said more often than not holds true, too. We're fundamentally not talking about "labor" in the sense that erikb was using it, we're talking about labor-with-capital-access and that's just a straight-up different story.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> As others have said, taking such a superficial shift as indicative of power dynamics is ludicrous.

I wonder, how much can culture and fashion, rather than technology or globalization or something else directly effecting the market, change this? Could it simply be that mad men shmoozing is out, "data driven" workaholism is in?

<comment><USER20> As the article alludes, economic growth makes things easy for idiots. Once stagnation sets in, competition rises and the focus is on productivity growth and efficiency which means tech and cost cutting. Technology sector would not be doing nearly as well as it is if we had 6% GDP growth.

</comment></comment><comment><USER21> There are lots of issues that this article doesn't touch on. I believe that large companies have become exponentially more complex as IT has come to underpin business processes. Competition has intensified both for markets, people and capital.

The CEO's job has become, in my perception, undoable. Compensation has risen because the incumbents are trying to defenestrate themselves on a daily basis, and yes, yes there is a queue of eager applicants for the hot seat, but almost all of them are dribbling lunatics. The sensible, committed super sharp of suite c start shouting and screaming and fighting as soon as it's mentioned that they might be given the CEO role in the future - they know that it's a nightmare.

The problem that boards have got is that the complexity has created an ecosystem of corporate types, it's become rich enough to support niching and evolution, and what we see is The Red Queen. Peacock tails of fashion, pose and fucking powerpoint decks dominate. Not only in the corporate itself but amongst the swirling flock of carrion feeders that surround it.

I've been witness to/unable to hide from three "blue skys" exercises in corporate structure and strategy from "managing consultants" "auditors" and "boutique consultants". All of which were announced as opportunities, all of which were simply shakedowns and all of which are conducted in the medium of powerpoint slides.

Until a powerpoint slide is not interpreted as a signifier of understanding corporates and corporate life will decline.

My only hope at this point is the punchline of the red queen story. Peacocks are great, right up until they meet a fox.

<comment><USER15> > All of which were announced as opportunities, all of which were simply > shakedowns

Shakedowns by the consulting firms? Can you expand bc isn't it the CEO or other exec who hire these guys in the first place

<comment><USER22> At least in the UK, publicly traded companies must have their accounts independently audited. But they're also allowed to hire those independent auditors to provide consulting services.

This presents a pretty big conflict of interests - a company making £££ in consulting fees isn't going to want to sour the business relationship by being a hardass during the audit.

Essentially every time there's a major fraud or accounting scandal, it'll turn out the auditors were also retained as consultants.

<comment><USER15> So the consulting firms are the ones being shaken down? Or what? I don't see how that's a "shakedown" for the company as if they are in compliance there's no need for them to pay for the "consulting shakedown" for better treatment. Unless you are talking at a systemic level where, in order to compete, companies HAVE to operate out-of-compliance and use these consulting arrangements in order to prevent being exposed.

<comment><USER23> I think op just meant that they do bad work for exorbitant prices. And gp showed some of the pressures that can drive firms to buy optional services from consulting firms: desire to maintain a "good relationship" or possibly just discounting and bundling.

Also, the big consulting firms are generally known for aggressive upselling. It's often a core part of their business model. Once you've got em on the hook...

So, TLDR: Not shakedown as in extortion, shakedown as in bad service for a bad price.

<comment><USER21> Yes - this.

</comment></comment></comment></comment></comment></comment><comment><USER24> I have disliked the "Online Forums" approval requirement in Whole Foods Business Code of Conduct for a while now.</comment>


Cherow ecma parser 1.4 landed - <AUTHOR> Cherow v. 1.4 is a total rewrite and offers:
-20kb smaller code size than acorn minified and 60 kb smaller than Esprima
- twice as fast as both acorn and Esprima except for JSX parsing. Here is Cherow 3x faster than Acorn.
- full support for Stage 3 proposals
- jsx through option
- Modular
And more...
Why another parser? Simply because existing parsers have many issues with them:
- Acorn is the most commonly used tool out there because of its support for recent ES standards, but it's slow and it often is too permissive in what it accepts. It's also not optimized for handheld devices.
- Esprima is a little faster than Acorn, but it's almost never updated, and their test suite has too many invalid tests. It also doesn't support recent ES standards.
- Babylon is highly coupled to Babel, and is comparatively very slow and buggy, and failing to correctly handle even stable ECMAScript standard features.
None of these parsers would fare any chance against the official Test262 suite, and most fail a substantial number of them.
Cherow v. 1.4 is not perfect, but address most of this issues. Still there are room for improvements.
1 main dev and 2 other devs behind Cherow sharing same nick.
All issues will be solved within 1 hour from the moment we get notified.
You don't have to wait couple of days or 3 years before your issue is fixed.
URL: https://github.com/cherow/cherow <comment><AUTHOR> [https://github.com/cherow/cherow](https://github.com/cherow/cherow)</comment>


How the USGS uses Twitter data to track earthquakes - <AUTHOR> https://blog.twitter.com/2015/usgs-twitter-data-earthquake-detection <comment><USER2> _If they're getting reports of an earthquake in a populated area but no Tweets from there, that's a good indicator to them that it's a false alarm._

The other alternative is that the earthquake was so strong it destroyed all the infrastructure in the area, leaving people unable to even tweet. You have to consider all the failure modes carefully; an analogy that comes to mind is cargo smoke detectors in aircraft - if one shows a fire but the indication disappears shortly afterwards, there's a chance the fire destroyed the cabling too.

<comment><USER3> I think it's _pretty_ likely that a seisomograph somewhere else is going to notice an earthquake of that magnitude.

</comment></comment><comment><USER4> Randall Munroe is a prophet!

[https://xkcd.com/723/](https://xkcd.com/723/)

<comment><USER5> The alt text for that comic is "The USGS operates a really neat email/SMS earthquake notification service (earthquake.usgs.gov/ens/) that allows fine- grained control of notifications." Sorry to be a fun spoiler!</comment></comment>


Money Stuff: Stocks Are Trying to Forget 2020 - <AUTHOR> https://www.bloomberg.com/opinion/articles/2020-06-01/stocks-are-trying-to-forget-2020 <comment><AUTHOR> Podcast link for today's Money Stuff [https://anchor.fm/talking-money- stuff/episodes/Stocks-Are-Tr...](https://anchor.fm/talking-money- stuff/episodes/Stocks-Are-Trying-to-Forget-2020-ees53v) . For people who like to listen and not read.</comment>


Ex-Goldman Programmer Guilty of Stealing Code – WSJ - <AUTHOR> http://www.wsj.com/articles/jury-gives-split-verdict-in-trial-of-former-goldman-programmer-sergey-aleynikov-1430496291?KEYWORDS=Sergey

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

</comment><comment><USER3> Too bad. I'd rather see him writing Erlang code than dealing with that mess. It seems he's already suffered quite a bit personally and professionally.

<comment><USER4> Well, stealing source code from your former employer right as you start a gig paying 3x as much is going to result in some personal and professional ramifications. What he did was unethical and stupid.

When I was learning Erlang (2009), I did benefit from some of his tutorials on OTP, though.

</comment></comment><comment><USER5> A former Goldman Sachs Group Inc. programmer was convicted in a split verdict of stealing the bank's "secret sauce" high-frequency trading code, ending a tumultuous trial but leaving open the chance the yearslong saga could continue.

A New York state court jury in Manhattan on Friday convicted Sergey Aleynikov on one count and acquitted him on another. The jury was unable to reach a decision on a third count. Justice Daniel Conviser dismissed the jury Friday afternoon. Mr. Aleynikov, 45 years old, faces the possibility of up to four years in prison.

The conviction was the second time in five years a jury concluded that Mr. Aleynikov stole portions of Goldman's computer code. He was convicted in federal court in 2010, but acquitted by an appellate court in 2012. Manhattan District Attorney Cyrus R. Vance Jr. charged him under state laws in 2012.

The latest trial was marked by the arcane and the bizarre. Jurors appeared to struggle with how to interpret and apply laws designed well before the computer age, asking several times for charges to be read and for definitions of various words. Midway through deliberations one juror accused another of poisoning her lunch. Both were dismissed by the judge.

Even the trial arguments were unusual. Both sides agreed Mr. Aleynikov stole the data. But the defense argued he didn't break the law, just Goldman's confidentiality policy. Mr. Aleynikov's lawyer, Kevin Marino, repeatedly accused prosecutors of acting in bad faith, prompting outrage from the district attorney's office.

Mr. Marino said the split verdict was proof the jury didn't understand the charges, and that Justice Conviser shouldn't have allowed the jury to deliberate over a case whose core debate is a legal matter, not a factual one.

"You've had a jury struggling with this because they're performing a judicial function they're ill-equipped to perform," Mr. Marino said.

Mr. Vance praised the verdict and said his office would continue to pursue similar cases to "ensure the integrity and fairness of our marketplaces."

"By allowing individuals, corporations, and government entities to safeguard valuable information, we are encouraging and supporting the research, innovation, and entrepreneurship that is so important to our city in an increasingly competitive digital and global market," Mr. Vance said in a statement.

Mr. Aleynikov emerged as a hero in some circles, in part because of his prominent feature in Michael Lewis's best-selling book "Flash Boys," about high-speed trading. Some in legal circles felt his second prosecution was overly aggressive, making Friday's verdict a victory for Mr. Vance, if an incomplete one. But, as with the first trial, the verdict may not be the end for Mr. Aleynikov.

Justice Conviser said Friday that he would rule within six weeks on a defense motion to dismiss the case on grounds of legal insufficiency. The judge has previously appeared to express doubt about whether the decades-old state law under which Mr. Aleynikov was charged applies to his conduct. The defense also could appeal if the judge rules against the motion.

The appeals court had acquitted Mr. Aleynikov because it said federal law didn't apply to the case. Some legal analysts took that ruling as an invitation for the Manhattan district attorney's office to charge him under state laws, a move that didn't trigger double jeopardy immunity.

Mr. Aleynikov served a year in prison after his first conviction. He went through a divorce and lost his career as the case has unfolded. He walked around the courtroom anxiously after the verdict was read Friday and the jury had left. On Friday, the judge released him from bail conditions and said he wasn't a flight risk.

The trial was unusual in that both sides almost entirely agreed on the facts, but disputed whether New York state law applies. Two of the charges accuse Mr. Aleynikov of unlawfully using secret scientific material to appropriate the "major portion" of its economic value, and a third charged him with duplicating it for his own use.

The jury acquitted Mr. Aleynikov on the duplication charge, convicted him on one secret scientific-material count and couldn't reach a verdict on the other. He was charged twice on that front because prosecutors alleged he stole bits of the code on two separate days during his last week at Goldman Sachs.

Throughout the deliberations the jury appeared to wrestle with the law. The jury sent repeated notes to Justice Conviser, requesting clarifications on legal terms and asking to have his instructions on the law read back to them.

The jury was further distracted when a quarrel between two jurors erupted this past week when a female juror accused a male juror of poisoning her lunch. She told the judge she became suspicious when an avocado went missing from her lunch, and that her concerns were amplified when the male juror used a pharmaceutical company as an example during deliberations. Justice Conviser said he had concluded the accusations had "absolutely no basis in fact" and dismissed the two jurors before allowing the remaining 10 to continue deliberations.

Mr. Marino, Mr. Aleynikov's attorney, has alternated between antagonizing the judge and praising him, and Friday was no different. After the jury had been dismissed, Mr. Marino urged the judge to give his ruling on dismissing the case Friday, sparking a rebuke from Justice Conviser.

"I'd be embarrassed by this verdict if I were you," Mr. Marino said.

"Well, I'm not," Justice Conviser replied.

Later, Mr. Marino said he had the utmost respect for the judge and appreciated his handling of the trial.

Mr. Marino has argued that because Mr. Aleynikov didn't appropriate the code to Goldman's detriment, and because he didn't intend to profit from it, he didn't break the law. Goldman continued to use the code and earned profits from its high-frequency trading system after Mr. Aleynikov transferred some of the code, he said.

The judge appeared sympathetic to another argument that Mr. Aleynikov didn't illegally duplicate the code because he didn't make a "tangible" copy of the code, as binary computer bytes don't have a physical form.

Mr. Marino has long alleged Goldman flexed its political muscles to persuade prosecutors to target Mr. Aleynikov. The bank's shadow loomed throughout the proceedings, and Mr. Marino frequently referred to the allegation, even pointing out that Goldman lawyers were sitting in the courtroom.

Goldman has previously declined to comment on these allegations.

Write to Christopher M. Matthews at email@example.com

Corrections & Amplifications

The jury was unable to reach a decision on the third count. An earlier version of this story misstated that the jury acquitted Mr. Aleynikov on that count.

<comment><USER6> If your referrer is google.com you can access it for free, for example [https://www.google.com/search?q=http%3A%2F%2Fwww.wsj.com%2Fa...](https://www.google.com/search?q=http%3A%2F%2Fwww.wsj.com%2Farticles%2Fjury- gives-split-verdict-in-trial-of-former-goldman-programmer-sergey-aleynikov)</comment></comment>


VectorMagic from Stanford - Converts bitmap images to vector art - an online auto-tracer - <AUTHOR> http://vectormagic.stanford.edu/

<comment><USER2> Holy diety, this is severely cool. If only there was a desktop version...

<comment><USER3> Some desktop image editors let you do this, although usually with a less user- friendly interface. Inkscape (free) does this (.svg export), and Xara Xtreme (cheap and worth the price) does it too. I'm not sure how the results compare to the online tool for logos, but they are quite good for photos.

<comment><USER4> I've always been fairly disappointed in every 'vectorizing' tool I've tried. I have yet to try this one but the examples look incredible.

</comment></comment></comment><comment><USER5> Frickin' awesome.

</comment><comment><USER6> this honestly isn't that spectacular. I have coded stuff like this in my spare time.</comment>


Deep Reinforcement Learning Doesn't Work (yet) - <AUTHOR> https://www.alexirpan.com/2018/02/14/rl-hard.html <comment><USER2> This article deserves way more attention. The Atari DQN paper was a really buzzy thing when it came out. It's been over four years now and we haven't seen DQN and similar Deep RL techniques generalize well.

</comment><comment><USER3> I laughed so hard at the Local Optima example video</comment>


Has anyone ever used an ORM and at some point just "swapped out" their db?   - <AUTHOR>

<comment><USER2> I did, almost twice.

First time it was a home-grown layer on top of the DBMS (MS SQL Server at the time). After an investment we've got a requirement to switch to Oracle. We anticipated that (or something like it) when designing the system, so it went smoothly.

Second time it was using MySQL from Sun workstations, with the idea of eventually switching to Oracle. That's why "almost" - we knew about the requirement in advance, so we didn't create hard dependencies on MySQL. Yet we didn't constantly test our system vs. Oracle either.

Admittedly the latest of these happened more than 10 years ago.

</comment><comment><USER3> I swapped from MySQL to Postgres, and everything worked fine, although I dunno if you'd called Ruby ActiveRecord an ORM...

</comment><comment><USER4> I do it all the time in early stages of app development, moving between SQLite/MySQL/Postgres.

Once you get into production it's a different story. A good ORM makes it easy to swap to a different DB without need for code changes. What it does not help with is the much bigger problem of how to migrate the data, indicies, backups, replication, etc. that you'd have in place for a production database.

</comment><comment><USER5> I'm not sure I understand the question. I've used an ORM with a codebase that used different databases in development and production, so in that sense, yes. But if you mean "swapping" a production database for another, that's not really how I'd describe it. If you're switching from one database system to another, that sounds like a major migration, not just a "swap." You can't exactly just drop a SQL Server database into PostgreSQL and assume all is well, can you? So I'm not sure where the ORM angle comes into this — a major database migration is a task in itself. (Or maybe I'm just a bad sysadmin? Entirely possible, I suppose.)

</comment><comment><USER6> We provide a downloadable offline version of the site that syncs with the main web site.

Production runs on PostgreSQL and the offline version uses SQLite. Other than a very thin shim layer around database migrations all the code is the same and uses NHibernate

The unit tests run 50/50 against PostgreSQL instances and SQLite

Occasionally I have to stop myself from trying some cool new PostgreSQL specific feature. But generally everything 'just works'

</comment><comment><USER7> I love the idea of an ORM but I always find myself relying on database specific features and end up stuck anyway. Last time it was my use of geospatial indexes in MongoDB :/

</comment><comment><AUTHOR> to try to be a little clearer - I meant swap amongst MySql/Oracle/SQLServer/whatever. It seems that this was (still is?) one of the purported advantages of an ORM in general, and I was just curious how often it really even comes into play.

<comment><USER8> The benefit of using an ORM is that if you did want to change the type of database, most of your code would be able to go unchanged (theoretically). If you did switch, you should be able to just change a config file to let the ORM know which database you are now using. The ORM will then run the correct underlying queries.

This usually comes with a hit to performance though. Raw queries are generally quite a bit faster. So if you dont plan on changing databases on a project, it might be beneficial to skip the ORM where possible.

The ORM also doesnt help you with migrating the records from one database type to another. So if you already have established records that is a separate issue.

</comment></comment><comment><USER9> Switched from MS SQL to MongoDB with a custom written ORM.</comment>


Ask HN: Best way to do a coding exercise for a phone screen? - <AUTHOR>

I'm conducting phone screens for candidates.  Let's assume for now two things:
1) We want to do a phone screen before onsite interviews and
2) we want to have the candidates do a simple coding exercise as part of the phone screen.
As part of our phone screen we make all candidates do a simple coding exercise during the interview.  It's at the fizbuzz and Steve Yegge phone screen blog post level. ie one of....
- Write a function to reverse a string.
- Write a function to compute the Nth fibonacci number.
- Print out the grade-school multiplication table up to 12 x 12.
- Find the largest int value in an int array.
We do this as we've had people who we've brought in for onsite interviews that couldn't code at all.
My question is what should we be using for phone screen coding exercises?
Currently I'm using a shared google doc as the coding platform.  This allows me to see the user code and help him/her along the way if they get stuck on something.
What else could we be using here?
I'm currently against giving the user "homework" but I'm willing to be swayed if someone can come up with a convincing reason...
Is there a better way to determine basic coding ability during a phone screen? <comment><USER2> Hi Chris,

Try out Codassium ([http://codassium.com/](http://codassium.com/)), which is built exactly for this use case. Disclaimer: I helped build it.

Google Docs is just too painful for both the candidate and the interviewer.

You might also want to consider using Interview Street, if all you want to do is to eliminate people who don't know how to code without spending too much time on the phone.

</comment><comment><USER3> Personally I don't see the problem with using Google Docs for this, especially since they're just writing one function that should be pretty simple for any programmer to write.

It handles tabs decently enough, lets you see what they type live, and is familiar to most people.

<comment><USER4> Unfortunately it defaults to smart quotes so copying and pasting from the doc into a REPL is impossible.

</comment></comment><comment><USER5> Does it have to be just a phone call? Can you do some kind of screen sharing with Hangouts/Skype/etc?</comment>


Ask HN: I want to analyze your blog. For science - <AUTHOR> http://swizec.com/blog/i-want-to-analyze-your-blog/swizec/2541

<comment><USER2> Dude, you measured everything in reverse. Good writers use small words and short sentences. They take a sentence that should take a phd to understand and make it read at a high school level.

Maybe... hopefully... that's what's happening to you.

(I tried to post it on your blog, but didn't want to sign up for anything.)</comment>


Made with Code Bracelet Project - <AUTHOR> https://www.madewithcode.com/project/bracelet

<comment><USER2> Cool idea, shame it's US only

</comment><comment><USER3> why US only?</comment>


Gawker Media Now Bigger Than All Newspapers Online — Except One - <AUTHOR> http://www.theawl.com/2010/09/gawker-media-now-bigger-than-all-newspapers-online-except-one <comment><USER2> Equally striking is the position of Huffingtonpost on that chart.

</comment><comment><USER3> does anybody else feel troubled by this?</comment>


Overriding CSS rules - <AUTHOR> http://alexsblog.org/2014/07/26/overriding-css-rules/

<comment><USER2> p {color:black;} is NOT the best option at all. It makes EVERY OTHER paragraph in your entire web application need to either be black or take on a class to override the default.

Stop giving people BAD advice, you're polluting the internet.</comment>


Ask HN: Do you test your webapp's front end code? How? - <AUTHOR> I was thinking about testing my frontend code. After looking at couple of frameworks, it appears that as a developer, I think its a much bigger and complicated task to setup and maintain the framework as compared to testing the backend code (Mocking responses, check DOM manipulations, running tests in various browsers). Generally speaking, how many people do it in the wild and how do they do it? <comment><USER2> I tend to test with cucumber ( the ruby version as opposed to the js version because the dsl seems nicer to me - although haven't looked at js version in more than a year so maybe off-base on this)

Cucumber can then drive different browser libraries including selenium.

</comment><comment><USER3> Full integration tests (I.e. click a button in the UI, check that something was updated in the database) with Fluentlenium in Java and unit tests for directives/controllers/services (Angular) using Jasmine.

</comment><comment><USER4> Pretty sure most people are still using [http://docs.seleniumhq.org/](http://docs.seleniumhq.org/)

<comment><USER5> Selenium is ok for automating click-thru testing, but it's a pretty miserable unit testing platform.

Last front-end project I worked on we did unit testing with Jasmine</comment></comment>


Joy of using linux - <AUTHOR> http://minhajuddin.com/2011/06/09/joy-of-using-linux/ <comment><USER2> I like Linux as much as the next guy, but his argument is basically 'Linux couldn't open a file that everybody else could, but by dicking around with random half-assed documented tools we could do it anyway!'. Basically, 'we managed to do something that is absolutely trivial for everybody else by jumping through hoops and spending a bunch of time on it to do it the convoluted way.'. Hmm right, not exactly a compelling argument for Linux's superiority.

<comment><USER3> He managed to find free, command-line tools to read a proprietary data format. This means he could potentially wrap a simple script around them and automate the process if he needed to do it on a regular basis.

Would this be free & scriptable on Windows? It's been a while since I had to do anything comparable on Win, but I think he would have had to buy MS Office (Pro?) with VB or Visual C++ to do it.

<comment><USER2> It would be completely trivial on Windows since mdb files are accessed with the Jet database engine, one would set up a database connection string just like when accessing an Oracle or SQL Server database through ODBC and then use whatever database api is available in one's language of choice (vbscript, javascript (both of them available as 'standard' cscript engines on any installation of Windows since 2001), powershell, visual basic, C++, ...) to extract the data.

Or, one would google for 10 seconds like I just did and find for example [http://timothychenallen.blogspot.com/2007/08/vb-convert- any-...](http://timothychenallen.blogspot.com/2007/08/vb-convert-any-access- table-to-csv.html) which does that for you and converts the file into a csv file, and then process it like other csv files. No Office or Visual Basic required.

So his claim 'this would have taken a couple of hours' (about converting the mdb to csv on Windows) is a load of bollocks and FUD. He didn't even search for it I'd wager, and let his ideologically myopic view cloud his pragmatic judgement. I'm not sure why people are defending this sort of juvenile fanboyism, it's drivel like this that makes the rest of us serious users who propose Linux in situations where it actually _is_ better than the alternatives look like nutcases.

</comment></comment></comment><comment><USER4> The real joy of using Linux and open source software is that you realize that _you_ are the only limitation, and that you can hack anything and everything. It's like a huge, enormous box of legos to play with:-)

<comment><USER5> Right on. There are no secrets in Linux. You can drill all the way down and then some.

</comment></comment><comment><USER6> my joy of using linux gone away long ago when i realized that i was spending more time searching forums, hacking drivers, trying solutions, paying more for compatible hardware, not having my laptop extra buttons work or trying to speed up a virtual machine just to have a usable photoshop than actually _using_ it.

i'm a happy mac user now (user, not fanboy) that enjoys having a posix compliant terminal in a window and photoshop in another, all working out-of- the-box.

i'm happy to pay for this.

<comment><USER7> You're just proving the point that linux ( and this can be said for ANY os ) is not for everyone.

For the past 6 years, I've been much happier with my experience using Linux and the several distro's I've tried my hand at while no it night be perfect I've learned a lot and have been generally more please.

I don't require or use Photoshop, however you do so your wants and needs are different than mine.

I can list problems I've had with windows, that had me run into driver issues, searching through forums and the many many mishaps ( not virus/malware related ) that I've run into. But in the end it would just boil down to my bad experience vs the millions of windows users who would protest to the contrary.

</comment></comment><comment><USER8> My experience opening .mdb file on Linux:

0\. Make sure Kexi is installed.

1\. Click on it.

It's numbered from 0, because Microsoft Access isn't a standard part of Windows either.

</comment><comment> brown9-2 I think this story speaks more to the joy of excellent package managers, something I am sorely missing in OS X.

<comment><USER9> While not integrated into the OS, Homebrew is an excellent package manager on OS X.

<comment> brown9-2 Thanks for the suggestion. I've had better luck with Macports so far, I just wish that a package manager was as seemlessly built-in as it is in Ubuntu or Fedora.

</comment></comment></comment><comment><USER10> Well, this is also my experience with linux: many things you want to do just don't work out of the box. There is always (nearly) a way to do things, though.

But if you really want to do work and not always fight against your tool of choice, linux is not the thing to use.

For coding, I replaced it with Mac OS. This saves me 98% of the problems I had on linux.

To be fair: I wouldn't know an out-of-the-box way to convert a MS Access file to csv on the Mac either.

<comment><USER11> I'm not trying to start an argument, but in regards to coding, I take your point completely if your talking about iOS development or something specific to Mac Programming, but if not, what exactly were the obstacles for development in Linux.

I use Linux mainly because of its ease of use in terms of development. I would be interested in hearing your arguments for the Mac. My friend recently got a Mac, and unbeknown to himself was forced to download a 2.something GB download for the developer pack just so he could get GCC, Now I know there are better ways to achieve this, but this to me seems counter productive.

<comment><USER12> You know, he could have inserted his installation DVD and installed it from there. Also, Ubuntu ships without make, Ruby or Python, too, so I can't really see that Linux is at an advantage there.

After that, both Linux and Mac are Unix systems and have package managers that can install stuff (third party on Mac). Personally, I spend most of my time in Chrome, a terminal and Vim. On OSX. Because I like it that way. But I could certainly replicate that same development process in some Linux distro.

Also, many Linux applications work just fine on OSX but not the other way around. So there is some argument for choosing OSX. Also, all that basic stuff like connecting to networks, having MS Office, etc. just plain works better on OSX. But to each his own.

<comment><USER7> >Ubuntu ships without make, Ruby or Python Since when does Ubuntu ship without make and python? Python 2.X has been included in standard installations for quite a few releases now. I also can't remember the last time I had to manually install make.

<comment><USER13> A barebones install might not have ruby or python. When I install it as a server I try to reduce the packages to a minimum and build up from there. I usually try to a network install as well (for Ubuntu or CentOS).

I would rather put on whatever I want later.

A default Ubuntu install I think has Python on board. Not as sure about Ruby.

</comment></comment></comment></comment></comment><comment><USER14> Linux users are mostly lost without Google, myself included. It gets you into a yak-shaving mindset. Ditto with Emacs. If I can stop fiddling I'm sure I'll be more productive.

<comment><USER15> "The same technology that simplifies life by providing more functions in each device also complicates life by making the device harder to learn, harder to use. This is the paradox of technology." -Donald A. Norman, _The Design of Everyday Things_.

</comment></comment><comment><USER16> My main take away from this post is that you shouldn't make bad assumptions about data formats.

However, my Linux experience is much like the author's: assume you'll get something to work, find out what's missing, apt-get to the rescue.

The problem for me is when things go out of date. I try to install something and it triggers 250MB of seemingly unrelated updates. In all fairness, that usually happens when I build stuff from source, not when installing packages.

<comment><USER13> I hope for your sake that yo are not letting it get that much behind on security updates.

I recommend that you do at least this:

<https://help.ubuntu.com/community/AutomaticSecurityUpdates>

The idea that Linux does not need to be updated is a dangerous one.

<comment><USER16> I do try to stay up to date on my desktop systems. The embedded Linux systems are usually hopelessly out of date, though.

</comment></comment></comment><comment><AUTHOR> For guys who say it would be easier to do this on windows: I have worked on windows a _lot_ but nothing on windows would stand against the simplicity of _mdb-export myfile.mdb marks > marks.csv_, this is obviously subjective.

</comment><comment><USER17> Or use best of both worlds

[http://www.gentoo.org/proj/en/gentoo-alt/prefix/bootstrap- ma...](http://www.gentoo.org/proj/en/gentoo-alt/prefix/bootstrap-macos.xml)

<comment><USER18> Or MacPorts [1], or Homebrew [2]

[1] <http://www.macports.org/>

[2] <http://mxcl.github.com/homebrew/>

<comment><USER17> Quite not the same (full distro repository vs small amount of ported apps). Easier and useful, though.

<comment><USER18> _Small_ is not quite exact. MacPorts has 8,000+ ports. Homebrew has 1600+ formulae but this is an awful metric due to the distributed nature of its development (2000+ forks, with some very specialized) and it is barely two years old!

Take the package count for Debian as a reference: <http://ftp- master.debian.org/users/joerg/pkg-nums>

</comment></comment></comment></comment><comment><USER19> Wouldn't using the synaptic package manager work better? I've heard it touted as one of the reasons for Linux being superior than Windows and Mac (except for App store) by having a central repository of many programs. Want Gimp? sudo apt-get install gimp or mark Gimp in the package manager and it'll download and install all the related packages and dependencies.

My only gripe is that the search is not good but Google spoiled me.

<comment> brown9-2 Isn't Synaptic just a GUI front end to apt-get?

<comment><USER13> Yes somewhat and apt is a wrapper on top of dpkg ...

So on a Debian/Ubuntu or related system your common options are:

* dpkg

* apt-get and apt-cache

* aptitude

* synaptic

All the apt-based programs use the same /etc/apt/ files. There is a lot of overlap but specific reasons I might use one or the other.

I use aptitude to do global updates as in:

        aptitude update && aptitude safe-upgrade

Apt-get has the most commandline options.

I have not figured out how to do the following two on aptitude - so just use apt-get:

        "apt-get dist-upgrade"

        "apt-get -f"

(which is not to say it doesnt - just havent found it in 'the fine manual')

Synaptic is fun to browse. almost like an android app store. I use it looking for a fun new game for my kid to play on my laptop, etc.

And dpkg is useful for local installs (dpkg -i) and also for dpkg-reconfigure when you have to change something in the config of an installed package.

I also deal with yum/rpm (which is a similar pairing as apt/dpkg). I first learned on Debian so I have a fondness for apt.

In my experience it is pretty stable and easy to use. When I read the OP I thought the 'actually this shows how cool apt or yum can be to use'.

</comment></comment></comment><comment><USER20> neat, but not worth being on front page.

</comment><comment><USER21> as they say "Linux is only free if your time has no value".</comment>


Why one company is making all its employees learn how to code - <AUTHOR> http://venturebeat.com/2012/04/27/everyone-must-code/ <comment><USER2> A lot of people seem to be offended by this, or think it's a waste of time. I think you need to realize there's a difference between learning to code and being a professional programmer.

I see "programming" as a skill like "writing" or "basic math" that everyone should know something about. We all know how to write and do some math but we don't call ourselves "writers" or "mathematicians".

But you'd never claim it's worthless to learn how to write or do arithmetic. Why not programming?

<comment><USER3> A lot of people do claim it's worthless to learn math or, at an extreme, writing correctly. That's part of the problem.

</comment></comment><comment><USER4> I'm having trouble understanding what "learn to code" means for most people. It's almost obnoxious when business types propose "learning to code" in a nonchalant manner as though people don't spend decades developing their programming skills. Yes, you may take codecademy tutorials and have a slight understanding of js syntax...but I wouldn't expect you to build anything of value.

<comment><USER5> Do you feel the same way about learning to speak foreign languages and play musical instruments? Is it obnoxious for a person to teach introductory French night classes, when fluency will take years and may never be possible for the students given their other commitments? What if it is not even likely that they will ever have French-language conversations "of value"? Does the very act of proposing learning this new skill insult French speakers everywhere?

I keep encountering this attitude among programmers, that the idea of "learning" is something that is the completion of a journey of worthiness. It's extremely disappointing.

<comment><USER6> Exactly. I don't know why I've been hearing this so much lately. I've been researching about learning to use 3D software (3dsmax) and I get the same responses that I hear about learning to code: "oh it is very difficult and it will takes at least 5-10 years to be able to build anything of quality" Personally, I think if it takes you 10 years to become decent at anything, then you are doing it wrong.

<comment><USER7> If you find the 10 year rule absurd, take a look at this paper: [http://graphics8.nytimes.com/images/blogs/freakonomics/pdf/D...](http://graphics8.nytimes.com/images/blogs/freakonomics/pdf/DeliberatePractice\(PsychologicalReview\).pdf)

<comment><USER8> Then again, there's no speed limit: <http://sivers.org/kimo>

</comment></comment></comment></comment></comment><comment><USER9> All these comments about "no value" are hilarious. Honestly I dont think "serious programming" even matters. It's people learning, for example, that the 30 min daily process they do in excel can actually be a script that takes one second to run. The company is already seeing benefits to the culture and soon people will be thinking differently. That's a win.

<comment><USER10> I think that's equivalent to asking everyone to go to chef's school and describing the upside as 'People will realize that peeling potatoes can be done in a quarter the time they're doing it now!'

It's just... why? These people aren't going to be doing any programming daily. Why don't you take all that money, and all that time and let each non- programmer go to a deep dive conference of their choice for whatever their discipline is. Seems like a much better use of resources.

<comment><USER9> MSM, I know it can be hard to see for many people but sometimes diving deeper into your box is the wrong approach. Your example is perfect. Someone went and took classes that were a "waste of time" and ended up 75% more efficient because they looked at something from a different view...even though they didn't become a chef. This is exactly how people need to be leading their companies.

</comment></comment></comment><comment><USER11> That's awesome. Imagine working in an all Spanish workplace and refusing to learn at least some Spanish. I think everyone benefits from learning a bit of the language. You don't have to be fluent but even knowing the slightest bit gets you a lot more respect. You can see this when visiting foreign countries. Understanding and writing code should be the basics.

</comment><comment><USER12> Partaking in expensive management fads is, perhaps, God's way of telling you you've got more funding than you need.

</comment><comment><USER13> I'm really uncomfortable with the term 'learning to code', because when I read it makes me think that the company wants its employees to know in what circumstances you should and shouldn't use semicolons in Javascript, or what methods are available to strings in Python.

I don't think those things are useful unless you're actually writing code.

What is useful is understanding how software (and, for a lot of people, web software in particular) fits together. That means understanding what might make something computationally expensive, or understanding the advantages/disadvantages of loosely coupled components (etc etc).

This isn't to say that people 'learning to code' isn't a step in the right direction, but I don't think it's an end in itself, and for most people, writing code is only a doorway to that understanding if they have the time to take on projects that involve those problems.

What we need isn't lots of people who can do 'hello world'. It is people who are technologically literate. That needs to be the focus and goal.

<comment><USER14> You would hope in the long term it would mean that everyone could write code that is relevant to their job, and automate tasks where possible.

I suspect this company is just trying to spread awareness throughout the company of what the coders do. But there must be countless efficiencies available in business, especially non-tech businesses, if people were able to automate.

If it were up to me, the aim would be to have secretaries and receptionists, sales staff and (non-software) engineers all able to write scripts to aid their work, in whatever language or environment was most relevant. Even if you start them off with Python tutorials so everyone can learn the basics together.

</comment></comment><comment><USER15> Maybe next year all the programmers can learn accounting.

<comment><USER16> Yeap. And marketing staff can learn HR rules.

<comment><USER16> Even better, they should also teach the HR team finance.

</comment></comment></comment><comment><USER17> This makes sense to me for a number of reasons.

1) This can help people understand the tools that could assist them with their normal day jobs as hey gain the confidence to look into writing scripts and macros. IT staff in particular frequently lack any coding (scripting) skills unless they themselves are developers or Unix sysadmins.

2) They will have a better understanding of the web technologies they run across in their daily lives. This applies especially well to Codecademy users who learn JavaScript. 3) Learning to code teaches you to break a problem into parts and think analytically. Our society could use more people with good critical thinking skills, we can probably all agree.

4) Everyone in an enterprise should have a core understanding of the elements of major functions. Yes, this means programmers should understand the very basics of finance and human resources and probably other areas that don't occur to me at the moment.

There are two kinds of elitism: believing that decisions should be made by the most informed and qualified individuals versus believing that those who do not belong to the "elite" have no business even dabbling in affairs beyond their supposed comprehension. The latter isn't healthy to any organization, much less broader society.

</comment><comment><USER18> Why not go the other way and make all employees learn about business and financial matters? Or would that be too dangerous, allowing for employees to become entrepreneurs and, possibly, lose them to their own startups?

</comment><comment><USER19> Based on that picture, I pity the employees.

</comment><comment><USER20> There's a big difference between learning syntax and learning to code.</comment>


Ask HN/pg: Do you sell to SMBs? How do you do it? - <AUTHOR>

What methods have you tried for selling to small/medium business? How have they worked out?<p>What do you think of direct mail, on-line advertising, cold-calling, etc.? <comment><USER2> Probably best to ask these types of questions here <http://startups.com/></comment>


Databases - a grumble after a weekend project - <AUTHOR>

I did a project over the weekend. I wanted a database where I could throw in JSON data, do some simple queries, get data back. You'd think that would be easy right? Install it, 5 minutes, install drivers, 5 minutes, write some code to throw in some JSON - 5 minutes, write some simple queries - 10 minutes. No way - it's not that easy.
Man, databases have a long way to go.
I knew not to use MongoDB because it takes an entire server and I was running on one single AWS micro instance.
I tried Amazon Dynamodb - simply not possible to throw a JSON structure into it. I dropped it.
I went back to Postgres - and spent hours doing configuration of users, tables, schema, and security, not writing code for my application. I deleted Postgres from my system. Why do SQL databases have massive layers of configuration and security on them - seems a relic of the past - why not let the application take care of all that.
I tried to think what other database might allow me to simply throw JSON data in and do SIMPLE queries to get it back.  Something without installation pain, configuration pain and usability pain.
In the end I tried RethinkDB.  It installed fast, the install documentation was perfect for an Ubuntu system, it seemed to work well, did not take over my machine and allowed my to throw JSON into it with no pain. However it was much more painful to do queries - Rethink is still improving in this area - even basic queries are painful. BUt the guys there are incredibly helpful and friendly and helped me to get some working queries built.
SO..... databases just aren't there yet.  Where is the database that simply allows me to throw in JSON and has a simple and intuitive query language that just works. One day someone will get that worked out. If rethinkDB can manage to get powerful and simple JSON queries implemented then maybe it will be The One.
Can anyone suggest a database that allows simple installation, simple data loading and simple and powerful queries? Something that does not require layers and layers of arcane configuration just to get going with? <comment><USER2> I'm not sure where your idea about MongoDB taking "an entire server". It will use as much memory as it has available to it, but of course you can run other things alongside it.

I'm currently running PHP, Ruby, Memcache, Postfix, nginx, plus probably a bunch of other stuff I'm forgetting, all on one server and it works fine.

MongoDB can be configured entirely on the command line and is as simple as downloading a binary, unzipping it and running it.

<comment><AUTHOR> Also I seem to recall major pain writing queries to access substructures/embedded data within JSON when using Mongo. Unless that has changed in the last 12 months?

<comment><USER2> It is true that it requires a shift to go from AND/OR SQL queries to doing the same thing programatically. I'm not sure anything there has changed in the last 12 months, at least not huge changes.

I've found it to be not a huge problem though, and of course MongoDB is definitely one of the most flexible NoSQL databases in terms of querying.

</comment></comment></comment><comment><USER3> > I went back to Postgres - and spent hours doing configuration of users, > tables, schema, and security, not writing code for my application. I deleted > Postgres from my system. Why do SQL databases have massive layers of > configuration and security on them - seems a relic of the past - why not let > the application take care of all that.

"SQL databases" don't. Standalone multiuser, nondedicated database servers (many of which happen to be SQL-based RDBMSs) do, because they are designed to support direct user access (through general purpose client applications) and multiple applications -- both of which need to authenticate against the database -- from the same database server. So the application _can't_ reasonably handle security and configuration. There are SQL databases that have less security and configuration, because they are embedded databases rather than database servers (SQLite is a particularly well-known example.)

<comment><AUTHOR> In Postgres for example there is just so much arcane configuration that needs to be done before you can start writing code. All that extra guff should be an add on option for "enterprise users". Why not just the database functionality on its own, stripped of all the complex surrounding bits? Have you ever experienced the pain of configuring pg_hba.conf? Or trying to work out the right user access control to your database entities and then keep it all ok when the database setup needs to be changed? Nightmare.

<comment><USER3> > In Postgres for example there is just so much arcane configuration that > needs to be done before you can start writing code.

Not really.

> All that extra guff should be an add on option for "enterprise users".

It may not be right for whatever toy project you are doing, but that doesn't mean that it isn't right for the baseline of a product that does what Postgres is intended to do.

> Why not just the database functionality on its own, stripped of all the > complex surrounding bits?

The things you call "complex surrounding bits" are part of the core functionality of a RDBMS server.

> ave you ever experienced the pain of configuring pg_hba.conf?

I've made changes to pg_hba.conf, though for simple development against a default install I usually don't have to. I never found it painful.

> Or trying to work out the right user access control to your database > entities and then keep it all ok when the database setup needs to be > changed?

Never had any problem with that. If you don't have really complex security needs -- and especially for the kind of development where its sensible to consider application-managed security rather as an alternative to DB managed security -- its straightforward. You can just create a user for the application, and create a database in the cluster owned by that user, and bam, you're done.

For more complex cases, sure, its more work, but then the work is inherent in the more complex cases, not a product of the DB features.

</comment></comment></comment><comment><USER4> My first thought was that maybe we don't need things to "be there" or "arrive", especially when they are complex and integral (in some respects) as a choice of a database, or at least the data representation or the database.

Then I thought of SQLite, and what it's allowed, which is ubiquitous instance databases for light usage and/or rapid prototyping. Maybe what we need is the equivalent of SQLite for NoSQL databases. Does that exist yet?

<comment><AUTHOR> How practical is sqlite for anything more than single user applications?

<comment><USER4> Probably not very.

That said, for single user applications (such as ios/android apps) or rapid prototyping, they may be very practical. Then again, prototyping is only as useful as it is easy to trade out for the eventual solution, and if it has a different query syntax than what you replace it with, you were probably better off with the pain to set that up in the first place.

I could see a SQLite-alike JSON database doing really well in the phone app space. Especially for those using a framework like phonegap that allows you write in javascript. In fact, I think this is obvious enough that there probably exist solutions for this, and I'm just not knowledgeable enough in the subject to know of them.

<comment><USER5> >prototyping is only as useful as it is easy to trade out for the eventual solution

It is also useful if you find out from prototyping that the project is not viable. Also, in general, if you need to iterate a lot using something that iterates faster at the prototype stage would have extra benefit. (Although in this particular case I think using SQLite only saves you initial configuration time.)

<comment><USER4> > It is also useful if you find out from prototyping that the project is not > viable

True. I considered this when writing the reply, but decided to not obfuscate my point. It's good that you brought it up and it got addressed though. :)

> Also, in general, if you need to iterate a lot using something that iterates > faster at the prototype stage would have extra benefit

I'm not sure it's worth it if it's significantly different than the eventual solution will be (and you're fairly certain it won't map). That can be as simple (and horrible) as prototyping against NoSQL when you know production will be SQL (or vice-versa), or as subtle as using a feature present in one RDBMS which is buggy or non functional in a different RDBMS, which is the one that will be used in production. The longer you code using the prototyping data store, the more likely you are to inadvertently use a feature which will cause you problems later in production.

Now, SQL is fairly standardized, and SQLite as a prototyping tool is unlikely to cause a problem later if the production environment is a full RDBMS, but you may end up not using a few features only available in the full RDBMS that could have lead to a cleaner and/or more performant solution.

</comment></comment></comment></comment></comment><comment><USER6> There is one thing I don't understand. Why do you want to directly throw JSON at the database? Why not write a simple and minimal JSON to SQL layer?

You can probably do that really fast with ANTLR (<http://www.antlr.org/>) or any equivalent.

</comment><comment><USER7> More people should think of SQLITE when doing a simple project over the weekend...

For this use case, you can use the BLOB datatype and just write a simple shim with get and set methods that interfaces with the db.

</comment><comment><USER5> I have found that Meteor provides a very simple/fast way to deploy/use mongodb if you want to build something quickly. (I just did so myself this past weekend.)

</comment><comment><USER8> You could also try out redis, it's a key-value store that is easy to use and needs little to no configuration.</comment>