Aesthetics Send A Message - <AUTHOR> http://mattmaroon.com/?p=472 <comment><USER2> "spending large amounts of money on products to impress women is a not very effective thing to do."

[citation needed]

</comment><comment><USER3> Good design is prescient of an audience, yes. Often, however, good design applies widely to audiences it was never intended for.

For instance, OXO brand kitchen supplies were designed to be big and easy to handle for the arthritic. I own a lot of their supplies because they're sturdy and easy to handle. I never use it and think "Wow. I'm feeling arthritic today"

Similarly, Apple. Designing to make computing cool and succeeding wildly probably means the design will apply to a large number of unintended audiences as well. If you wear a suit and are professional, a glowing apple is still going to look better than a clunky black box.

<comment><AUTHOR> You buy OXO brand kitchen supplies (as do I) because they're good and they don't cost $2,500.

When you make something that costs $6, you don't have to focus as much. Also, regardless of how they started out, their products no longer seem aimed at arthritic people.

Btw, get one of their liquiseal mugs. Amazing.

</comment></comment><comment><USER4> "Resellers say MacBook Air sales aren't as brisk as original MacBook"

And by that you take away "The air is a sales dud"??? The air is like a Ferrari. Of course you don't sell as many Ferrari's as fords. Why would that be surprising?

</comment><comment><USER5> I feel like I'm disagreeing with everything Matt says this week, but: look at a computer like the MacBook Pro, which is fairly thin. It doesn't look like something you could destroy easily. I'm sure you could make a mini computer that didn't look fragile but that DID have a better aesthetic design than the Lenovo. It's an unattractive computer for everybody out of the "ugly is good" mentality. The fact that most corporations still have that mentality goes along with the fact that a ton of companies don't "get" a lot of things and make inferior products. Pretty defensive post on your part.

And, not to say this for the third time or anything, but your web site is broken, links don't work, and the URL you yourself gave us up there is broken and redirects to the front page. You're using Wordpress, theming is not hard, please fix it so I can browse your archives.

<comment><AUTHOR> Ah, damnit. Thanks. It wasn't the theme, it was that damn WP-Super Cache. Doesn't seem to play nice with my site no matter how hard I try.

<comment><USER6> The link to your RSS feed doesn't work either.

<comment><AUTHOR> I think feedburner just needs to update next time I post. The plugin seems to have also borked the feed and feedburner is responding oddly (though my updates still come through.)

I'll keep an eye on it. Thanks for the tip.

</comment></comment></comment></comment><comment><USER7> This just seems like a thinly disguised "I hate Macs" argument.

<comment><AUTHOR> It's more a "I can see why someone would prefer the design of something else over a Mac" argument. I guess the difference is too subtle.

</comment></comment><comment><USER8> Read your title - of course Aesthetics send a message! Of course business men want laptops that look like they are designed for business. Of course people have different tastes.

This is not worth a blog post, it's just so frickin obvious.

<comment><AUTHOR> It didn't seem to be obvious to DHH.

</comment></comment><comment><USER9> I have to wonder do the aesthetics of your MAC make you as a programmer more effective?

<comment><USER10> Of course not. It really boils down to this: some people like for their possessions to be beautiful, and others don't care. Neither group can see things from the viewpoint of the other, hence this ongoing pointless flamery.

It has nothing to do with impressing girls or anyone else. It's a personal preference. I'm particular; I like for my things to look a certain way. All of us have our own proclivities, so why don't we all just shut the hell up about this already? How does it harm Matt Maroon if I "spend too much" for an Apple product? Just tell yourself that I'm a moron and move on.

<comment><USER9> I love great design but in the case of "tools" if the design doesn't help the function and the productivity of the user - and there is something else out there cheaper that does (even though its "ugly") I have to go with productivity.

</comment></comment></comment><comment><USER11> OK, I agree. But what about us, poor folks who use Apple products merely to have decent Rails environment, TextMate and OmniGraffle? who don't want to spend ages dealing with Linux packages or configuring wifi (though, spent few years using Gentoo, Debian and others)? I worry we have no choice.

</comment><comment><USER12> In the speaker's lounge at the recent O'Reilly OSCON, all the laptops I saw were either Apples or Thinkpads. They both have appealing aesthetics for their audiences.

<comment><USER13> Thank You! I'm glad someone understands that the Macbook and the Thinkpad are both well designed and highly functional but represent distinctly different aesthetic viewpoints. I personally choose Thinkpad, but I can understand why someone might not appreciate its minimalist nature and prefer a Macbook instead.

<comment><USER14> I'm typing this on a Thinkpad T40, and I think Macbooks are more minimalist in design.

</comment></comment></comment><comment><USER15> I think there's a pretty good argument that spending money on products to impress women is perhaps the most effective thing to do.

<comment><AUTHOR> Even if that were true, you'd be better of buying a cheap laptop and spending the money on clothing or pickup artist seminars. Either would be more effective.

<comment><USER16> "I see you've noticed my laptop. Most women do. They can't look away from its sleek contours and the power of its dual cores. If you want to touch it, I'll understand. Now, can I buy you a drink?"

<comment><AUTHOR> I would pay good money to watch someone enact that.

<comment><USER16> Buy me a Macbook Air and enough alcohol, and I'm your man.

<comment><AUTHOR> Not that good money, but a few drinks for sure.

</comment></comment></comment></comment></comment></comment><comment><USER17> My world still revolves around girls, but I'm posting this from a Lenovo anyway. (More precisely, one woman and three girls.)</comment>


Ask HN: Your thoughts on Google's purchase of Motorola? - <AUTHOR>

I thought Motorola were dead and gone. Seems that they've been given a major lifeline here. <comment><USER2> Looking through the comments on each of the two HN stories about this, should probably give you an idea of what people on HN think of the purchase. :)

<http://news.ycombinator.com/item?id=2886342>

<http://news.ycombinator.com/item?id=2886347>

</comment><comment><USER3> Mostly confused. I don't really see the point of the purchase. Are they planing on protecting their android partners like HTC and Samsung? Now that the hard part is done (brand building), are they going to consume the market by having their own internal projects release before everyone else and be the best supported? Is there going to be a HTC\Samsung\LG etc. fork of Android?</comment>


What a 45,000-year-old mammoth carcass can tell us about human history - <AUTHOR> http://www.csmonitor.com/Science/2016/0114/What-can-a-45-000-year-old-mammoth-carcass-tell-us-about-human-history <comment><AUTHOR> Link to the scientific journal abstract about this find:

