A tale of two programmers - <AUTHOR> http://jacquesmattheij.com/A+tale+of+two+programmers <comment><USER2> I think Chris and Steve mirror the two phases of problem solving. The first phase, the exciting creative process where the problem is a challenge. The second phase, is when the creativity is done, and now its simply a matter of following through the implementation.

I experienced these phases a lot in school, especially in math classes. I was never a homework doer. I'd start, eagerly wanting to do it, but after the first couple of problems I couldn't motivate myself to do the rest. Because I just could not stand the repetition--the same formula over and over with different values. I'd usually do the first problem in a section and call it quits. Then rely on my test grades to pass the classes with a C average typically.

I was afraid that trait of mine would affect me professionally in my programming career, and it indeed started to. Some projects despite starting out at race pace would quickly come to a slow down as I labored to finish up tail end of the project.

However, luckily I ended up working with a colleague was a great compliment to me. He was able to and enjoyed doing the implementation tasks--the portion of coding that is done when you have the solution and its just a matter of putting the pieces together. However, his shortcoming was the creative process.

Together, we make an outstanding team.

Maybe we could officially categorize these two phases into new job positions. Problem Solvers and Solution Implementors.

<comment><USER3> This is completely true.

At a certain stage in your career as a "developer" you realise that your time is better spent sketching out solutions for others to follow than it is in seeing through all the work yourself.

Some people naturally gravitate towards seeing the whole solution (at the cost of being impatient about the details) and some people gravitate towards diligent completion of defined goals.

Projects tend to need both kinds of people.

<comment><USER4> Disagree, somewhat.

Craftsmanship requires both broad vision and attention to detail during execution. It's challenging, but there's no reason a someone can't do both, even if they prefer one over the other. There are lots of great "one man band" developers out there who clearly have to wear both hats. To me, this smells like folks wanting to shirk their responsibility for the part of the job they don't like.

<comment><USER5> I agree it's important to practise a bit of both for personal development. But why would you continually fight against the grain if you could be playing to your natural strengths and delivering more value?

<comment><USER4> Because every kind of work has components that you find pleasant and ones you don't like as much. It's not realistic to just say "I'll try to avoid the part I don't like", especially when there's usually some parts that _nobody_ likes.

<comment><USER6> Yes, that's very true. I believe the point here though is to play to your strengths for the good of the project. If someone else is better at the detail work then let them do it. The project as a whole will be better produced and that's your end goal. We're not here to build character by completing unwelcome tasks, we're here to build products.

</comment></comment></comment></comment></comment></comment><comment><USER7> I once worked with two great interns. By themselves, they were better than the average intern. But sit them down side-by-side at one terminal, and give them a tiny amount of design advice, and they morphed into a good senior programmer. They could follow a tricky refactoring through 20-year-old C++ code with only a vague roadmap, and turn a vile mess into nicely organized code.

It only goes to show just how good Microsoft's recruiting used to be—we lost the pair of them to Microsoft the next summer, just as we did the rest of our very best interns.

</comment><comment><USER8> I'm going to be amazingly honest and come out as a Steve -- I love building up a new project, or iterating over a prototype until it's actually something that people can use, and then afterwards suffer from a critical deficiency of steam/gumption/moxie.

It's like running flat-out into a brick wall, minus the reconstructive surgery. At moxie-zero time, I can do anything else, but need to take a break from the codebase.

Timeline seems to be at somewhere between thirty days and three months, and I'm really curious to hear from other Steves what your personal run-time is.

Now, this is hell on a team, and double hell on a company that needs to ship on a regular basis, but I've come up with a few coping techniques that really seem to help:

1\. Comment copiously the _how_ and _why_ things are written (people can usually figure out the _what_ on their own). I know that my code is going to get handed off, and I don't want to inspire my successor to commit heinous acts of violence.

2\. Build small, nearly independent projects that function as building-blocks for bigger systems; e.g., build service-oriented architectures. You often finish well before the steam runs out, and can then build something technically 'new' on top of what you just finished.

3\. Develop another valuable skill that allows you to contribute even when you're not writing code.

<comment><USER9> One reason I'm not an entrepreneur is that I haven't found a reliable, enjoyable way to get past the precipitous drop in enthusiasm and energy that occurs around 3 days to 1 week into a project, for me.

<comment><USER10> Don't underestimate the value of having a partner-in-crime with a different skill set than your own, e.g. Woz and Jobs, Allen and Gates.

There can be a tremendous synergy when you find someone you can work well with, who has a different perspective than your own, who you still like even while they are nagging you to finish feature X so that you can finally ship product Y so as to be paid dollars Z.

</comment></comment></comment><comment><USER10> At my (failed) software company I tried this. I had two really talented guys with complimentary skillsets. Moreover, like the article, one was a starter and the other a finisher. Like in the article they had been long time friends.

The thing I could _not_ get them to do, was that I couldn't get the starter to check in the code to the version control system so that the finisher could pick it up and run with it. Whenever I pushed the issue, he would always fly into a panic, and then seized by some mad other-worldy inspiration, delete all his code and start over _only much better this time_.

Due to all sorts of psychological quirks that I suspect are more common in programmers than the general population, the kind of synergy described in the article is rarer than you might think.

<comment><USER11> The trick is called a version control system.

</comment></comment><comment><USER12> I found my pair-programing-soulmate.

I'm currently in grad school, and he's doing something else (following some non-programming related time-limited dreams). But I do know that the day I start a company, he's the first one on the hiring list. But our relationship isn't like the Steve-Chris one in the link. I suppose every relationship is different that way --- ours is more equal. I think it's more a discipline thing. I've never found anybody else who was willing to document and unit test as well, and was willing to think before coding. I've often considered the possibility that I'm just really anally retentive and he's the only one willing to tolerate those flaws. Where do you draw the line?

It really is a productivity multiplier (for both of us): and the biggest scare I have is that time passes by and one of us gets locked into a career path that excludes the other. It would be sad. I have no idea how to fix this situation other than maintaining a somewhat decent rapport given the distance.

It's almost like working on a long distance relationship...

<comment><USER13> I'll tell you what NOT to do. Don't think of him as the first one on the hiring list!