[http://science.sciencemag.org/content/351/6270/260](http://science.sciencemag.org/content/351/6270/260)

The story submitted here is a journalistic story, one of the better reported (and not paywalled) stories of several that were published today about the early date discovered for butchered mammoth remains in the high arctic.</comment>


Why You Should Be Using Virtualisation In Your Development Environment - <AUTHOR> http://morethanseven.net/2010/11/04/Why-you-should-be-using-virtualisation.html

<comment><USER2> We're big fans of virtualized development environments at my startup. Not only is it very helpful in preventing weird environment-related bugs like the autor states, it's a huge shortcut when it comes to bringing new developers onboard. Rather than have them spend hours tracking down links to all the right versions of your various libraries and installing things in the appropriate order, you hand them your image. For us, setup time for a new developer has gone from about a day to about 30 minutes, and most of that is time spent downloading Virtual Box.

In addition, if you get a little too clever and accidentally wipe out something crucial in your environment, you just spin up a new VM. It's a tremendous timesaver.

</comment><comment><USER3> I'm assuming Mitchell hasn't seen this yet, but I'm sure I speak for both of us when I say thank you for including Vagrant in your post.

I would like to point out a few things.

1\. Another thing to set up.

Streamlining project setup is one of Vagrant's primary goals. Instead of putting someone, who potentially has no background with the app, through a 20 step process installing all the application dependencies you can simply tell them to run a few commands.

2\. It's a "Ruby tool".

While I don't think your intention was to pigeon hole it, Vagrant is really meant for any development environment/language/setup. Its just unfortunate that the only supported provisioning tool uses Ruby for its DSL (are there similar tools in other languages?)

(NOTE: its been a while since I contributed meaningfully to the project)

<comment><USER4> I did finally see this entry. It was a great read and I agree completely with it. Note that I posted my comment on the blog directly: [http://morethanseven.net/2010/11/04/Why-you-should-be- using-...](http://morethanseven.net/2010/11/04/Why-you-should-be-using- virtualisation.html#comment-94464917)

Since clicking on that just to read my comment can be annoying, I've copied it below as well:

</comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>===

Yes! Yes Yes Yes! Virtualization for development is extremely important and I'm glad you wrote this. Also, thanks for the hat tip to Vagrant, I appreciate it. I've given a few talks on this and it always amazes me how many people are so comfortable with the status quo of developing on their own machines with apache/mysql/etc installed directly on their machines. Its a disaster waiting to happen.

I want to point out to the many people using VMWare out there: VMWare Fusion is great, yes, I won't argue. Their shared folders are better, again I agree. But Vagrant does make use of NFS which is faster than even VMWare Fusion's shared folders in order to get around VirtualBox's terrible performance.

And just because I have things to say, here are a few of my own remarks against the arguments against virtualization of development:

* Speed - Given enough RAM (which for a standard web application, shouldn't be any more than 512 MB to 1 GB for the VM instance), the speed difference is noticeable but not detrimental to your productivity. For regular web requests you won't notice any speed difference. For CPU intensive background tasks, you'll probably see a 1.5x slowdown. Again, unless you're running 5 hour tasks during development, it shouldn't be a big deal, and the benefits outweigh these issues, in my opinion.

* Lower level than you're used to - Then get your friendly sysadmin to setup a base image to use for your site. A modern sysadmin has many scripts made to automate the setup of the environment for production. There is no reason these scripts can't be used to setup your development as well. Use it! Stay in your happy place and just boot up a VM and code! (Although its my opinion every developer should take the time to learn their software stack top to bottom)

* Something else to setup - Once. You only need to learn it once, and its repeatable and dependable. I would argue that setting up a new software stack every time a dependency changes on your web app is far more than one more "something else to setup."

* Developer workstations should be personal - Right! I agree 100%. So stop installing server crap on your personal computers. Keep your Twitter clients away from your web servers. Use a VM and keep your workstation personal.

Thanks again, Mitchell

</comment><comment><USER5> I really wish you could virtualize OS X. I would love to build a beefy Linux box as a base machine and virtualize OS X and Windows.

It's my understanding you can do it, but it's a bit hacky, right?

<comment><USER6> I ran a VMWare image of OS X a few years ago. I don't know what it's like now, but back then the lack of an OpenGL driver was the deal breaker. OS X's graphic shell uses Quartz Extreme on top of OpenGL, without GPU acceleration it was virtually unusable.

<comment><USER7> I'm running a VMWare image of 10.6 (Snow Leopard) right now. I didn't set it up, but it does indeed run. It's not perfect. It had problems running Safari 4, but now runs Safari 5 fine. I use it for browser testing. That being said Flash video crashes it hard, HTML5 video crashes it gently (like caressing a child's face with a butcher knife).

I have a pretty capable machine (Core i7 920, 6GB, GTX260 video card), but speed wise it is quite usable and I run all sorts of osx-only apps on it (like the omni suite) every day.

So.. i guess like 7.5 out of 10? Buggy, but really getting close.

</comment></comment></comment><comment><USER8> I've also found it's generally better to keep your base installation as sparse as possible, and use virtual machines for anything that does not absolutely need to be on the host.

That way you can set up servers, experiment with new platforms and/or applications, hack^Wlearn config files and system internals, etc. without risk of bogging down or blowing up your machine and having no recourse but a full reinstall and reconfig.

I've got core Ubuntu Server, OpenSuse, and CentOS server images, that include extras like git-core, htop, ssh, and a few other utilities I universally depend on, and that I can copy, deploy, and configure for whatever specialized purpose that comes up.

<3 it.

</comment><comment><USER9> Perhaps a middle ground could be using a virtual machine as a staging environment?

<comment><USER10> This is what we do. The biggest benefit here, for us, is that if a release goes horribly wrong, or our testers find a disastrous bug, we can easily roll back to a clean state and only lose the time it takes to load the VM.

I've tried using a VM for doing development, but I've run into the issues mentioned in the parent article: Visual Studio 2010 is memory and CPU hog. I've maxed out the RAM in my laptop, and it still ran too slowly to be really useful.

</comment></comment><comment><USER11> Not strictly in the spirit of the post, but I use a nice VM setup I thoroughly recommend:

\- Host: OSX (2.4GHz i5, 8GB ram)

\- Guest1: Ubuntu 10.10 (1.5GB ram allocated; acts as a LAMP server, available to Host and other Guests)

\- Guest2: WinXP (1.5GB ram allocated - I use it for IE and for Xara)

This config eats RAM, but affords so many advantages:

1/ Makes my LAMP server portable. Can set up on new computer in no time

2/ Means I can experiment with server software and can revert when I break something

3/ Enables easy cross-PLATFORM browser testing which is vital if you care about fonts and pixels

4/ Can easily fake slow internet connections etc for web dev

5/ Gedit :P

6/ Nautilus :P

Major disadvantage is filesystem access speed.

<comment><USER11> PS, if anyone knows a solution to the file access speed issue (not just the filesystem of the guest, but also what ever you share with it from the host) please tell me. Parallels, VMWare Fusion and VirtualBox all have this issue and it drives me mad sometimes!

<comment><USER12> I'm not sure if this helps in your situation, but when I'm running VMware I don't share any local directories. I use rsync to manage the virtual server directories since it's similar to how I deploy to my remote servers.

Having to manually "deploy" code to a local virtual server can be tedious, so running a background process that watches your local directories for changes helps a lot.

<comment><USER13> Can you elaborate on that background process? Is that something built into rsync?

<comment><USER12> It's actually something I've been working on that I want to put up on github. I hacked up a Python version of it as a proof-of-concept but rewrote it in C as an installable executable using autotools.

Basically I tell it which directory I want it to watch for changes and it does automatic syncing by piping rsync. I keep a local and remote signature of the files and their timestamps. When it first starts up, it pulls the server sig file and compares it to the local one. If there's a mismatch, the server is updated. From there it manages the signatures locally until they're different.

Writing the sig file to the remote server is done in the same rsync pass because it's stored in the local directory as a dotfile.

I realize rsync does its own checksums, but using my own crude signature files makes it so I don't have to keep calling rsync. I only call it when something changes.

I also have some stuff I'm working on that ties into auto-restarting servers when syncing finishes, rolling server deployments for no downtime, db migrations, etc.

<comment><USER7> Sounds like some pretty cool stuff! I hope you post about it when you do decide to release it. :)

</comment></comment></comment></comment></comment></comment><comment><USER14> Now if I could only get some vmware <-> ec2 direct compatibility up in here ... proprietary conversion tools = fail.

</comment><comment><USER15> Note that its pretty much a must if you plan to have a MongoDB server as part of your dev environment on your home box - Mongo by design eats all the RAM it can find to map files to, and if you have Apache, Solr and MySQL running on the same box, things can get ugly :)

<comment><USER16> Why do applications think they can manage my memory better than my kernel?

<comment><USER17> Actually, MongoDB _does_ leave memory management to the kernel by using MMAP to access data files. Most kernels will allocate a lot of memory to the disk cache, which can make it look like mongo is eating all of your ram.

<comment><USER18> This. It's one of the brilliant things about mongo. The downside is that after a reboot it's up to you to get the OS to warm those caches back up.

</comment></comment></comment></comment><comment><USER19> One tip for the overly enthusiastic (like me): Unfortunately Vagrant does not work on Windows 7 64 bit (yet).

See: <https://github.com/mitchellh/vagrant/issues/issue/194>

</comment><comment><USER18> Our servers run CentOS. None of our developers would dream of running that as a desktop OS. Some just use Ubuntu and call that good, but I like to have my testing environment as identical to production as possible, so I took an ancient laptop with a busted display and slapped CentOS on it. As I mentioned in another comment, I set up samba so I can have apache pointing directly to my project folder on my dev machine.

It makes for very convenient testing and it has helped me catch issues others didn't see on their distros, mostly because CentOS has ancient versions of everything and sometimes people don't realize they are relying on a feature that was introduced later.

</comment><comment><USER20> If your really serious about developing stuff what will end up running on a Linux server, I think you should really be using Linux on the development machine. I know that is not always practical, but more people should do it. No one would dream of writing a Mac app on Windows, and I don't see why Linux should be any different.

<comment><USER12> If you're targeting a specific platform, it can make sense to use a virtual machine instead of installing that platform on your development machine. As far as code is concerned, it doesn't care that you're running it on a Linux VM inside a Windows dev machine rather than directly on a Linux dev machine.

That being said, if you're trying to target Mac or Windows, it's generally a good idea to use that specific platform's tools. It's reasonable to develop Windows and Mac apps on Linux but it may not be the best environment to do so. It's really up to you as a developer to determine the best toolchain and processes based on what you're trying to accomplish.

</comment></comment><comment><USER21> Thanks for the great post. Came to know of vagrant for the first time reading this, and have instantly fell in love.

</comment><comment><USER22> How do you handle version control in this environment? Locally on the mac or in the virtual server?

<comment><USER23> Personally I edit the code on my mac using gvim and run and use git on the VM. I've used ExpanDrive to mount the directory from the VM for editing previously but I've been moving towards using vagrant with it's NFS shares.

</comment></comment><comment><USER24> I just touched Test and test on mac and I see both of them just fine.

<comment><USER25> On what filesystem?

Certainly not the default HFS+, which is is case-insensitive but case- preserving.

<comment><USER24> It works as you described on my macbook. I was on my Mac at work before.</comment></comment></comment>


GraphLab: A New Parallel Framework for Machine Learning - <AUTHOR> http://www.graphlab.ml.cmu.edu/

<comment><USER2> I read through the pagerank example, looks interesting. That said, with such a rich infrastructure built up around Hadoop (Cascading, Pig, Hive, Elastic MapReduce deployment, etc.) I am not sure how much sense it makes to consider another platform for horizontally scaling out calculations over large data sets.

<comment><USER3> GraphLab is intended for efficiently parallelizing Processing intensive Machine learning algorithms, this is different from "Bring Computation near data" philosophy of Hadoop/HDFS/Map-Reduce. Generally most of enterprise mapreduce application are primarily IO intensive, in that case it is important to have multiple machines accessing data from multiple disks.

GraphLab would be suitable for machines with multiple processors or the new cloud on chip machines which have ~40+ Cores.

Most of the Machine Learning algorithms tend to be processing intensive, and simple abstractions such as Map-Reduce dont help a lot, thus GraphLab has its own niche to serve.</comment></comment>


Protocols.io – Life Sciences Protocol Repository - <AUTHOR> https://www.kickstarter.com/projects/1881346585/protocolsio-life-sciences-protocol-repository

<comment><USER2> Years ago, when I hadn't yet completed the switch from the lab to computers, I used [http://www.protocol-online.org/](http://www.protocol-online.org/) from time to time, which is, in my understanding, a similar project. Though checking it out just now indicates that not much has been going on there for the last couple of years. irollboozers already mentioned [http://openwetware.org/wiki/Main_Page](http://openwetware.org/wiki/Main_Page) as an alternative project with a wiki-style interface. Those sites attracted some participants but it seems they never really went mainstream - should ask the wet lab people about this to confirm.

As I'm working in Next Generation Sequencing (NGS) now after a stint in the software industry, I'm actually shocked by the lack of standardization and documentation in the wet lab, which makes a thorough statistical data analysis so much harder. Few use electronic lab books and even fewer associate those with experimental data.

I think that is what is really missing, a push to easy-to-use electronic lab books that use open, machine- and human-readable formats and a straightforward way of associating these with the generated data. Upload these documented and annotated raw data to a central repository and you create a computational biologist's wet dream.

But that would require a huge amount of work to create the necessary ontologies...

<comment><USER3> >I'm actually shocked by the lack of standardization and documentation in the wet lab

There's actually quite a lot of both of these. Here's the thing, we all have protocols specific to our labs or organisms. For many of us, our protocols are based on a canonical source (Which are now usually found in _Nature 's_ Prootcols) but optimized around what we do. Working with organics is rarely as easy as it might seem (especially if you're coming from the software side of things, I somwhat did too). I've digitized most of our protocols (some dating back to the 1950's) but for the most part we all refer to hardcopies of them. Electronic protocols aren't nearly as useful as print ones, especially since they're constantly tweaked. And most of us in academia freely share our optimized protocols with eachother -- you only have to ask.

There are a couple of Lab-notebook-in-the-cloud options but I've never really liked any of them. Instead I keep everything in Dropbox (for sharing with my colleagues) with versioning handled in a private git repo. I can commit experiment notes and checkin images. All of my notes are in markdown.

</comment></comment><comment><USER4> There's a newsgroup (and gatewayed mailing list), running for god knows how long but at least since 1993 [1], called Methods and Reagents:

[https://groups.google.com/forum/#!forum/bionet.molbio.methds...](https://groups.google.com/forum/#!forum/bionet.molbio.methds- reagnts)

Which has been used to share protocols, just like this, since the dawn of the web. It's a newsgroup, so hardly anyone uses it any more, of course. I guess it doesn't have a flat UI and an iPhone app.

At some point, some of the users of the group set up a wiki to capture protocols in a more permanent form:

[http://methodsandreagents.pbworks.com/w/page/20806945/FrontP...](http://methodsandreagents.pbworks.com/w/page/20806945/FrontPage)

But it never took off like we hoped.

As irollboozers notes in another comment, there is nothing new under the sun. The selection criterion for any such effort is simply getting a critical mass of people involved and contributing protocols.

[1] [http://schneider.ncifcrf.gov/methods/TIBS/nov93.txt](http://schneider.ncifcrf.gov/methods/TIBS/nov93.txt)

</comment><comment><USER5> Not sure about if that will work.

Most of the time you can't change a thing in protocols if you want to have a minimal level of acceptance.

You would only need such a thing if you are developing a new protocol for something, which might happen a lot but I am not sure if it would be nice to be sharing not ready protocols on the web. Even if it would, people would still need to agree on a single one or something. Otherwise you will end up with 200000x DNA extraction protocols with their tiny customizations(Every lab technician has it's own way of doing every single step in some protocols...)

It would probably be nice as a in house access only system for universities and research facilities thought.

<comment><USER6> There's already Springer Protocols ([http://www.springerprotocols.com/](http://www.springerprotocols.com/)), not free, but IMHO, universities and research facilities already have it better than whatever free alternative may come up in the future. This is not the sort of project that requires only upfront costs, this is why I unfortunately don't think it will live for long, if it ever gets completely funded.

</comment></comment><comment><USER7> The crowdsourced part is where this could really have a big impact, otherwise the technology is pretty standard. Crowdsourcing legitimate and replicable protocols is something others have tried (OpenWetWare, etc) but not quite scaled to Github like levels. Still, this seems to run into the same challenges that others before it faced.

I'll gladly pitch in some funds!

<comment><USER8> Indeed, the effort to create a central protocol repository is at least 20 years old. No one succeeded. The key part here is the crowdsourcing. Won't happen without a crowd. And won't happen unless a busy geneticist can share with a tap of a button. That's why for two years we have been focused on giving amazing tools to researchers - build the user base. We did not even begin building protocols.io and the checklist app right away because we know how hard it is to get traction. Also, we may just be doing this at the right time - on mobile. The protocol checklist app is the key ingredient that will make this happen.

</comment></comment><comment><USER9> I work in a lab that does high throughput screening, and I do develop internal web-based toolsets. After several years of iterations I can say that so far electronic lab notebooks never worked; there are even several commercial software available.

There are several reasons behind it:

1) Protocols are not a fixed predefined setup. One of the most important part of a protocol is the annotations on top. What went wrong, what did you change, etc. Today I have a repository of hand-written protocols (see [2]) that people print before going to the lab, write a date on it, and write comments on it. I cannot imagine this process of taking notes will be disrupted in near future, unless a very easy to use note taking system is there. IPad, LiveScribe (even wrote an app for it) et al are not there.

2) Writing protocols for lab people is cumbersome. Especially in our lab that has a protocol for every little process, to ensure reproducibility and standards. Asking them to sit behind computers (or mobile phone) to write is madness. The best that worked so far is I ask them to write and draw the process. Scan it, store in db, and print it with a click before experiment. They are happier than ever. Once done, I scan them back into db with date attached, and use evernote to search inside in case. The drawback is th editing part, but surprisingly they prefer to rewrite the whole thing rather than edit it behind the computer.

3) Protocols are subject to change, unless they are standard protocols (probably the market that this kickstarter is aiming). How should people store the revisions of the protocols? which one was used in the last experiment? did this modification work? think about a "git" system for protocols!

4) Lab people hate computers. They hate to use mobile phones to do anything than checking mails and calls. They love paper. Anything touchable. Taking mobiles into the lab is messy (google glass?). I have a feeling this can work with a geeky lab person but majority will oppose strongly.

5) Try to enter a protocol inside the tool. It will take ages until I have a smart protocol that may use non-standard agents inside. They need to work on a smarter way of entering protocols. Forms are too rigid.

6) I did an A/B test for some time, and what I found out was that pictures and text combination work great together, and minimized the common errors a lot. Printing a protocol, taking with them and ticking steps added another level of quality. So, adding hand-drawn / google images to the protocols may help besides an option for printing the protocol in the mobile app.

7) I love the common repository idea. The share button will be easy enough for even the laziest laborant.

I believe this is a good step toward the mess that is happening in the labs. Still the solution above currently is a local one to me; good enough for iteration 1 and will donate to push the idea forward.

<comment><USER8> I just wrote a long answer to "Will scientists use mobile in the lab?" [http://blog.pubchase.com/was-henry-ford-an-idiot-will- scient...](http://blog.pubchase.com/was-henry-ford-an-idiot-will-scientists- use-mobile-in-the-lab/)</comment></comment>


AppRadio Hacked to Run Android on your Car Stereo - <AUTHOR> http://appradioforums.com/Thread-KillNanny-Video <comment><USER2> This has been my sideproject for the past few months. I did it by building a bluetooth client using packetdumps and decompiled Java code. I also had to make a virtual touchscreen driver. It sends the display over HDMI and everything else over bluetooth. The radio comes with a directional microphone which lets you use voice commands for a lot of the functions. Its a great setup. The sound is digital. It basicly turns your phone into your stereo.

</comment><comment><AUTHOR> A friend of mine has been working on this non-stop. It is a very cool end- result.</comment>


Command-line Tools can be 235x Faster than a Hadoop Cluster (2014) - <AUTHOR> https://adamdrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html <comment><USER4> I have rewritten incredibly overarchitected stuff, Cassandra, Hadoop, Kafka, Node, Mongo etc with a plethora of the 'the latest cool programming languages' running on big clusters of Amazon and Google to simple, but not sexy, c# and mysql or pgsql. Despite people commenting on the inefficiency of ORMs and unscalable nature of the solution I picked, it easily outperformes in every way for the real worldcases these systems were used for. Meaning; far easier achitecture, easier to read and far better peformance in both latency and throughput for workloads that will probably never happen. Also; one language, less engineers needed, less maintenance and easily swappable databases. I understand that all that other tech is in fact 'learning new stuff' for RDD, but it was costing these companies a lot of money with very little benefit. If I need something for very high traffic and huge data, I still do not know if I would opt for Cassandra or Hadoop; even with proper setup, sure they scale but at what cost? I had far better results with kdb+, which requires very little setup and very minimal overhead if you do it correctly. Then again, we will never have to mine petabytes, so maybe the use case works there: would love to hear from people who tried different solutions objectively.

<comment><USER5> A lot of architecture is designed from the "what would enable me to job-hop to the next position on the seniority pole" vantage point.

<comment><USER6> We call that "LinkedIn Driven Development" (LIDD)

<comment><USER7> Just perfect!

</comment></comment></comment></comment><comment><USER8> I once converted a simulation into cython from plain old python.

Because it fit in the CPU cache the speedup was around 10000x on a single machine (numerical simulations, amirite?).

Because it was so much faster all the code required to split it up between a bunch of servers in a map reduce job could be deleted, since it only needed a couple cores on a single machine for a ms or three.

Because it wasn't a map-reduce job, I could take it out of the worker queue and just handle it on the fly during the web request.

Sometimes it's worth it to just step back and experiment a bit.

<comment><USER9> Yeah, back when I was in gamedev land and multi-cores started coming on the scene it was "Multithread ALL THE THINGS". Shortly there after people realized how nasty cache invalidation is when two cores are contending over one line. So you can have the same issue show up even in a single machine scenario.

Good understanding of data access patterns and the right algorithm go a long way in both spaces as well.

<comment><USER10> Even earlier, when SMP was hitting the server room but still far from the desktop, there was a similar phenomenon of breaking everything down to use ever finer-grain locks ... until the locking overhead (and errors) outweighed any benefit from parallelism. Over time, people learned to _think_ about expected levels of parallelism, contention, etc. and "right size" their locks accordingly.

Computing history's not a circle, but it's damn sure a spiral.

<comment><USER11> A spiral is pretty optimistic; it suggests we are converging on the optimal solution.

<comment><USER10> I usually think of it more as a three-dimensional spiral like a spring or a spiral staircase. Technically that's a helix, but "history is a helix" just doesn't sound as good for some reason.

</comment></comment></comment></comment></comment><comment><USER12> "You can have a second computer once you've demonstrated you know how to use one".

</comment><comment><USER13> Recently was sorting a 10 million line CSV by the second field which was numerical. After an hour went by and it wasn't done, I poked around online and saw a suggestion to put the field sorted on first.

One awk command later my file was flipped. Run same exact sort command on this but without specifying field. Completed in 12 seconds.

Morals:

1\. Small changes can have a 3+ orders of magnitude effect on performance

2\. Use the Google, easier than understanding every tool on a deep enough level to figure this out yourself ;)