I had my pair programming soulmate as early as age 15, back in the very early PC days (mid-to-late 70's). We ended up working together at a small software company, and having a blast.

We went to different schools. I graduated before he did. I got a great job at a fast-growing silicon valley computer company. The next year, I helped him get hired. He even reported to me for a while, at what is today one of the largest computer companies.

We always talked about starting our own business. Finally, after lengthy successful corporate careers, we got a 3rd partner who was willing to quit to launch a business, provided that "Chris and Steve" (me and my programming soulmate) would join him, the other guy first, me second.

Unfortunately, wives and families got involved, complicating things. The other guy never wanted to quit his safe and secure job at the large computer company, and so he balked at his earlier agreement to be the first of us to quit. So the 3rd partner turned to me in desperation, even though I was not his first choice, and it wasn't what we had previously signed as an agreement.

I quit the cushy corporate job (I had the better of the two jobs), and helped to launch the small business. We were making good money. Then the other guy FINALLY joined us. Unfortunately, we never made any profits while he was employed fulltime. There was too much stress and too many family issues. Finally, the soulmate quit, taking one of our largest customers with him, and tried to stiff the bank on the business loan, on the way out the door. He didn't honor many of the signed papers, including shareholder buyback agreements, loan documents, etc. Instead, through his lawyer, he said "I hope the bank sues us", because he had falsified his asset statement to the bank, claiming that he had no assets. He figured he was safe, and they'd come after me.

The loan holder ended up suing him, and winning by default. Funny thing, when you sign those loan documents, you sign away your rights to fight in court, and you agree that the loan holder can sue and win without you even knowing it. The loan holder aimed directly at him, not at me or the 3rd partner. He got sued and lost.

Naturally, this pissed him off, but it was his own bad legal advice that got him into the mess. He was unwilling to come to the table to negotiate a fair settlement, and wanted to hold onto company ownership, but was not willing to live up to company debt. Sorry, pal, it doesn't work that way.

So, I move on. The company never had a profitable year with him as a fulltime employee, and never had a loss with him out. The business is doing fairly well after 15 years. We don't speak to this day. Best friends from childhood and programming soulmates, but it's NOT a way to start a business.

So forget about the idea that he's the first person that you'll hire. Bad idea.

<comment><USER14> I've admittedly heard more stories like this than success stories. But even so, it seems to me that it just comes down to the fact that you often don't know people as well as you think they do, you don't predict how they would change as well as you think they would, and you don't know yourself as well as you think you do. If not for that information asymmetry, I'd say that there would be no reason to not go forward with something like that. After all, there are success stories on that front too.

<comment><USER13> Very true.

And in fact, all things considered, I believe we are both doing pretty well now, separately. So you could say that all's well that ends well.

My business with the 3rd partner has lasted far longer than the typical small business. And I think my programming soulmate is doing OK. The latest information I can find on him is that he left his next job (who was formerly a large customer of ours), and I can also see that he subsequently sued them for back pay. Those legal documents listed that he was owed over $100K from the company he left (and there are certain other indications that he was terminated abruptly).

If you end up in legal battles with your last two employers, that's not a good sign. This supports your theory that I didn't know him as well as I thought I did. On the other hand, I'm sure his side of the story is that I was a huge ass in the process, but I honestly tried to live up to every agreement that we made. Still, I carry guilt to this day.

I must have said to my lawyer and 3rd partner at least 100 times that I want what's fair to my family, but no more than what's fair. I could see we were going to be saddled with huge debt payments, and I sure as heck wasn't going to put that burden on my family, to the benefit of the guy who was stiffing us!

I know my soulmate kept saying over and over that he just wanted out. I understand that the pressures were tremendous from his wife. All he had to do was negotiate in good faith, and he would have saved himself about $100K in settlement and legal bills.

If I didn't value friendships, I'd say "all's well that ends well". But really, it caused a TON of stress and pain. My relationship with my current business partner is exceptional, even though he's not a programmer-genius. He's a sharp guy, but above all else, he's highly ethical.

Bottom line, be highly ethical, even if it costs you. And extreme talent without ethics is not worth partnering with.

<comment><USER14> 1000x ethics. They're very underrated. Most people will be like, "Hey, I'm ethical, nothing to worry about!" But most people will not have their ethics put to the test until they're in a really tough situation, so talk is cheap.

</comment></comment></comment></comment></comment><comment><USER15> I don't buy it. Maybe it worked for this specific pair, but normally pure Steves are worthless. The creative part of programming is where all the fun is, who would want to be the Chris? You can get yourself some Chris's if you're in a position of authority, but no talented ambitious programmer would want to be stuck in a Chris position, creating is where it's at!

The pure Steves of the world, are the unprofessional "rock star" programmers that quickly whip up an unmaintainable undocumented solution and are gone by the time their mess starts really hurting the project.

As professionals we have the obligation of being both Steve and Chris.

<comment><USER16> You forget, some people (not usually I) find a lot of pleasure in finding order in code. simplifying, refactoring, reducing, straightening out -- whatever you want to call it, it's not a chore for all, and can be very satisfying.

I've met plenty of programmers, however, who really dread the 'empty file' problem and struggle to know how to solve the meta problem -- but when tasked to fine tune perform a code path or refactor methods in a class, they are able to excel and do awesome work.

<comment><USER17> It could just be that I'm indiscriminate, but I love creating a new system out of nothing, and I love cleaning up gnarly old legacy code.

The only programming problems I find demoralizing, (and the ones I think the grandparent was equating with "Chris" work) are updates or bugfixes in gnarly old legacy code, without having time allocated to give it the refactoring it needs. It's the feeling that the code in question is never going to be important enough to fix properly, and your name is going to be in the logs adding those two lines in the middle of a 400 line function.

</comment></comment></comment><comment><USER18> This happens a lot in the art production world actually. You end up with character designers and finishers. I think it's possible to learn to be both (or at least enough of one to complement the other). But it's certainly most efficient to play up your strengths if you have the man-power to complement your short-comings.

<comment><USER19> Walt and Roy Disney come to mind.

</comment></comment><comment><USER20> Can I coin the term 'brogrammers' for this sort of code-soulmate, whole-far- greater-than-sum-of-parts partnership?

<comment><USER21> no

<comment><USER22> How about programhers?

</comment></comment></comment><comment><USER23> This reminds me of something I was pondering today. As we know, talent drain can be a big problem for technology companies. The programmers in the original team leave, after the IPO maybe, and eventually things just aint what they were. How to solve this?

Well, in general terms, give the programmers a long-term _investment_ in the company. But that happens already, right? Stay-on bonuses in the form of stock in the company. People still leave. What about a rather different type of investment...

How about, you get the person who's leaving to recruit their replacement, and then you give the leaver some sort of derivitive based on the replacement's performance (or the company's performance thereafter). They'll be motivated to find someone who can genuinely do the job, _and_ to coach them.

I got the idea thinking about soccer contracts. Sometimes clubs put in a 'sell-on' clause so the NEXT time the player moves, the original club gets a slice of the transfer fee. Just different ways of handling transfers and contracts basically. Imagine a transfer market for developers.

<comment><USER24> There's currently no standard/expectation to do this, so I doubt departing coders would spend the effort and would rather just move on.

I don't think the domains of coders and recruitment/hr would really overlap in that way, I can't imagine having to - as well as continue my current job, get ready for the move to the new company, knowledge transfer, etc - also try and recruit a replacement.

<comment><USER23> True enough, but conversely if such a system were already the norm, people might say 'I can't imagine just leaving a job and severing all ties, not caring who replaces me, keeping no stake in the future of the workplace/company I put so much heart&soul into.'

</comment></comment></comment><comment><USER25> Very cool. Curiously, in my projects past and present I can either recognise Chris or Steve in me, depending on the project. There are projects where it feels like I'm running into a wall to build even a prototype, but once it's built (either with help from others or by raw determination) it's clear sailing to tidy it up and extend it. Yet other functioning prototypes that were built in a frenzy have languished in this embryonic state for a while until I figured out how to structure them for production.

I _think_ it's related to whether the project lends itself to top-down or bottom-up design. At some point I seem to hit a barrier in the middle. This usually only happens on "hard" projects and even then I inevitably overcome it eventually, sometimes with pair programming, but it's damn annoying. Having Steve or Chris around would be damn handy.

</comment><comment><USER26> Is there a reason every recent post on this guy's blog has been posted on HN?

<comment><USER27> He's a guy who contributed greatly to the HN community. His blog posts have consistently been featured on HN, but even more so lately since he "retired" from HN and isn't doing nearly as much posting here.

Further, there are other people who's every bog post makes front page here. It's how we roll. Stick around for a couple months, and you'll see it. There are also cycles and waves of people, topics, etc.

<comment><USER28> Maybe he's featured more lately because his break from HN gives him time and energy to write better? Just saying...

<comment><USER29> Or maybe just write more. All his writings have always been excellent, in my opinion (and also his comments here on HN).

</comment></comment></comment></comment><comment><USER30> Now imagine taking those two out of the corporate environment and putting them into a start up, working as co-founders. This is what I dream about...

<comment><USER31> Sweet! Now they can handle sales and invoicing and supply and logistics and accounting and all the other things that neither of them knows anything about.

Contrary to popular opinion around here, there are good "corporate environments," where the term is actually used to mean "companies big enough to have several full-time non-founder employees." After all, some people just want to code.

<comment><USER30> My dream! Obviously not everyone can do it.

</comment></comment></comment><comment><USER28> I started as Steve (don't we all?) but I've recently been complimented on my patience. Wonder if it comes from years of maintaining my own code, but I've really grown to appreciate infrastructure work and making code aesthetically pleasing.

</comment><comment><USER32> I had this kind of relationship with a designer / photographer I worked on a side project with a couple of years back. He'd have no idea how to implement something if it required more than just hacking on already-existing code, but he had a great eye for detail and was excellent at not letting something sit unfinished. So I would talk out with him the various features we could add, then we'd agree on what to pursue, I'd get it up and running and he'd clean up parts, file bugs and be a good partner for getting the full widget out the door. At my day job I'm usually the one re-architecting something-or-other on the back end when I know I should be doing more mundane things more of the time.

<comment><USER33> Yes. I had a great working relationship with a UX designer. This is how it is supposed to work - a give and take, and complementing each other's strengths.

Alan Cooper would have you think that the hacker cannot overrule the designer, but in a respectful relationship with equals it can work well.

Alas I didn't realize how good I had it until it was over.

Ok, this is starting to sound like a tv drama.

</comment></comment><comment><USER34> Very cute.

By the way, I've seen several "programmers dating services" with a purpose of finding mutual mentors

<comment><USER35> Could you link to some? I was thinking about this just the other day, how I'd like to have someone to work through exercises like CodeKata with. Either mentoring or even just peer accountability would be really interesting. Thanks!

<comment><USER34> sorry, haven't looked there for a while

everymentor.com maybe?

</comment></comment></comment><comment><USER36> I really enjoyed this story. I worked with a brilliant developer for a couple years batting cleanup. I learned a lot and really enjoyed it though I was a lead developer/architect before and after the experience. We just got tons done...

</comment><comment><USER37> I think every developer has elements of Steve/Chris in them. Sometimes you want to punch out a project and other times you're concentrating on tidying up the code and making it production ready. Unit testing has you alternating really quickly between the two personas.

</comment><comment><USER38> Steve and Chris where friends.

They had the one thing friends have, shared history.

So in the semi words of Wolfram.

"You have to run the program before you can know how it will evolve"

That does not mean that it wouldn't be good with a dating service but it's not going to bring Steves and Chris together IMHO.

<comment><USER39> You're not bringing much creativity to hand before writing the idea off.*

Here's a two minute model. First - you steer people in the right direction via a loose matching system a bit like they use on okcupid.

        When you need some boilerplate do you:
        - Type it all out manually at blistering speed on
          your expensive keyboard?
        - Press a button and watch your IDE nail it instantly?
        - Knock up some quick elisp macros?
        - Walk away in disgust?

        You're a bit rusty on use of a unix API call. What's
        the first place you look?
        - I've got a directory on my dev server full of
          carefully nurtured patterns. If I've seen on
          it before, it'll be there.
        - There's a copy of Stevens resting on my monitor
        - My mates on irc will point me in the right direction.
        - This is what the web is for! Google and stack
          overflow.

Then you match people for programming 'dates' over coffee. When you're both there, you put a code into a website, and it gives you a sample problem to talk about together.

A week later maybe nothing has happened. Or maybe you've both gelled and knocked out an amazing project. Then you have an exit interview with the website about the person you were matched to.

* We should go for coffee!

<comment><USER38> Sure I am just thinking that to actually get to that level the post talks about requires far more than a couple of days.

</comment></comment></comment><comment><USER40> Good article. Relevant is Brook's Surgical Team: [http://www.dfpug.de/loseblattsammlung/online/workshop/design...](http://www.dfpug.de/loseblattsammlung/online/workshop/design_patterns/sonstiges.htm)

Here, Steve is the Surgeon. The one that works his butt off in a prolonged surgery session, assisted by others who have prepared the way, then he goes and rests before the next surgery.

It makes sense to clear the way for the Steves. With Steve and Chris there is one person that is clearing the way himself, but it makes even more sense to build in support structurally. I find it amazing when I hear about a company that has the engineers washing dishes, emptying their trash baskets, answering phones, and other such tasks to "save money" when all it does is kill time that the surgeon could have spent in the operating room.

What happens to the successful Steves nowadays when they can't find productive environments is they eventually leave, form their own company and hire people to complement their strengths.

</comment><comment><USER41> I think pair programming can be very effective even if both participants are somewhere in the middle of the spectrum. In fact, the Chris/Steve example sounds more like traditional division of labor than pair programming. If memory serves me in classic Pair Programming the two partners work concurrently at the same workstation, not sequentially.

</comment><comment><USER42> I find myself on both sides. I usually get a quick prototype started over a few days, but then I can't bother finishing up, dealing with all posible errors and polishing. But then, I love when I get to deal with a big, messy codebase I can move forward while cleaning it up and shaping it.

</comment><comment><USER43> Thanks for sharing Jacquez post. I am relatively new here and find his experience insightful. As such, im not aware of his full story but I hope his issues with the community are recognized and integrated so that his contributions are also recognized and retained.

</comment><comment><USER44> I remember indy500 back in the heydays of DOS.

</comment><comment><USER45> Related poll: Are you a Steve or a Chris?

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


Apple Seeks to Create Pandora Rival - <AUTHOR> http://online.wsj.com/article/SB10000872396390443589304577636110080423398.html

<comment><USER2> _Pandora's iPhone app is a major outlet for iAd._

I wonder why the reporters chose to include that, especially as a lone sentence at the end of the article. Surely they understand that Apple stands to gain far more in revenue from a Pandora-like service than they would lose from showing fewer iAd impressions due to a decline in Pandor use. Right?

</comment><comment><AUTHOR> paywall workaround, first link:

[https://www.google.com/search?q=Apple+Seeks+to+Create+Pandor...](https://www.google.com/search?q=Apple+Seeks+to+Create+Pandora+Rival)

</comment><comment><USER3> Hipsters don't care.</comment>


MindMup is now open source - <AUTHOR> http://blog.mindmup.com/2013/01/mindmup-is-now-opensource.html <comment><USER2> Can anyone explain to me why most mind map apps are of tree structures, but not graph structure?

In my personal process of thinking most ideas pop up as nodes then nodes are interconnected as a graph.

I tried to use one of these tree mindmap apps, some ideas morphs into another leaf on another subtree but I can not connect them visually, this irritates me a lot.

<comment><USER3> An acyclic graph (or a tree structure) enables certain automatic layout algorithms. These algorithms are predictable by the user and are less distracting -- the key goal of any mindmap software is to not distract.

There's probably a semantic element of a hierarchy of ideas, too, but I am only equipped to comment on the math and not the psychology. :)

<comment><USER2> Yes a directed acyclic graph would help a lot.

But there isn't any mind map apps support that. (Not that I know of)

I now use yEd and OmniGraffle from time to time

<comment><USER3> I use OmniGraffle when a mac is handy; thanks for the reference to yEd, I hadn't seen that one before.

</comment></comment></comment></comment><comment><USER4> That's pretty cool. After playing around with this some, I'm glad that I won't just get to use it, but that I'll also get the chance to learn something from the code. I don't believe I've ever seen such nicely routed auto-updating paths before in Javascript.

<comment><USER5> Thanks. We still need to clean up the code a bit, and should be publishing more docs on how the thing is structured this week, so keep your eye on our github repo.

<comment><USER6> Great work! A suggestion: to make the text searchable using Ctrl-f, please render the maps using SVG instead of canvas. For a big mind map this is indispensable.

<comment><USER5> is search the only thing that would be better with SVG?

we opted for canvas as it gives us better visualisation capabilities in the future. we could easily provide searching with canvas by overriding ctrl+f.

<comment><USER6> I haven't tested this but I think search engines should automatically be able to index SVGs, thus making the public maps Googlable.

In general I like SVG because it doesn't try to hide the data it's displaying, unlike flash/canvas. Although I now remember seeing a hybrid div/canvas implementation which buys you best of both worlds albeit at some added complexity.

</comment></comment></comment></comment></comment><comment><USER7> Hats off for open-sourcing this, especially under the MIT license, could make a great add-on for an Saas app!

</comment><comment><USER8> Thank you for this. I see this as a perfect companion to Freemind. Sometimes I want to jot stuff down, and firing up freemind is too cumbersome, or I'm on my laptop and haven't sync'd recently. I've been using Evernote for this purpose, and it's just not quite as graceful as a mindmap.

For getting ideas out quickly, and sharing mindmaps without installing software or paying for an one of the (many) web-based services, this looks pretty ideal.

Also, +1 for folding.

<comment><USER5> Yes, that's why we built it as well. The basic use case is knocking up maps quickly during a meeting. Please vote for folding on the site if it's important, we aim to invest as much as we can on working on the top voted feature group.

</comment></comment><comment><USER9> I don't see this as being useful unless it share's FreeMind's 'strong emphasis on folding'. Otherwise it's basically like a text editor that doesn't let you create documents longer than one page.

I also probably wouldn't consider using it until at a minimum the data is exportable and the data format is future proof.

<comment><USER5> export to freemind is done, will go live tomorrow. folding is also in the plan. you can make it go live earlier by \- voting directly on <http://www.mindmup.com/#vote> \- or forking on github and submitting a patch :)

</comment></comment><comment><USER3> Great work on keeping the interface concise, consistent and keyboard friendly. Overcomplex UI has kept me from using mindmap tools in the past, since the tool becomes a distraction.

A "yank" and "place" for nodes would be a nice feature, as I still have to reach for the mouse when rearranging. "Yank" should mark the currently "yanked" node with an different style, and "Place" should take the "yanked" node and set its parent to the currently selected node.

</comment><comment><USER10> This has many features similar to MindNode, but I miss the ability to drag and drop a subtree. Out of all the online mind mapping apps I've seen this one is the best.

<comment><AUTHOR> You should be able to do this (you can't however drop a subtree to a node that's in the subtree itself)

</comment></comment><comment><USER11> Is there a plan to make it work offline _without_ needing S3? i.e maps are saved to the local hard disk? Great work though - looks awesome.

<comment><USER5> we could probably make it work offline as a chrome app, not sure if offline work with all browsers is a viable option. would chrome app be good enough for you?

<comment><USER12> Can't answer for OP, but for this new user, a Chrome app would be dandy.

</comment></comment></comment><comment><USER13> Wow! Simple but effective. I can't test multi-user right now, but assuming that works I'd love to see this in Google Apps.

</comment><comment><USER14> We need to think beyond mind maps. Not everyone is able to understand it.</comment>


Disney World to Require Mandatory Fingerprint Scans - <AUTHOR> https://disneyworld.disney.go.com/faq/my-disney-experience/my-magic-plus-privacy/ <comment><USER2> I think this title is a panicky incorrect reaction to someone noticing the word 'fingerprint' for the first time in a Disney document, and not knowing that (a) Disney has been using fingerprint scanners with their tickets for maybe a decade (b) you can still opt to present ID instead of using them. You can even see it in the text behind the posted link, if that's your entire exposure to Disney information:

> Are all guests required to use Ticket Tag?

> If you don't want to use Ticket Tag, you can simply carry and show a photo > ID that matches the name identified with your ticket.</comment>


Ask HN: Is touchscreen right for SpaceX Dragon? - <AUTHOR> Kudos to the SpaceX and NASA teams on today's incredible launch!<p>I've seen a few passionate comments on HN about the touchscreen interface, and I'm curious what you all think. <comment><AUTHOR> I'll start off the discussion with some thoughts from the astronauts themselves: [https://techcrunch.com/2020/05/04/this-is-certainly- differen...](https://techcrunch.com/2020/05/04/this-is-certainly-different- astronauts-on-controlling-the-dragon-spacecraft-via-touchscreen/)

You can try out the docking maneuvers in this official minigame: [https://iss- sim.spacex.com/](https://iss-sim.spacex.com/)</comment>


Why are there not more freelance testers out there? - <AUTHOR> http://www.testninjas.com/2013/02/why-are-there-not-more-freelance-testers-out-there/ <comment><USER2> From my personal experience, I wouldn't use a freelance tester because they won't understand the system well enough to provide value for money.

The most valuable testing is that which exposes your lack of understanding of what the system _should_ do. These also usually require the most extensive rewrites, so you definitely want them as early as possible. Unfortunately, they also require the most extensive understanding of the system as well as an ability to detail their thinking at a level that can be understood by the development team(s).

That's why I don't see the value of freelance testers, and I'd much rather have somebody employed on a more permanent basis, either part-time or full- time.

<comment><USER3> That's the same argument for not hiring freelance developers or project managers. And IMHO it leads to lazy coupling of software systems and services, a system that has to be built and tested by different or changing groups has to have much much better scope and decoupling.

In short, if you have small (micro) services, they are easy to build and easier to test.

<comment><USER2> I disagree. With good testing discipline, you can bring in freelance developers. Developers have the luck of not needing 100% understanding, as this is grown through the writing of code.

Testing, on the other hand, is a simulation of how your system responds to user input, and how your users respond to the system's outputs.

If your tester can't simulate a user, then you can make your services as micro as you like - it'll make no difference when you get the phone call saying the system doesn't work as expected.

<comment><USER4> If new people picking up the app have a problem simulating users, then how do you assume your users will go about picking up the up to actually use it?

<comment><USER2> Read my comment below. It's not about users understanding the program per se, it's about testers having the domain knowledge to perform meaningful tests.

Without that domain knowledge, the testers may find implementation bugs, but they won't expose the issues caused by the developer's lack of understanding. The latter is almost always more valuable to find and more difficult to fix.

<comment><USER4> Oh, ok. I guess writing automatic tests is one way to nudge developers into understanding the domain better. And getting a person on the team, even freelance, whose job it is to push for tests, might help.

Going off another tangent, getting not a generic tester, but a domain expert who's also a tester, might help.

</comment></comment></comment></comment></comment></comment><comment><USER5> I think there's much more to it than what the post says. It seems the author is looking at the freelance testing industry (is 'industry' the right word here?) through rose colored glasses.

Freelance web designers and SEOs are everywhere because you don't need any experience and often times don't even require any actual skill to do the job. All you need to know is how to repeat the whole "Social media marketing your business reach customers user experience blah blah nonsense" spiel and people say "Yeah! I want to miraculously reach the top of Google for everything and make a billion online like Zuck" and hire some dude for $300 who read "HTML and CSS for Dummies" last week at a Barnes and Noble. I know this because I used to be that asshole (not the business owner, the freelancer).

Other kinds of web/tech freelancing have very simple-to-understand values. In the minds of a lot of people who hire freelancers, Web design = Branding or Marketing = Profits. Simple. Not exactly correct, but that's the line being fed to everyone these days. Same with SEO. SEO = Rankings = $1B profit.

Testing is different though. I have to say however that if a company even needs to test software to begin with then they're probably playing at a higher level than the companies hiring freelance designer/devs and SEOs. Still, the value of a tester is still nebulous. You don't hear freelance testers out there drilling "Testing will make your customers love to use your product, increase efficiency on yours and the customer's end, and save you a ton of money" or something equally easy to market. To most businesses testing means "we played with the app on the staging server and it worked fine for us. time to push it live". It just comes off as an extra expense that isn't worth the investment.

And why is that? Because freelance testers, unlike other freelancers, have failed to create a consistent, marketable appeal to business owners (i.e. tell them why it's going to make them tons of cash) the way other freelancers have. And it's probably because those who do testing are a little more thoughtful and less about pizazz and flash than designer/developers and the nature of testing itself is kind of boring unless you're really into it yourself. Design is fun because everyone wants to be an artist. SEO is fun because people are given the idea they're in control of which keywords they'll pop up for and such. Testing? Totally boring. Some guy's gonna come in here and find bugs in our software? We can do that ourselves or just make sure to mark all the complaint emails as TODOs in Gmail.

<comment><USER6> you're very rarely going to 'make' someone money - you're going to save them money. A well-tested app doesn't necessarily out-sell the competition if the competition gets a better distribution deal through 'good old boys' networking. Demonstrably _bad_ software often becomes dominant in specific niches, and people put up with the bugs, because "it's what everyone uses".

Your well-tested software still has a huge marketing battle and possibly integration issues to replace incumbents, regardless of how many bugs they have. You end up needing to create a negative campaign about the headaches and hassles of using XYZ, and that you don't have those issues (because it's well- tested, but you generally can't promote that to most people, as it's 'too technical').

<comment><USER7> At first, I thought you were preaching to the converted, here. Whether or not everyone here uses dedicated testers, they probably all appreciate the _value_ of a well tested system. In theory, that is in fact the case, but reflecting on my experience this is not usually the case in practice. Testing is dropped by the wayside when the rubber meets the road - particularly in any early to mid stage ventures.

IMHO there is a strong cultural component at play. Testers are, quite frankly, second class citizens in the land of software. This is due in part to the ambiguity of the term itself, as it can mean everything from a button-clicker to an engineer (with perception often defaulting to the former).

As a result, testing becomes unsexy. Few developers with options choose to do it full time, and it becomes an afterthought. Even dev-centric approaches like TDD get brushed off as "crutches" for "junior" engineers. This all helps propagate a fairly downward-tending cycle of testers and testing lacking voice and status within the organization.

</comment></comment></comment><comment><USER8> There is one niche area of testing where it is more common... security testing.

Testing in this space is often more a function of the technology stack than the industry of the client. This allows security test companies to build up great expertise without knowing anything about the client's specific app or industry.

<comment><USER9> I wouldn't even consider penetration/security testing to be in the same field. My experience in the traditional QA areas is that in order of likelihood to freelance are performance testers, automation/development testers, and finally manual testers.

</comment></comment><comment><USER9> I don't know if uTest is still around, but they attempted to fill a similar niche. If you are in a testing lead position, then you know that an enormous amount of contracting is arranged via recruiters to fill this need also.

I think the reasons it's really hard for freelance testing communities to get traction are

1\. real or perceived lack of return - you have a 2-3 month engagement and realistically the first month is training and acclimatization (hence wasted). better off hiring a FT resource.

2\. ample market supply - there are plenty of people looking for FT roles. I'm a testing manager in a secondary technology city in the US, and it's no trouble to get resumes.

3\. limited scope where they're useful - I would consider freelancing or hiring a freelancer that specialized in a particular tool (Selenium, Robot, Cucumber, QTP, etc) if building out a testing framework or conducting major refactoring but otherwise consider testing an iterative process.

4\. This is a bit of a bootstrapping problem, but it would need a (much) better version of Angie's List. Because of the reasons I listed before, this would be a high risk decision and most people would be very reluctant to go with an unknown quantity. There would have to be a substantial number of verified ratings and reviews. [EDIT: this is also why so much contract testing is arranged via recruiters - the recruiter wants repeat business. A bad referral can poison a relationship, so you have a strong element of trust]

<comment><USER10> Dont want to do UTest marketing and I have reservations about them but they are still around and Forbes made them their 8th most promising company in USA so there is some need they are filling - [http://blog.utest.com/forbes-names- utest-8th-most-promising-...](http://blog.utest.com/forbes-names-utest-8th- most-promising-company-in-america/2013/02/)

You make some good points which I'd agree with

<comment><USER9> I signed up with uTest a while ago and have never done anything else with them. I'm generally underwhelmed. Seems much more geared for crowdsourcing a testing effort, which - with all due respect to innovative business models - seems less than optimal for doing anything other than low level manual testing.

If I ever went independent (or engaged a freelancer), I'd expect an LLC/s-corp with a professional online presence, reference sheets, sample work, and slighly better than LegalZoom-grade contract templates. Consider it my smoke test of potential partners :)

</comment></comment></comment><comment><USER11> We've needed a crowd-sourced human testing platform for software products for some time.

It would need granularity: as a developer I should be able to purchase N minutes of time from N people, potentially in such and such a demographic.

It would need an API: I should be able to build human testing into my deployment infrastructure.

It would need accountability: at minimum I want webcam footage of the tester using my product.

There are complications, but I see no reason why almost all of these couldn't be overcome by sufficiently smart automation.

Someone go build this!

<comment><USER12> We actually do this at MobileWorks (mobileworks.com). There's an API that lets you get N minutes from N people filtered by demographic. Some folks use our Premier product for on-demand testing set up by email -- they send test requests to email@example.com.

If you're looking for this more as a formal end-to-end service, you can take a look at our buddies at Rainforest (<https://www.rainforestqa.com/>). You can also look at services like uTest, though they're real pricey.

<comment><USER11> Thanks for that - Rainforest look very interesting (what I can see of it). "QA as a service" sums it up nicely.

</comment></comment></comment><comment><USER13> There's less demand for freelance testers because having a one is a nice to have rather than a must have.

Clients rarely understand the value of testers, they appear to simply be an optional additional cost. Freelance developers have little incentive to recommend them since it inevitably leads a smaller slice of client budget for them.

When an organisation gets to the stage at which it understands the value of, and develops a need for, a tester they probably have enough work and cash to occupy one full-time.

<comment><USER14> How about 'Disaster Management/Save Face' freelancers?

To cater to the companies that thought testing was an additional expense and didn't go for it.

<comment><USER13> They could probably charge more with a title like that too. :)

</comment></comment></comment><comment><USER15> I'd say the psychology and politics of testing are different from other things, really quite strange.

It most white collar work, there is strong pressure to tell people what they want to hear. Well, it makes me very happy to get a clean bill of health from a tester, but if I was expecting that to happen, I wouldn't need a tester.

Testing takes a kind of special discipline that the average office worker doesn't have. Whenever I've been an organization that has tried to press ordinary people into a tester role, it's always been highly ineffective.

That said, there isn't one formula to make a good tester. Some testers I know are very systematic, they belong to quality control associations, others are expert in project management, requirements, etc. On the other hand, one of the best testers I worked with had bombed out of every other job we gave him because he was always able to screw up anything we gave him. As a tester, he was great, because if he couldn't break it, nobody else could.

All of these things, I think, point to a need to a longer-term relationship with a tester than you're going to get in a freelance situation.

</comment><comment><USER16> This is advertising for a service that CHARGES people to sign up and test websites. The blog post serves no purpose other than to funnel traffic to their domain.

</comment><comment><USER17> Testers are mostly a labor commodity. Seems like the body shop contracting agencies and big offshore firms (Wipro, TCS, etc.) have this market cornered. Any potential client who really values having a dedicated testing team will build up the domain knowledge in house rather than re-educate freelancers over and over, or require the body shop to build that knowledge base and do that training for them when bringing on a new tester.

And how often do you really need just one tester? What are you going to do, bring in 10 different freelancers?

Freelancers need to wear more hats than just "tester".

</comment><comment><USER18> TL;DR - we (testers) need to tackle these problems head on ourselves rather than wait for people to "get it".

It seems to me, a lot of folks here wouldn't be adverse to using a freelance tester in general, but are extremely adverse to using bad freelance testing (and have the scars to prove it!).

I'm a contract tester and recently decided to make the transition to freelance. From my experience (and confirmed by the comments here) the main barrier is one of perception - how can testers / add value to my organisation? And how do I know this tester is as good as they claim?

There are numerous ways someone like me can help an organisation:

Help organisations find the right permanent employees; Mentor said permanent employees by sharing knowledge; provide testing experience to a known or unknown business domain; supplement the clients test lab with your own equipment; evangelise testing throughout the company, demonstrate what good testing can do, what it looks like

I had to stop myself there! And pretty much all of those examples are from recent (within 12 months) history. Luckily for me I've been able build a decent enough reputation that there is potential for repeat business.

Two more key problems: first, the kind of testers that people here need may live in a bubble where everyone knows the value of testing and as such may not realise the rest of us exist - my colleagues and I need to start dispensing some red pills :). Second, the testers that are trying to be better appear to be outnumbered by the ones that aren't (snake oil merchants, testing zombies, call them what you will) so again we need to tackle that head on too.

Nice discussion. Thanks for the illuminating comments folks.

</comment><comment><USER19> > I think freelance software testers should be easy to find. But they are not. > I think there should be loads of good freelance testers out there. But there > are not. I think it should be easier to find freelance testers. But it is > not.

There's a reason -- software developers have figured out that they're better off just releasing the product and hearing from their customers. It's called "beta testing" -- no special panel of testers, just users eager to try a new product, willing to put up with imperfect operation for the privilege.

And not all beta tests are identified as beta tests -- many of them appear to be a product release, but the real purpose is to wring out the bugs. The classic example is Fedora Linux, which is one very long beta test (and one that most of its users understand).

As to Web sites and online games, developers use A/B testing to accomplish the same ends, without the need to locate people whose special role is to test.

</comment><comment><USER20> I've gotten good results through uTest (for bugs) and extremely good feedback from usertesting.com. Neither is cheap though.

</comment><comment><USER21> Testing is, in the large, not respected.

When you have a really good, competent, creative tester, the contribution can be invaluable.

But... many organizations tend to rank testers somewhere around the janitorial staff.

(By the way, get incompetent janitorial service, and watch what happens to your work environment... And, personally, I've found many of them to be plenty competent, caring, and helpful -- better people than many of the suits.)

Then, there is the other side of testing... It does exist. People who couldn't hack (aka "handle") any more, and who really are more or less button pushers. They are the ones who provide "QA signoff" as opposed to real troubleshooting.

It can be difficult to argue your value, when much of your field is a morass on two axes: Lack of respect, and lack of competence.

</comment><comment><USER22> What do you mean when you say tester? If you mean "someone to run manual test cases," it is probably because those sorts of jobs are pure tedium... They can be outsourced to websites too.

If you mean a software engineer that designs software to validate that other complex software systems function (often dealing w nontrivial engineering efforts and undecidable problems) , they probably don't freelance because we denigrate them by calling them "testers" and they'll get hired fulltime by companies that understand the value of their work.

</comment><comment><USER23> I would love to be a freelance tester. I have no idea how I would start though.

I have a lot of experience testing desktop apps for my day job, but I'd love to start something on the side.

Anyone here have ideas on where to start?

<comment><AUTHOR> I'm bias, but helping people get their freelance career off the ground is what we are trying/doing at Test Ninjas.

</comment></comment><comment><USER24> The time it takes to walk someone through all the use cases that need to be tested is not trivial. The reason for having a dedicated tester is so that knowledge of the system accumulates. I can't imagine how having to re- introduce your system to a new tester for every upcoming deployment could possibly be a realistic approach. In order for this to make sense I'd have to build a relationship with a freelance tester so that the same accumulation of knowledge could take place.

<comment><USER11> In some circumstances "accumulation of knowledge" in a tester is exactly what you're trying to avoid. Fresh eyes can be very valuable. Amongst other reasons, this is why we don't give developers sole responsibility for testing their own work.

<comment><USER25> That's an interesting point but I think it highlights that there are different types of testing - even above the obvious UX vs QA distinction.

I find that really good QA testing often needs someone quite technical and even someone who has some insight into the way the code works. You have to actively think about ways the system could break. It's probably closer to the mentality of a penetration test than it is to usability testing.

</comment></comment></comment><comment><USER26> This is a great idea! I was actually just recently looking for something like this, to help with testing on an app.

I think my only concern would be security with those who are testing your app, because you would most likely need them to test use cases by giving them special accounts and such. Is there some sort of checks and balances for people who are testers on the site? Can you make the testers sign a NDA before they test (if the project happen to still be in BETA or something)?

<comment><AUTHOR> Thanks for the positive feedback :) The testers work independently and often sign NDAs at the moment I am working closely with the testers and clients as a match making kind of service.

</comment></comment><comment><USER27> I actually run a small QA-as-a-service company (for 3+ years) and I should say that we strive to distance ourselves from "freelance" word as much as possible.

As most other cheap labors in a remote freelance mode — it is discredited. I think it would be just hard to build a personal brand strong enough to compete with tons of people, who can look like a diamond on a pre-sale phase and then just disappear.

<comment><USER28> How has that worked out for you? Do you find it difficult to find clients? Much client turnover? Are you doing mostly manual or automated testing?

<comment><USER27> Finding customers is always a tough task. We started from μ-ISVs with simple Windows applications to probe the market and see whether people are ready to buy tests and QA as a service and then slowly expanded the offered services list.

We have great customer retention (excluding some specific one-time projects, like a penetration test), I hope due to our dedication :)

I would say manual tests are most popular, and then load tests, then automation. Often customers start from a tiny manual test and then use our services more and more, in other QA areas, being happy to receive all of those from one window in a unified manner.

</comment></comment></comment><comment><USER29> One of the reason is that people are scared to freelance for a month full time, and the next month not getting any job the next month, In SA we dont have lots of companies that are looking for freelancer.I believe its always good for a company to get new tester that can produce quality assurance into their systems.

</comment><comment><USER30> Testing tends to be an intermittent need. Most apps that are to be tested tend to be off of the public Internet. I think that most orgs are unwilling to take the time to provide testers access they need (VPN access, etc) given the ephemeral nature of the relationship.

</comment><comment><USER31> I recently found out about a service that pretty much offers this. It's called Pay4Bugs: <https://www.pay4bugs.com/>. Has anyone tried it? Is it any good?

<comment><AUTHOR> There's a bunch of those types of services which we are deliberately avoiding the approach of. It's really hard to know the quality of the testers behind it all, in addition to that they can raise bugs and give you an idea of what has been tested, but you doesn't give you an understanding of what hasn't been tested.

<comment><USER32> Wouldn't it be awfully easy for an outsourced tester to say "yep, tested foo, no bugs found" without having tested it thoroughly? You can't outsource auditing that outsourced work was done properly!

<comment><USER33> Yup - just exactly as easy as it is for a developer to say "no bugs in my code" and leave the job well before a critical ID used in a database reaches the limit of the "INT" definition that was applied instead of "LONGINT". In both situations you want to build a level of trust (and contracts/NDAs/liability insurances) between freelancer and customer ;)

</comment></comment></comment></comment><comment><USER34> I originally though you wanted freelancers for creating unit/integration/behavioral tests, which presents the problem that not all codebases are testable in current state.

</comment><comment><USER35> I would absolutely hire a freelance tester.

</comment><comment><USER36> I wouldn't hire a freelance tester, because it's so important, we _all_ do testing in our business. I expect every freelance developer I hire to test everything thoroughly (and I don't just mean unit tests). They're either full- service, or I don't hire them.

I've never heard a single coworker or fellow entrepreneur say, "Gee, I really need to hire a freelance 'tester'." (Or other words that would be more likely, such as 'Q&A specialist'.) That's something people either don't do at all / don't care about, or do in-house because they know it's so important.

So, aside from arguments about skills, I don't think there's any demand.</comment>


We Went to the Moon. Why Can't We Solve Climate Change? - <AUTHOR> https://www.nytimes.com/2019/07/19/climate/moon-shot-climate-change.html <comment><USER2> Going to the moon just required a large number of people to chip in with a few dollars of tax money. Solving climate change will likely require most people changing how they live.

</comment><comment><USER3> Competition made us to go to the Moon. Competition prevent us to cooperate for preventing climate change.

</comment><comment><USER4> Because some major corporations would have to change their business model or even disappear entirely.

</comment><comment><USER5> We went to the moon. Why can't we have competent new organizations?</comment>


ArangoDB 3.2 GA  RocksDB, Pregel, Fault-Tolerant Foxx and Satellite Collections - <AUTHOR> https://www.arangodb.com/2017/07/arangodb-3-2-rocksdb-pregel-fault-tolerant-foxx-satellite-collections/ <comment><USER2> Very good news! :) RocksDB engine is a very big step of ArangoDB growth! I use ArangoDB in some projects and it's absolutely fantastic: very powerful AQL queries, very-very fast, good optimizations.

I checked alpha & beta versions of 3.2 and the improvements are really amazing :)

</comment><comment><USER3> The graph layers look wonderful, I'm happy to see they have progressed so far!

The combination of Arango's new capabilities with Graphistry should be interesting. So, if Arango graph users are interested in trying GPU visual graph analytics for looking at more data at a time, our team is happy to share access to [http://github.com/graphistry/pygraphistry](http://github.com/graphistry/pygraphistry) . Likewise, investigation teams digging daily into event & entity data (security, fraud, patient journey, ...), we are piloting our visual playbook automation & interactive investigation layer with medium & large enterprises, and we'd love to chat about that as well. Either way, ping info@graphistry -- this sounds like a great match.

<comment><USER4> Jan from ArangoDB here

Sounds cool, let's talk :) feel free to ping me jan.stuecke at ...

</comment></comment><comment><USER5> Congratulations to the ArangoDB team ! With ArangoDB you can create powerful applications using a multi models database and an API builder called Foxx. I'm building all my apps now within ArangoDB/Foxx no more needs of server apps.

<comment><USER6> Thank you!

One thing the article actually forgets to mention is that 3.2.0 also is the official release for the new HTTP API for managing Foxx services: [https://docs.arangodb.com/3.2/HTTP/Foxx/Management.html](https://docs.arangodb.com/3.2/HTTP/Foxx/Management.html)

We're hoping to backport most of it to 3.1 and already support it in the latest release of the JavaScript driver. This should make automated deployments considerably easier. You can literally install, configure and distribute a service with a single line of `curl` now.

Full disclosure: I'm one of the core developers working on ArangoDB Foxx.

<comment><USER7> Semi-related to Foxx, is it now possible to add/remove coordinators dynamically to cluster? In other words, can we now scale out Foxx services easily if load increases?

<comment><USER6> It's trivial to add additional coordinators and removing coordinators no longer has a chance of affecting Foxx because the authority for the deployed services now lies with the database servers rather than the coordinators -- the coordinators are now fully disposable.

Be sure to check out this short demo of the Cluster Starter:

[https://www.arangodb.com/fault-tolerant- foxx/](https://www.arangodb.com/fault-tolerant-foxx/)

</comment></comment></comment></comment><comment><USER8> Great news, I've been using ArangoDB for over a year and this upgrade is great, ArangoDB is shaping up to be a 'Giant Killer'.

The new automated deployment options for Foxx as well as the better memory management with RocksDB are highlights for me.

<comment><USER9> Thanks! I hope we will get some good feedback for all our new features

</comment></comment><comment><USER10> Congrats, ArangoDB team!

Reading through the release notes and related blog posts lead to several wow's and nods.

Especially the satellite collection feature that allows local joins in cluster mode sounds promising. Can't wait to learn from successful real world implementations.

Hope to find some time to get used to all those new features announced today.

</comment><comment><USER11> One point that is still missing here and I have been very excited about is trying out Pregel! Distributed graph processing is something I have really always wanted. Thanks a lot to the team for adding this.

</comment><comment><USER12> Awesome news! Go Arango team

</comment><comment><USER7> I wonder if they improved Cluster setup with this release. If you tried without DC/OS, it was painful experience. Arangodb Starter was definitely a step in right direction.

<comment><USER13> Hi, it's Frank from ArangoDB. We have now included the starter in the package. It is now possible to start a cluster with a single command line. For example, to start a test cluster on a single machine, "arangodb --starter.local" is all you need to type. Starting on 3 machines requires a "arangodb" on the first machine and "arangodb --dataDir=./dbX --join serverX1" on the others.

<comment><USER7> Thanks Frank. I wonder if Web Fronted is in order akin to Counchbase setup process. Ultimately CLI tools are of course the king of the Ops world when maintaining clusters. Simple Web app can go long way though for attracting new users. First impression matters. My 2c.

</comment></comment></comment><comment><USER14> Congrats on shipping! I wonder if RocksDB could be the right choice for small to midscale IoT scenarios? Anyone has an opinion on that?

<comment><USER15> I think yes. The RocksDB engine is much better than the old engine in situations in which the stored data is larger than the available RAM. It all depends on the concrete queries issued but in general I would say: "Definitely yes!"

</comment></comment><comment><USER16> I use ArangoDB for all my projects, big, medium, and small. Happy to see great new stuff.

</comment><comment><USER17> Would like to hear who used it in production and what type of scale that DB is handling.

<comment><USER18> Luca from ArangoDB here... feel free to reach out to me at first at arangodb.com... we've lot of production users and customers

<comment><USER19> Why not just talk here where there are a lot of people share the same interests than redirect them to your website?

<comment><USER18> Good point... the public references are here: [https://www.arangodb.com/why- arangodb/case-studies/](https://www.arangodb.com/why-arangodb/case-studies/) just wanted to offer a more personal approach... also, some of the people shared their reviews on [https://www.g2crowd.com/products/arangodb/reviews](https://www.g2crowd.com/products/arangodb/reviews)

</comment></comment></comment></comment><comment><USER20> Amazing, this release has many features that I was waiting for, I already switch my project from MongoDB to ArangoDB, but I still missing realtime features, or a least a tailable cursor like in MongoDB... But even so, it's worth it!

<comment> Simran-B For single node setups you could try arangochair: [https://www.arangodb.com/2017/03/arangochair-tool- listening-...](https://www.arangodb.com/2017/03/arangochair-tool-listening- changes-arangodb/)</comment></comment>


Ask HN: How to cure a burnout? - <AUTHOR>

I've been working non-stop for the last couple of months, trying to finish what's on my plate at the startup where I work. However, last few weeks, I've developed a negative affinity for work, especially when I have a lot of failures. Since my job isn't really straight-forward, I really don't know when a new failure will pop-up. Everytime this happens, my dead-lines get tossed around and I'm left with endless guilt. This has been a recurring pattern throughout my career.
Sometimes I feel I'm really bad at my job, but I know somewhere inside this ain't true. I regularly get great job offers from good places. Most recently, I completed the Greplin Challenge because I was so sick of getting delayed again and I needed a change. But I'm not applying there for a job. I really don't know where I stand, or what I like to do anymore. I started http://grep42.com last year with the thought of applying for YC but never did.
Now I'm left wondering how can I get the same passion and zeal for work I had when I started working at my current workplace. When I look back, the best memories of working I have are with a good colleague/friend in a pair. But my current job is work-from-home but I've the option of renting out a small space to use as a private office. I'd really like to get back on my dead-lines and complete my promised deliverable here before I think of anything else. I strongly believe that the worst thing a person can do, is leave their work-commitment unfulfilled. So leaving the job as things are is not an option. I would really like to find out what's my problem and deal with it. Dear hackers, please advise. <comment><USER2> My first suggestion would be to stop feeling guilty when you make a mistake. Yes, you'd like to make as few as possible, but you're trying as hard as you can under the circumstances, and you're human, and no human is perfect. We all make mistakes sometimes, even the best of us, and schedules often slip as a result. So, relax a little. This doesn't mean you stop caring; it doesn't mean you stop trying to learn from your mistakes; it just means you don't feel _guilty_ about them.

Secondly, try to get as much rest and exercise as you can. This is very important.

I do agree that you should complete your promised deliverable; it's the right thing to do. But after it's done, do see if you can get two or three weeks off, at the very least. You know you're starting to burn out, and it's not in your employer's interest to burn you out completely. (Point that out to them if necessary.) If your finances allow for it, you could perhaps take an unpaid leave of absence.

</comment><comment><USER3> I walked away for 2 years about 10 years ago. I was totally burnt out. If I had taken time before that when I first started to get burnt out, I think it would have taken less than 2 years.

While it is nice that you have loyalty to completing a job you have undertaken, remember that is never a two way street. Situations being right, you can and will be cut loose someday- recognize that and determine when it is ok for you yourself to walk away.

<comment><AUTHOR> Was the work or workload any different at your next job? How did you manage everything for 2 years without work? Also, I've had three < 1 year stints in my 4 year career already, and this would be another one if I cut loose. I don't want this trend to continue forever. It doesn't look very healthy to me.

<comment><USER3> The work and the workload at the next job were more or less the same. I just needed time to regroup. I had lost all interest in computers.

In my case, I didn't realize I was burnt out at first... I got laid off as a result of the 9/11 terrorist attack ( short version... company lost phone and internet, was in the 'frozen' zone... etc ).

So I had unemployment, extra unemployment because of how I lost the job and I bet a lot of money on a couple super bowls and a world cup championship and made a bunch of extra money.

During those 2 years, I mostly just... hung out with friends, drank, practiced guitar, played in a couple bands, lifted weights and did some kung fu. After those 2 years, I was ready for programming again.

</comment></comment></comment><comment><USER4> Burnout sucks, and it can be hard to deal with. I began work on my startup in my spare time in college because it was fun. Once I jumped into it full time it turned my life on its head. After several months I was tired of working solely on my product, and I was tired of being at the computer in general. To gain perspective, I unplugged for a while. I read more books. I took up running again. I watched talks on TED.com and rediscovered movies and TV shows. Most importantly, I began coding stuff for fun again -- stuff that was totally not related to work. I felt guilty at first, but I ended up being far more productive in the long run.

It turns out it's the little things in life that keep you sane.

Are you a founder? Do you hold a significant amount of equity? If so, you have the power to chill out and take some time off. If not, you should remind your employers that you are a human being who will work reasonable hours. Maybe that means extending your deadlines; maybe it means they need additional developers to help handle the work. The bottom line is this: if you aren't being compensated the same as the founders then you should not be expected to have their level of dedication.

</comment><comment><USER5> You know there's a famous maxim from Lincoln that if he had two hours to cut down a tree he'd spend most of the time sharpening the ax. The best cure for a burn out is to sharpen your ax by taking time and figuring out what excites you. I'd advise you to see what non-programming things inspire you and then bring that passion back to your work. Also despite what everyone tells you having a personal life isn't a bad thing...

<comment><AUTHOR> The problem is, working with a startup has so far meant giving up my life - and just working 24x7. Not a healthy trend, but I don't know of a startup that works otherwise. I believe I'm not very comfortable telling my boss - "I can't do this". He's the founder and this is his dream after all. I feel I'm not doing my job if I don't finish my work - no matter how long it takes. Am I obsessing unnecessarily?

<comment><USER6> I would suggest picking up a sport(insert some form of physical activity). By working more hours you are not necessarily providing the startup with more productive hours. The longer the hours the more burnt out you will get. This will result in more mistakes (bugs), more time spent trying to solve problems etc.. Do not feel guilty for taking some time out for your own life. Not only will this help you, it will help the startup. It will give your brain time to reset and you should even see an improvement in time it takes you to do tasks. Even just taking time out of the office for a decent lunch break will help make your afternoons so much more productive. The number of times I have walked away from a problem to go for a walk (anything else but sitting at the desk staring at the problem), to come back to the problem and know exactly what is wrong.</comment></comment></comment>


Reasons Not To Build Dashboards From Scratch - <AUTHOR> http://chartio.com/blog/2013/04/10-reasons-to-not-build-your-own-dashboard

<comment><USER2> Having just registered this account (and subsequently reading the news guidelines[1]), I feel like the title you posted clearly goes against this: "If the original title begins with a number or number + gratuitous adjective, we'd appreciate it if you'd crop it. E.g. translate "10 Ways To Do X" to "How To Do X," and "14 Amazing Ys" to "Ys." Exception: when the number is meaningful, e.g. "The 5 Platonic Solids."."

However, this didn't stop me from reading the article, which honestly felt a bit condescending (this line stuck out: "And don't kid yourself that it will ever look pretty. Without a designer's input, charts have a funny way of just not going well together."). As a young developer who is constantly looking for new (or new to me) and exciting tools, this is the sort of thing that turns me away from an otherwise handy or useful tool.

[1] <http://ycombinator.com/newsguidelines.html>

</comment><comment><AUTHOR> Thanks for the feedback. I've been a member for 5 years and was unaware of that rule. I just re-reviewed the rules. Thanks for pointing them out.

Also apologies that it came off as condescending. I was experimenting with a bit of a different style of post and writing, attempting to come off a bit quirkier. I've learned that its definitely a style that doesn't go well with the HN audience :).</comment>