<comment><USER14> csv files are extremely easy to import in postgres, and 10 M rows (assuming not very large) isn't much to compute even in a 6 or 7 year old laptop. Keep it in mind if you've got something slightly more complicated to analyse.

<comment><USER15> If SQL is your game but you dont want to get PG setup - try SQLite -

      wget "https://data.cityofnewyork.us/api/views/kku6-nxdu/rows.csv" rows.csv
      sqlite3
      .mode csv
      .import ./rows.csv newyorkdata
      SELECT *
      FROM newyorkdata
      ORDER BY `COUNT PARTICIPANTS`;

<comment><USER16> Or use csvkit ...

<comment><USER15> Oh nice, I hadn't seen this before, so a similar query would be a bit shorter!

      wget "https://data.cityofnewyork.us/api/views/kku6-nxdu/rows.csv"
      csvsql --query "SELECT * FROM newyorkdata ORDER BY `COUNT PARTICIPANTS`" rows.csv > new.csv

</comment></comment></comment></comment></comment><comment><USER17> See also: Scalability! But at what COST? [1] [2]

> The COST of a given platform for a given problem is the hardware > configuration required before the platform outperforms a competent single- > threaded implementation. COST weighs a system's scalability against the > overheads introduced by the system, and indicates the actual performance > gains of the system, without rewarding systems that bring substantial but > parallelizable overheads.

[1] [http://www.frankmcsherry.org/assets/COST.pdf](http://www.frankmcsherry.org/assets/COST.pdf)

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

<comment><USER18> Keep in mind it's for graph processing - Hadoop/HDFS still shines for data- intensive streaming workloads like indexing a few hundred terabytes of data - where you can exploit the parallel disk io of all disks in the cluster - <USER2> you have 20 machines with 8 disks in a cluster that's 20 * 8 * 100mbyte/s = 16gbyte/s throughput - for 200 machines it's 160gbyte/s.

However for iterative calculations like pagerank the overhead for distributing the problems is often not worth it.

</comment></comment><comment><USER12> For my performance book, I looked at some sample code for converting public transport data in CSV format to an embedded SQLite DB for use on mobile. A little bit of data optimization took the time from 22 minutes to under a second, or ~1000x, for well over 100MB of Source data.

The target data went fro almost 200MB of SQLite to 7MB of binary that could just be mapped into memory. Oh, and lookup on the device also became 1000x faster.

There is a LOT of that sort of stuff out there, our "standard" approaches are often highly inappropriate for a wide variety of problems.

<comment><USER19> Normal developer behavior has gone from "optimize everything for machine usage" (cpu time, memory, etc.) to "optimize everything for developer convenience". The former is frequently inappropriate, but the latter is, as well.

(And some would say that it then went to "optimize everything for resume keywords," which is almost always inappropriate, but I don't want to be too cynical.)

<comment><USER12> Oh, it was also less code.

</comment></comment></comment><comment><USER20> Previous posts:

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

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

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

<comment><USER21> The last one has zero comments, so there's no point linking to it.

<comment><USER22> Unless you're trying to make a point about reposting.

<comment><USER23> 3 times over 4 years isn't unreasonable for interesting content. With the exception of the unlucky post this has generated good discussion each time and I think is safely in the interesting category.

</comment></comment></comment></comment><comment><USER10> A lot of people are saying how they've worked on single-machine systems that performed far better than distributed alternatives. Yawn. So have I. So have thousands of others. It should almost be a prerequisite for working on those distributed systems, so that they can understand the real point of those systems. _Sometimes_ it's about performance, and even then there's no "one size fits all" answer. Just as often it's about capacity. Seen any _exabyte_ single machines on the market lately? Even more often that that, it's about redundancy and reliability. What happens when your single-machine wonder has a single hardware failure?

Sure, a lot of tyros are working on distributed systems because it's cool or because it enhances their resumes, but there are also a lot of professionals working on distributed systems because they're the only way to meet requirements. Cherry-picking examples to favor your own limited skill set doesn't seem like engineering to me.

</comment><comment><USER24> in other words, "Too big for excel is not big data" [https://www.chrisstucchio.com/blog/2013/hadoop_hatred.html](https://www.chrisstucchio.com/blog/2013/hadoop_hatred.html)

<comment><USER25> I heard a variation on this: it's not big data until it can't fit in RAM in a single rack.

<comment><USER26> The version I've heard is that small data fits on an average developer workstation, medium data fits on a commodity 2U server, and "big data" needs a bigger footprint than that single commodity server offers.

I like that better than bringing racks into it, because once you have multiple machines in a rack you've got distributed systems problems, and there's a significant overlap between "big data" and the problems that a distributed system introduces.

<comment><USER27> It's frustrated me for the better part of a decade that the misconception persists that "big data" begins after 2U. It's as if we're all still living during the dot-com boom and the only way to scale is buying more "pizza boxes".

Single-server setups larger than 2U but (usually) smaller than 1 rack can give _tremendous_ bang for the buck, no matter if your "bang" is peak throughput or total storage. (And, no, I don't mean spending inordinate amounts on brand- name "SAN" gear).

There's even another category of servers, arguably non-commodity, since one can pay a 2x price premium (but only for the server itself, not the storage), that can quadruple the CPU and RAM capacity, if not I/O throughput of the cheaper version.

I think the ignorance of what hardware capabilities are actually out there ended up driving well-intentioned (usually software) engineers to choose distributed systems solutions, with all their ensuing complexity.

Today, part of the driver is how few underlying hardware choices one has from "cloud" providers and how anemic the I/O performance is.

It's sad, really, since SSDs have so greatly reduced the penalty for data not fitting in RAM (while still being local). The penalty for being at the end of an ethernet, however, can be far greater than that of a spinning disk.

<comment><USER26> That's a good point, I suppose it'd be better to frame it as what you can run on a $1k workstation vs. a $10k rackmount server, or something along those lines.

As a software engineer who builds their own desktops (and has for the last 10 years) but mostly works with AWS instances at $dayjob, are there any resources you'd recommend for learning about what's available in the land of that higher-end rackmount equipment? Short of going full homelab, tripling my power bill, and heating my apartment up to 30C, I mean...

<comment><USER27> > I suppose it'd be better to frame it as what you can run on a $1k > workstation vs. a $10k rackmount server, or something along those lines.

That's probably better, since it'll scale a bit better with technological improvements. The problem is, it doesn't have quite the clever sound to it, especially with the numbers and dollars.

Now, the other main problem is that, though the cost of a workstation is fairly well-bounded, the cost of that medium-data server can actually vary quite widely, depending on what you need to do with that data (or, I suppose, how long you might want to retain data you don't happen to be doing anything to right at that moment).

I suppose that's part of my point, that there's a mis-perception that, because a single server (including its attached storage) can be _so_ expensive, to the tune of many tens of thousands of (US) dollars, that somehow makes it "big" and undesireable, despite its potentially close-to-linear price-to-performance curve compared to those small 1U/2U servers. Never mind doing any reasoned analysis of whether going farther up the single-server capacity/performance axis, where the price curve gets steeper is worth it compared to the cost and complexity of a distributed solution.

> are there any resources you'd recommend for learning about what's available > in the land of that higher-end rackmount equipment?

Sadly, no great tutorials or blogs that I know of. However, I'd recommend taking a look at SuperMicro's complete-server products, primarily because, for most of them, you can find credible barebones pricing with a web search. I expect you already know how to account for other components (primarily of concern for the mobos that take only exotic CPUs).

As I alluded in another comment, you might also look into SAS expanders (conveniently also well integrated into some, but far from all, SuperMicro chassis backplanes) and RAID/HBA cards for the direct-attached (but still external) storage.

</comment></comment></comment></comment></comment></comment><comment><USER18> See also the wonderful COST paper: [https://www.usenix.org/conference/hotos15/workshop- program/p...](https://www.usenix.org/conference/hotos15/workshop- program/presentation/mcsherry)

But the article is kind of wrong. It depends on your data size and problem - you can even use commandline-tools with Hadoop Map/Reduce and the Streaming API and Hadoop is still useful if you have a few terabytes of data that you can tackle with map and reduce algorithms and in that case multiple machines do help quite a lot.

anything that fits on your local ssd/hdd probably does not need hadoop... however you can run the same unix commands from the article just fine on a 20tb dataset with Hadoop.

Hadoop MapReduce/HDFS is a tool for a specific purpose not magic fairy dust. Google did build it for indexing and storing the web and probably not to calculate some big excel sheets...

</comment><comment><USER28> Most people who think they have big data don't.

<comment><USER29> At an _absolute_ minimum, I'd say "big data" begins when you can't buy hardware with that much memory.

Apparently, in 2017, that was somewhere around 16 terabytes. [https://www.theregister.co.uk/2017/05/16/aws_ram_cram/](https://www.theregister.co.uk/2017/05/16/aws_ram_cram/) Heck, you can trivially get a 4TB instance from Amazon nowadays: [https://aws.amazon.com/ec2/instance- types/](https://aws.amazon.com/ec2/instance-types/)

The biggest DBs I've worked on have been a few tens of billions of rows, and several hundreds of gigabytes. That's like... nothing. A laughable start. You can make trivially inefficient mistakes and for the most part e.g. MySQL will still work fine. Absolutely nowhere _near_ "big data". And odds are pretty good you could just toss existing more-than-4TB-data through grep and then into your DB and still ignore "big data" problems.

<comment><USER30> 10 years ago I was working on a 50Tb datawarehouse. Now I see people who think 50Gb is "big data" because Pandas on a laptop chokes on it.

<comment><USER31> This, a million times this!!! I see people doing consulting promoting the most over engineered solutions I have ever seen. Doing it for data that is a few hundred GB or maybe at best a TB.

It makes me want to cry, knowing we handled that with a single server and a relational database 10 years ago.

Lets also not forget that everyone today forgets that the majority of data actually has some sort of structure. There is no point in pretending that every piece of data is a BLOB or a JSON document.

I have given up on our industry ever becoming sane, I now fully expect each hype cycle to be pushed to the absolute maximum. Only to be replaced by the next buzzword cycle when the current starts failing to deliver on promises.

<comment><USER32> Yep. I left consulting after working on a project that was a Ferrari when the customer only needed a Honda. Our architect kept being like "it needs to be faster", and I'm like "our current rate would process the entire possible dataset (everyone on earth) in a night, do we really need a faster Apache Storm cluster?" :S

"Resume driven development" is a great term.

</comment></comment></comment></comment></comment><comment><USER33>
        cat *.pgn | grep "Result" | sort | uniq -c

This pipeline has a useless use of cat. Over time I've found cat to be kind of slow as compared to actually passing a filename to a command when I can. If you rewrite it to be:

        grep -h "Result" *.pgn | ...

It would be much faster. I found this when I was fiddling with my current log processor to analyze stats on my blog.

<comment><USER34>
       Argument list too long!

<comment><USER35> Then do:

find -name \\*.pgn -print0 | xargs -0 grep -h "Result"

Each grep invocation will consume a maximum number of arguments, and xargs will invoke the minimum number of greps to process everything, with no "args too long" errors.

</comment></comment></comment><comment><USER36> Un My case it was 2015. I was struggling with a 28GB CSV file that i needed to cut grabbing only 5 columns.

Tried spark on my laptop: waste if time. After 4h I killed al processes because it didn't read 25% of the file yet.

Same for hadoop, python and pandas, and a shiny new tool from google whose name I forgot long time ago.

Finally I installed cygwin con My laptop and 20 minutes later 'cut' gave me the results file I needded.

<comment><USER37> cut solved your problem. Let's talk about why.

cut is line oriented, like most Unix style filters. It needs to keep only one line in memory at most.

If you say:

        pd.read_csv(f)[[x,y,z]]

It has to read and parse the entire 28GB into memory (because it is not lazily evaluated; cf Julia).

If you actually need to operate on three columns in memory and discard the rest, you should:

        pd.read_csv(f, usecols=[x,y,z])

Then you get exactly what you need, and avoid swapping.

The lack of lazy evaluation does inhibit composition--just look at the myriad options in read_csv(), some of which are only there to enable eager evaluation to remain efficient.

<comment><USER38> While Pandas csv parser is quite slow anyway, the reason Pandas is particularly slow in this case is because it insists on applying type detection to every field of every row read. I have no clue how to disable it, but it's default behaviour.

Parsing isn't actually a tough problem – [https://github.com/dw/csvmonkey](https://github.com/dw/csvmonkey) is a project of mine, it manages almost 2GB/sec throughput _per thread_ on a decade old Xeon

</comment></comment></comment><comment><USER39> For many, the incentive from the gig is

a) resume enrichment by way of buzzword addition b) huge budget grants and allocation, purportedly for lofty goals while management is really unaware of real technology needs/options

Much has been talked about this already; sharing them again!

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

[2] [https://www.chrisstucchio.com/blog/2013/hadoop_hatred.html](https://www.chrisstucchio.com/blog/2013/hadoop_hatred.html)

[3] [http://widgetsandshit.com/teddziuba/2010/10/taco-bell- progra...](http://widgetsandshit.com/teddziuba/2010/10/taco-bell- programming.html)

[4] [https://www.reddit.com/r/programming/comments/3z9rab/taco_be...](https://www.reddit.com/r/programming/comments/3z9rab/taco_bell_programming/)

[5] [https://www.mikecr.it/ramblings/taco-bell- programming/](https://www.mikecr.it/ramblings/taco-bell-programming/)

</comment><comment><USER40> So there are 2197188 games in that file.

Extracting only the lines with "[Result]" in them into new file (using grep) takes about 3 seconds.

Importing that into a local Postgres database on my laptop takes about 1.5 seconds.

Then running a simple:

       select result, count(*)
       from results
       group by result;

Takes about 0.5 seconds.

So the total process took only 5 seconds (and now I can run much more aggregation queries on that)

</comment><comment><USER41> I feel that we have spent 30 years replicating Bash across multiple computer systems.

The further my clients move to the cloud, the more shell scripts they write at the exclusion of other languages. and just like this, I have clients who have ripped out expensive enterprise data streaming tools and replaced them with bash.

The future of enterprise software is going to be a bloodbath.

<comment><USER42> I want to believe, but instead it will be javascript-driven blockchain at the command line

<comment><USER43> how else would you control your ML IoT cluster?

</comment></comment></comment><comment><USER44> anecdota - We used fast csv tools and custom node.js scripts to wrangle import of ~500GB of geo polygon data into a large single vol postgresql+postGIS host.

We generate svg maps in psuedo-realtime from this data-set : 2MB maps render sub-second over the web, which feels 'responsive'.

I only mention this as many marketing people will call 50Million rows or 1TB "Big Data" and therefore suggest big / expensive / complex solutions. Recent SSD hosts have pushed up the "Big Data" watermark, and offer superb performance for many data applications.

[ yes, I know you can't beat magnetic disks for storing large videos, but thats a less common use-case ]

<comment><USER45> How do you partition your data and/or build your indexes?

<comment><USER44> two kinds of indexes, for different purposes ...

a) basically a preprocessed static inverted index on keywords [ using GIN / tsv_ etc ]

b) geo location index on GIS geometry field - relying on postGIS to be performant over geo queries

The data changes infrequently, so these are computed at time of import / regular update.

We do have a fair amount of ram set aside for postgres [ circa 20GB ]

</comment></comment></comment><comment><USER46> Relevant article from 2013: 'Don't use Hadoop - your data isn't that big' [0] and the most recent HN discussion [1].

[0]: [https://www.chrisstucchio.com/blog/2013/hadoop_hatred.html](https://www.chrisstucchio.com/blog/2013/hadoop_hatred.html)

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

</comment><comment><USER47> Hi all, author here!

Many thanks for the feedback and comments. If you have any questions, I'm also happy to try to answer them.

I'm also working on a project, [https://applybyapi.com](https://applybyapi.com) which may be of interest to anyone here hiring developers and drowning in resumes.

<comment><USER48> I gave your service a quick whirl. Love the design language as a developer. What I don't like is that I have to provide my credit card information to get any detailed info (assuming there is such a thing behind the Stripe checkout).

The info available to non-signed-up people is simply not enough. It would be great if you had a demo account so one can get a feel for how this works.

E.g. I couldn't find info on why I have to add a job description. Wouldn't I post job board, with the posting liniing to the ApplyByAPI test?

I could also not find any info on the tests candidates have to do. Yes, APIs, I get it. But an example wouldn't hurt.

Interesting idea!

<comment><USER47> Hi, and thank you for the great feedback!

We will certainly consider those points, and try to make things both more clear from a communication perspective and also consider adding some demo account (great idea!).

To answer the question about the job description, you're right that most customers so far have a post on a jobs board which they use to get traffic over to their ApplyByAPI posting. Once the candidate is there, they get a page with the job description and some API information they can use to generate their application.

We'll work on improving the language and information presentation to potential customers, and thank you again for taking the time to give your perspective!

</comment></comment></comment><comment><USER49> You can get very good improvements over Spark too. I've been using GNU Parallel + redis + Cython workers to calculate distance pairs for a disambiguation problem. But then again, if it fits into a few X1 instances, it's not big data!

</comment><comment><USER14> If you need to do something more complicated where SQL would be really handy, and like here you're not going to update your data, give monetDB a try. Quite often when I'm about to break down and implore the hadoop gods, I remember about monetDB, and most of the time it's sufficient to solve my problem.

MonrtDB: columnar DB for a single machine with a psql like interface: [https://www.monetdb.org/](https://www.monetdb.org/)

</comment><comment><USER50> Well yes in the edge case where you don't really have big data of course it will.

Where MapReduce Hadoop etcera shine is when a single dataset one of many you need to process is bigger than the biggest single disk availible - <USER3> changes with time

Back when I did M/R for BT the data set sizes where smaller - still having all of the Uk's larges single PR!ME superminis running your code was dam cool - even though I used a 110 baud dial up print terminal to control it.

</comment><comment><USER51> Once, I saw a presentation of Unicage, a big data solution that had (perhaps still has) a free version [https://youtu.be/h_C5GBblkH8?t=2566](https://youtu.be/h_C5GBblkH8?t=2566) It seems that it has evolved to a company now: [http://www.unicage.com/products.html](http://www.unicage.com/products.html)

Did anyone try the unicage solution?

</comment><comment><USER52> I think much of this issue can be attributed to 2 most underrated things

1\. Cache line misses. 2\. So called definition of BigData. (if data can be easily fit into memory, then its not Big period! )

Many times, I have seen simple awk / grep commands will outperform Hadoop jobs. I personally feel, its lot better to spin up larger instances, compute your jobs and shut it down than bearing the operational overhead of managing hadoop cluster.

</comment><comment><USER53> Anchoring the search would allow the regex to terminate faster for non- matching lines:

        ... | mawk '/^\[Result' ...

</comment><comment><USER54> Esp. if you use multipipe-enhanced coreutils, like dgsh. [https://www2.dmst.aueb.gr/dds/sw/dgsh/](https://www2.dmst.aueb.gr/dds/sw/dgsh/)

</comment><comment><USER55> It would benefit people to actually understand algorithmic complexity of what they are doing before they go on these voyages to parallelize everything. It also helps to know what helps to parallelize and what doesn't.

</comment><comment><USER56> Something, something, Joyent Manta: [https://apidocs.joyent.com/manta/job- patterns.html](https://apidocs.joyent.com/manta/job-patterns.html)

</comment><comment><USER57> Shouldn't this be marked 2014? The articles date is January 18, 2014.

<comment><USER30> It's probably even truer and more relevant now

</comment></comment><comment><USER58> Partially because of the bloated architecture of those Hadoop, Kafka, etc. And of course Java. Implementing modern and lighter alternative to those in C++, Go or Rust would a step forward.

<comment><USER59> Wierd. I'd always thought of go as a slower Java with an shallower pool of good libraries and weak dev tools. Is the compiler and gc that good? Maybe I'll have to give it another try.

<comment><USER29> Depends on what you're targeting. For raw computation, Go's similar and sometimes noticeably faster, even after hotspot has its turn. For garbage collection _pause time_ , Go's rather amazing, typically measuring _less than a millisecond_ even for gigabytes of heap mem[1]. For bin startup time (e.g. for a CLI tool) try Go instead just because it'll be done _way_ before the JVM even hands control to your code.

For dev tools, oh hell yes. Stick to Java. Go comes with some nice ones out- of-the-box which is always appreciated, but the ecosystem of stuff for Java is among the very best, and even the standard "basic" stuff vastly out-does Go's builtins.

[1]: [https://twitter.com/brianhatfield/status/634166123605331968?...](https://twitter.com/brianhatfield/status/634166123605331968?lang=en) and there's also a blog/video? about these same charts and how it got there. pretty neat transformations.

</comment></comment></comment><comment><USER60> People are suckers for complex, over-engineered things. They associate mastering complexity with intelligence. Simple things that just work are boring / not sexy.

I'll be in my corner doing asking "do we really need this?"/"have you tested this?"

</comment><comment><USER61> 'Nuff said: [https://github.com/erikfrey/bashreduce](https://github.com/erikfrey/bashreduce)

</comment><comment><USER62> I've heard this so often, especially from my boss - whoever this is. I come to the conclusion this is just a lame excuse because the people feel out of control and overwhelmed when using this kind of software. It is heavily Java based and to those who never touched javac, the Stack traces must look both intimidating and ridiculous.

On the other hand, processing data over several steps with a homegrown solution needs a lot of programming discipline and reasoning, otherwise your software turns into an unmaintainable and unreliable mess. In fact this is the case where I work right now...

</comment><comment><USER63> This reminds me of the early EJBs which were really complicated and most people who used them didn't really need them.

</comment><comment><USER64> It can be colder at night than outside.

</comment><comment><USER65> I closed at "Since the data volume was only about 1.75GB". (And probably would have until 500GB+)

<comment><USER66> 500GB is still laptop SSD territory... unless you meant 500TB but that's still doable with a single 4U Backblaze Storage Pod with 60 x 10TB HDDs.

<comment><USER67> Just reading 500TB from 60 Hdds will take at least 12 hours, assuming a very optimistic constant 200MB/s throughput per HDD. If you need things to go faster you won't be able to do that without resorting to distributed computing.

</comment></comment></comment><comment><USER68> Ah yes this is so true!

</comment><comment><USER69> the hadoop solution may have taken more computer time, but that is far less valuable than a person's

the command-line solution probably took that person a couple or more hours to perfect

</comment><comment><USER70> If I do one thing this year, I need to learn more about these tried and tested command-line unix shell utilities. It's becoming increasingly obvious that so many complicated and overwrought things are being unleashed on the world because (statistically) nobody knows this stuff anymore.

<comment><USER36> You just need to master a few commands:

Find (take a look at -exec option)

Cut (or awk)

Sed (for simple text/string substitutions)

Xargs

Dd (that beast can do charset transtation from ASCII to EBCDIC to use in mainframes and can also wipe disks)

And bash of course :)

<comment><USER71> One fun thing is that xargs supports parallelization.

        -P max-procs
        Run up to max-procs processes at a time; the default is 1.
        If max-procs is 0, xargs will run as many processes as
        possible at a time.  Use the -n option with -P; otherwise
        chances are that only one exec will be done.

        -n max-args
        Use at most max-args arguments per command line.
        Fewer than max-args arguments will be used if the size
        (see the -s option) is exceeded, unless the -x option is
        given, in which case xargs will exit.

So here is a "map/reduce" job which takes the log files in a directory and processes them in parallel on eight CPUs, then combines the results.

        find . -name "*.log" | sort | xargs -n 1 -P 8 agg_stats.py | sort | merge_periods.py

<comment><USER29> xargs is one of my favorites, it's so easy to split something apart to speed it up by a few multiples.

gotta SSH into 100 machines and ask them all a simple question? xargs will trivially speed that up by at least 10x, if not better, just by parallelizing the SSH handshakes.</comment></comment></comment></comment>


Ask HN - SEO Advice - <AUTHOR>

I was thinking about making some videos just as something creative to do. I don't even have a topic in mind. I thought I would let the market decide.
I know that SEOMoz has a Keyword Difficulty Tool that shows if you are writing a blog or something how competitive the market is for the topic you are writing about. Is there something similar for Videos, images, or mobile content? Seems like a very useful thing to have. I can't believe I'm the first one needing this.
EDIT: To better describe the question, let's say I want to post pictures of my German Shepherd on my blog. Is there a tool I can use that will tell me how hard it is to place that picture on the first page of search results from Google? Same thing for videos or mobile content. I've got that tool for text content -- it's SEOMoz Keyword Difficulty Tool. <comment><USER2> In your case I would do a couple of searches on Youtube for video and Google images/Flickr and compare the number of results that they report. That should give you a high level idea on the amount of content out there for your topics.

</comment><comment><AUTHOR> Do I have to make my own tool for this? (Hopes the answer is no)</comment>


Rebot.me – Create your own chatbot in 5 minutes - <AUTHOR> http://rebot.me <comment><USER3> From watching the videos, it seems there are no stock responses built in - <USER2> new chatbot doesn't even understand 'hello' or 'how are you'. I think the effort for someone to get their bot acting natural is going to take a lot more than 5 minutes, even for simple use cases. Are there plans to improve the default knowledge ?

<comment><AUTHOR> Thank you for your interest. Actually new chatbots understand most common phrases like "hello" or "how are you". There is built in support for most common phrases and we continue to improve our knowledge base everyday.

</comment></comment><comment><AUTHOR> I am founder of Rebot.me Please don't hesitate to ask me whatever you want to know about our project.</comment>


Ask HN: How can Non-US founders open a bank account in the US? - <AUTHOR> I've researched about incorporating in the US, and found Bank account is mandatory. It seems creating a bank account needs physical presence, but, I'd also read there are ways we can open a bank account without need for physical presence.<p>Fellow HNers who have actually done that, please share your experience about opening an account with US Bank, preferably startup friendly bank. <comment><USER2> Can we please have some stories from people who have

1) Opened a MERCHANT account without setting foot in the US

2) Successfully used said merchant account to bill customers online?

</comment><comment><USER3> There are a few ways. 1) (Both Corporate/Personal) : Open a bank account locally with a bank that also has branches in the USA - then use their international banking center to facilitate the process of necessary documents at your local bank (I.e. HSBC, Citibank offer this service) - [http://www.citibank.com/ipb- global/homepage/newsite/content/...](http://www.citibank.com/ipb- global/homepage/newsite/content/english/index.htm) , <http://www.expat.hsbc.com/1/2/>

2) Just personal: Open an "High Net Worth" account. Also can be done from anywhere in the world, but you must usually keep at least $30K USD in the account liquid in order not to be charged hefty fees. Citibank offers these accounts as well (see link above)

<comment><USER4> I am in the process of trying this and it has become much less simple. Certainly for HSBC a remote account opening is considered "next to impossible" - it requires above branch level sponsorship from the bank which in practise means turnover 1m+. I am told US anti terror laws have made a big impact on opening non resident accounts in past few months

I am hoping I can workaround the problems but my bank managers expectations are low - I may be visitin the states sooner than planned.

<comment><USER5> What trouble are you having with HSBC? I've just spent about an hour on the phone with them to open an account in Australia and all I'm required to do now is go to a Local Branch near me with my ID / documents - the account will be ready in a week, two weeks max.

<comment><USER4> So far the trouble has been - a flat out "no way." need to work around that, but I doubt it is going to be quick or cheap. Them's the breaks.

</comment></comment></comment></comment><comment><USER6> This article might help : [http://blog.freshdesk.com/how-to-incorporate-a-us- corporatio...](http://blog.freshdesk.com/how-to-incorporate-a-us-corporation- from-outs/)

</comment><comment><USER7> mark_up, that link ([http://blog.freshdesk.com/how-to-incorporate-a-us- corporatio...](http://blog.freshdesk.com/how-to-incorporate-a-us-corporation- from-outs/#.T4rH0ektgto)) is quite helpful, but as your account has been banned since you wrote something _slightly_ unflattering about Steve Jobs 190 days ago, we can't see it.

</comment><comment><USER8> My situation is somewhat similar: I'm a Canadian citizen but was in the US for several years on an H1B work visa, which got me a SSN and a personal bank account w/ Chase.

However, I've since relocated to Australia. I'm developing a web based business but would like the business to have a legal presence in the US so that I can take advantage of e.g. stripe.com for payments.

At this point I'm not considering taking VC money as I prefer to be bootstrapped. So I'm fine w/ simpler business structure of e.g. LLC vs. full blown Corp.

Can anyone recommend the process and/or lawyers for setting up a legal business presence in US for someone in my situation? I'm happy to pay the going rate for incorporation.

If you're a lawyer please feel free to contact me. Details in my profile. Thanks.

<comment><USER9> Hello I came across your post because I am dealing with similar issues like you as well. I just started my own consulting firm business in the US. If you haven't resolved your issue yet I can advise you a couple of ideas that may help. Feel free to contact me here or firstname.lastname@example.com

</comment></comment><comment><USER10> If you can get to the US, opening a bank account becomes a whole lot easier. Last time I was in the US I opened a bank at Chase. I was surprised at how easy it was. All you need is your passport and local country national id (in my case a drivers license).

<comment><USER11> You need SSN to _operate_ that a/c

<comment><USER12> Not really. You can use an ITIN. IRS gives them and they are for tax tracking only. <http://www.irs.gov/individuals/article/0,,id=222209,00.html>

With that and a passport you can easily walk into a bank and open a checking account.

<comment><USER13> > Not really. You can use an ITIN. IRS gives them and they are for tax > tracking only.

I just went though trying to get an ITIN for my spouse so we could file a joint tax return. After waiting for 5 weeks, they rejected the application because we didn't attach a copy of a previous tax return--which we don't have, so it's a catch 22 if I ever saw one. I'm certain that requirement is bogus on their part, but it meant we had to file for an extension on the tax return until we could get it sorted out. If it's that much trouble when you are a legal resident, I can't imagine the process for a non-resident.

<comment><USER14> It should be easier if you are a corporation. Did you file with a CPA?

<comment><USER13> No. My naive thinking was that since we're not claiming any complex deductions (we don't have any relevant assets in the US), I could easily do everything by myself. I'll probably regret that.

<comment><USER14> Yes, in our case we preferred to go with a CPA at least this first time that we don't know how things work.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> I've previously held a US bank account with HSBC without having US residence. If you have another HSBC account, you should also be able to link your accounts for a global view. Avoid making transfers through them though, because the rates are horrendous.

</comment><comment><USER16> I did it for Pen.io and did it with Chase, I can give an introduction to the VP of Business Banking there who'll be able to help you out if you need it. It was a straight forward process. Getting an EIN (which you'll also need) is slightly more difficult but again I can help you out - just shoot me an email

<comment><USER14> Getting an EIN is easy. You just need to incorporate and then you can obtain the EIN by phone. We did it for our company.

</comment></comment><comment><USER17> A couple of years ago, prior to moving completely to the US I opened an international personal account with Chase - basically regular checking, but without the need to be in the US.

I didn't have an SSN at the time, or even an ITIN.

I was in the country, but temporarily, on a 90 day visa waiver from the UK. I just showed my ID etc, and they opened it up. I was using the branch opposite the UN, so I assume they deal frequently with this sort of thing.

So, yes, I was physically present, but you could do it as part of a one day trip. I wan't resident in the US in any meaningful way - i.e., no legal residency, etc.

</comment><comment><USER18> I'm in Canada and incorporated in Canada and was able to open a bank and merchant account in the US, as well as take Amex cards in USD. The setup:

1) Bank account with Harris bank. They are excellent for setting a bank account remotely. 2) USD merchant account with Moneris. They are ok but today I would probably just go with Stripe. 3) Amex is the tricky one. They require a physical us address so I used my friend's who lives I'm the US.

</comment><comment><USER19> HSBC Bank lets you open a bank account with just the documents of incorporation of US company.Also, with the HSBC network, you need not travel to US for the account opening, this can be handled from India. Contact india.cmb.ibc[at]hsbc.co.in for more info about the process this is corporate banking support email.

</comment><comment><USER20> I was wondering the same thing. What about someone who doesn't want to incorporate a company but just create a bank account for billing? (I'm thinking Stripe).

[edit] I'm an individual web developer and even Paypal doesn't work in my country so it sucks. It'd be great if there were a way around it.

<comment><USER21> Stripe requires a social security number and an EIN (if registering as a company).

Getting the EIN is easy (online in 10 minutes), getting the social is a lot harder.

<comment><USER14> If you are a foreigner the EIN is done by phone for a corporation. But still like 20 mins

<comment><USER21> I did mine online (as a foreigner)

</comment></comment></comment></comment><comment><USER22> the ssn type requirements are just for the irs to track income. since you don't have the requirements for an SSN get an ITIN (see below) </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>==== corp: get a physical mailing address. sign up your corp at that address (preferably delaware), or using a corporate agent to maintain that address and forward mail. register your corp, get an ein number from irs.gov (don't have someone do this on your behalf, its literally a 2 minute online form), and then open your account.

personal: as for a personal account i think you just need to get a taxpayer id... ( <http://www.irs.gov/individuals/article/0,,id=96287,00.html> )

</comment><comment><USER23> Try Silicon Valley Bank. Particularly if you're funded. They can also hold foreign currency.

</comment><comment><USER24> I'm presently encountering this issue. I would like to charge credit cards directly on the site without going through PayPal, but US gateways want me to have a US presence, European gateways want me to have a European presence (checked by seeing that I have a company address in Europe and utility bills coming in with my name to that address). Why it matters where I physically reside is a bit of a mystery to me.

</comment><comment><USER25> This should be something you discuss with your lawyer, don't cheap out and miss dotting a T or crossing an I with corporate stuff.

</comment><comment><USER26> Bank account is not required to incorporate in the US. Whoever is telling you this hasn't done their homework.

<comment><AUTHOR> Sorry, Its a mistake on my part. I'm going to launch a SaaS product, Bank account is mandatory for billing, not incorporating.

<comment><USER27> Why use the US and not a jurisdiction like the UK?

<comment><USER28> probably because in UK (and EU) the online billing solutions are a nightmare. I would do the same - just to be able to use Stripe.

<comment><USER24> Based on a chat with Stripe around last Startup School, you can not use Stripe by just incorporating in the US without being physically present in US.

<comment><AUTHOR> How do they evaluate physical presence? exactly.

<comment><USER29> Not sure how Stripe does it, but could be based on utility bills or a social security number.

</comment></comment></comment></comment></comment></comment></comment><comment><USER30> Why do you want to incorporate in the US?

<comment><AUTHOR> Access to better payment gateways.

</comment></comment><comment><USER31> aussie in this exact situation checking in .... after looking into the local options for charging in US dollars (NAB is the only player in town who will handle foreign currency transactions, but it's messy and expsensive), I'm now looking at either flying to the US or using a third party to incorporate an LCC and set up a US bank account for me (I won't link directly to any sites, but you should be able to google for them). This isn't me, but this fellow summarises the issues facing aussies startups who want to charge in US dollars - [http://www.geoffmcqueen.com/2010/07/02/going-to-america- onli...](http://www.geoffmcqueen.com/2010/07/02/going-to-america-online- business-from-down-under/)

<comment><USER32> Hi, new to this board, but founded Paymate in Oz, so have some insights. Besides NAB, CBA also processes credit card payments in foreign currencies (and settles in that currency). Neither bank is keen to sign up small merchants, which may be the hurdle faced by startups. Happy to help out with the banks if you have a reasonable volume to process.

If you are setting up a US business and that is where the customers are, then it may be worthwhile to set up a US company and get US merchant facilities. I did this with Wells Fargo and Chase so have some idea of process.

Best!

</comment></comment><comment><USER33> If you open a US bank account while incorporating in your home country, how would the tax paying work? Would you have to pay anything to the US Gov?

</comment><comment><USER34> I opened a personal checking with my passport + proof of address (just made a quick rental contract with a friend).

</comment><comment><USER35> I think that you need a SSN for a personal bank account nowadays..

<comment><USER21> Didn't a couple of months ago. I opened a personal account at Vhasr whilst I was in SF. needed my drivers license and passport (both Australian issued). Didn't need anything else.

<comment><USER21> *At Chase (bloody auto correct)

</comment></comment></comment><comment><USER36> HSBC</comment>


Ask HN: What do you put on a new computer? - <AUTHOR> I'm getting a new computer for the first time in ~6 years. I've been on MBP/OSX for the last 8 years, and before that was running dual boot Ubuntu/Windows for 7 years.
I'm switching back to a Thinkpad, and I'd like to see what you all do with a new computer? Do you wipe it? Use VMs? What flavor of OS?
If it's any help, my full-time job is doing Ruby on Rails / React / Flutter. I also play around with Aseprite (pixel art) + Krita (using a Wacom) and game dev with Godot. And (very rare) gaming, though I would like to play more...
Thanks for your recommendations. <comment><USER2> > I'm switching back to a Thinkpad, and I'd like to see what you all do with a > new computer? Do you wipe it? Use VMs? What flavor of OS?

I have Arch installed on my ThinkPad (a meme, I know, but I love it.) One of the first things I install is Emacs, with all my configurations. That way I can work on getting everything else set up on my new machine.

</comment><comment><USER3> I would certainly install Ubuntu or Mint as a dual boot. It comes with plenty of software such as LibreOffice, Firefox and Gimp which I use all the time.

I currently use Atom for coding but I'm not sure how good that is with RoR.

</comment><comment><USER4> On windows: java dev tools(git,jdk,intellij/vscode), irfanview, notepad++ and total commander is a must have.

On Linux: vim and my .vimrc .

</comment><comment><USER5> On windows:

\- firefix (w/ adblock plus)

\- chrome (w/ adblock plus)

\- git

\- vscode

\- visual studio community

\- desk pins (utility to keep window on top)

\- "a ruler for windows" (on screen ruler)

...and that's pretty much it. Everything else I just do when I need it.

</comment><comment><USER6> On a Mac, Homebrew is the first thing I install. I then pull my dotfiles repo which has some scripts to get most of my dev tools installed.</comment>


New Apple patent imagines an OLED screen as a keyboard for MacBooks – The Verge - <AUTHOR> https://www.theverge.com/circuitbreaker/2018/2/27/17058616/apple-patent-oled-screen-keyboard-macbook-pro-touch-bar <comment><USER2> The ergonomics would be abysmal! I loathe typing on a sheet of glass for the RSI impact, and the lack of tactile feedback.</comment>


Pure Java implementation of LevelDB - <AUTHOR> https://github.com/dain/leveldb

<comment><USER2> I'm getting a little excited about LevelDB

I'm an IndexedDB fanboy, and they're using LevelDB as an experimental backend to the API. <http://news.ycombinator.com/item?id=2526263>

Not saying that the whitepaper is going to end up as big of a gamechanger as Big Table or Dynamo, but I think it could be pretty interesting technology idea to play in the Memcached/Redis space.</comment>


The Kidnapping of the Lunik - <AUTHOR> https://www.cia.gov/library/center-for-the-study-of-intelligence/kent-csi/vol11no1/html/v11i1a04p_0001.htm

<comment><USER2> Some interesting euphemisms in here:

""When it left it was preceded by a Station car and followed by another; their job was to determine whether the Soviets were escorting it to the rail yard. When it was clear that there were no Soviets around, the truck was stopped at the last possible turn-off, a canvas was thrown over the crate, and a new driver took over. The original driver was escorted to a hotel room and kept there for the night.""

I like "was stopped" and "was escorted".

""But perhaps more important in the long term than these positive intelligence results was the experience and example of fine cooperation on a job between covert operators and essentially overt collectors.""

Huh, "overt collectors".

I don't think the text says what country they were in.

</comment><comment><USER3> A couple of the operation's participants came forward back in 2005.[1]

Apparently this took place in Mexico City.

[1]: [http://www.freerepublic.com/focus/f-news/1532478/posts](http://www.freerepublic.com/focus/f-news/1532478/posts)</comment>


Why programmers can't make any money - <AUTHOR> https://web.archive.org/web/20151221082425/https://michaelochurch.wordpress.com/2014/06/06/why-programmers-cant-make-any-money-dimensionality-and-the-eternal-haskell-tax/ <comment><USER2> Firstly, this post is from 2014, and should probably have the title modified (if it even stays).

But more importantly, Michael has archives spanning all the way to 2013, with his 2014 blog posts oddly disappeared. Does he still feel this way, is this an accurate statement in today's economy?

I think it's a very controversial statement to say "any" money. Developers do quite well - on average, developers make more than the majority of the population. Some, especially in engineering management, make on par (or more) than some lawyers and even doctors.

Just like specialties in law and medicine, some pay more than others because of demands, and those specialties can cycle in demand. For example, radiology is really hot right now and pays very well - it was not as lucrative or selective of a specialty in the 70s and 80s.

Similarly, in engineering, choosing a language like Haskell may be highly- specialized, so that if someone needs your skills, they will pay a pretty penny, but amortized over many years, you may make less because the volume of demand doesn't quite match what one is willing to pay. I also think it's a flawed comparison to law and medicine. An example:

A lawyer doesn't specialize in English or Spanish. They may know a few languages to talk w/ clients, which is an asset, but they specialize in a discipline of law (e.g. corporate, tax, IP), not on the toolbox used for the law (e.g. reading/writing English).

To draw that analogy to programmers, better to know a discipline (e.g. HCI, Machine Learning, Robotics) and then find languages that go with that (e.g. Python & R for Machine Learning, C/C++ for Robotics) than to specialize in a language itself.</comment>


Deep Voice: Real-Time Neural Text-To-Speech for Production - <AUTHOR> We present Deep Voice, a production-quality text-to-speech system constructed entirely from deep neural networks. Deep Voice lays the groundwork for truly end-to-end neural speech synthesis. The system comprises five major building blocks: a segmentation model for locating phoneme boundaries, a grapheme-to-phoneme conversion model, a phoneme duration prediction model, a fundamental frequency prediction model, and an audio synthesis model. For the segmentation model, we propose a novel way of performing phoneme boundary detection with deep neural networks using connectionist temporal classification (CTC) loss. For the audio synthesis model, we implement a variant of WaveNet that requires fewer parameters and trains faster than the original. By using a neural network for each component, our system is simpler and more flexible than traditional text-to-speech systems, where each component requires laborious feature engineering and extensive domain expertise. Finally, we show that inference with our system can be performed faster than real time and describe optimized WaveNet inference kernels on both CPU and GPU that achieve up to 400x speedups over existing implementations. <comment><USER2> Hey there! Our paper is on Arxiv [0] and we have a blog post about this [1].

I am one of the authors on this paper and am happy to answer any questions you may have.

[0] [https://arxiv.org/abs/1702.07825](https://arxiv.org/abs/1702.07825)

[1] [http://research.baidu.com/deep-voice-production-quality- text...](http://research.baidu.com/deep-voice-production-quality-text-speech- system-constructed-entirely-deep-neural-networks/)

</comment><comment><AUTHOR> Audio samples here. [http://research.baidu.com/deep-voice-production-quality- text...](http://research.baidu.com/deep-voice-production-quality-text-speech- system-constructed-entirely-deep-neural-networks/)

<comment><USER2> For some reason, either my account or the the baidu.com domain is blocked or delayed on HN. We tried to post this but weren't able to post the link.</comment></comment>


The worst things startups do - <AUTHOR> http://scobleizer.com/2009/11/13/the-worst-things-startups-do/

<comment><USER2> It would be a better article without the rackspace plugs.

Most of the rest of it is good though, especially the 'spend the money on the wrong things' bit, that's one plenty of companies (start-ups or not) fall for.

And spending your money on rackspace would be a nice example of spending your money on the right thing (hosting) but in the wrong way (wasteful).

</comment><comment><USER3> _"I can smell programmers."_

Scoble would be useful in tech interviews. Like a drug-sniffing dog you could just sic him onto prospective programming candidates and have him bark twice if he smelled the pungent musk of programming talent.

</comment><comment><USER4> > "3. If I look around and don't see programmers. I can smell programmers. A > good company is full of them. Posterous, for instance, has ONLY programmers. > FriendFeed had something like 13 programmers and one other person. Great > ratio."

i wonder about this. currently my startup is me and my co-founder, and he's not a programmer (though he can handle version control, html, css and critical thinking). as we grow, should we plan for more outreach/sales/customer service type of folks with the same tech growth, or more programmers to explode on technology platforms and innovation?

i know it depends on our company. i've heard many different pieces of advice.

<comment><USER5> Having creative people that can think through good product and web design is very important. If the experience and product is not designed well, it doesn't matter how many programmers you have. Even the best programmers won't be able to program a good experience out of it.

</comment></comment><comment><USER6> > "I've been in more than one startup that had bad chairs and small screens > for their engineers but they had an expensive coffee machine."

I'm more productive with good coffee and a small screen than I would be with bad coffee and a large screen.

<comment><USER7> Addict.

<comment><USER8> We prefer, 'enthusiasts'.

</comment></comment></comment><comment><USER9> This article brought back haunting memories of Cuil. Pity, because I wouldn't mind more competition in the search market, particularly since Google has gotten less relevant for programming related queries.

</comment><comment><USER10> It could be that startups which are mostly programmers, by necessity, are composed of well-rounded programmers with design/product/business sense.

(of course the standard disclaimer that you can't run enterprise software startups on programmers alone should be put out there)

</comment><comment><AUTHOR> the best part of the post for me, was the interview with Posterous. Amazing how much they have done, with a four man team.</comment>


Marco Arment's Informal e-reader library comparison - <AUTHOR> http://www.marco.org/2011/10/28/ereader-library-comparison <comment><USER2> Looks like the Kindle and the Nook are the clear leaders in both availability and price.

I haven't been too impressed with magazine iPad apps, so I'm hoping the Kindle Fire reigns in their "creativity" a bit and keeps the prices more in line with the print equivalents.</comment>


How to recruit - <AUTHOR> http://randsinrepose.com/archives/how-to-recruit/ <comment><USER2> Starfighter had a tedious interview script for onboarding clients that was supposed to help us understand the "states and the definitions" of the stages of their hiring process. Only one of the clients I interviewed -- and I think I may have done most of them -- only one had good, clear answers. Some clients seemed to think we were after their secret sauce. Others obviously didn't understand the questions and would answer questions I hadn't asked. I'm convinced this is a solved problem where the methods got lost in the changing of the guards. We ignored history and are repeating mistakes.</comment>


Easy as A, B, Chromebook - <AUTHOR> https://vicki.substack.com/p/easy-as-a-b-chromebook <comment><USER2> This article cites some very questionable research and seems to have a lack of rigor, in general. It's all fine to dislike Google, but technology is going to be a part of your kids' lives whether you like it or not. It is to their detriment if you believe otherwise.

<comment><USER3> > technology is going to be a part of your kids' lives

So, we're supposed to throw our hands up in the air and just allow surveillance and tracking as companies wish? Or allow schools to train kids to use google or apple so they become customers later on?

Technology -can- improve learning, definitely. This does not mean it -does- improve learning in every case. Regular software (especially for businesses) is often crap, so why would educational software necessarily be any better or enhance learning?

> and seems to have a lack of rigor

This is like saying "2+2=4" seems to have a lack of rigor. Google doing stuff like this should be a surprise to no one. This behavior targeting teachers, who frequently lack time and money, is almost predatory.

This is such a dismissive, prototypical HN comment on a post where someone is trying to bring light to an issue.

</comment></comment><comment><USER4> The article relies to a large extent on the blogs of cranks, if you click through to any of the sources, none of which are primary, you get derangement such as:

[https://missourieducationwatchdog.com/why-pokemon-is-not- a-g...](https://missourieducationwatchdog.com/why-pokemon-is-not-a-go-and-how- is-google-involved/)

I appreciate that people have privacy concerns, but this meter-long blog post is the result of just imagining a bunch of stuff that an evil company might do and then searching for a bunch of second-hand innuendo to support your hallucinations, in the tradition of people who have been ranting about gold- fringed flags on the Internet for decades. It doesn't advance the discourse and it isn't redeemed just by focusing on the boogeyman of the moment.

</comment><comment><USER5> We had parent teacher interviews here in Australia this week and my boys 3rd grade teacher suggested we could work on his typing because by year 5 and 6 all his work will be done on a chrome book. My other boy is 1st grade and his teacher suggested some typing practice too, apparently the whole class was hopeless logging in to their Reading Eggs app.

</comment><comment><USER6> Author complains Chromebooks are dangerous because Google is evil. And the only way out is for you to be rich since private schools offer iPads instead and they are much safer.

I don't get it. How is Company A offering better than company G here? Seems biased to me.

<comment><USER7> > And the only way out is for you to be rich since private schools offer iPads > instead and they are much safer.

No, this is not what she says.</comment></comment>