Your Startup Needs a Dashboard - <AUTHOR> http://www.zemanta.com/fruitblog/your-startup-needs-a-dashboard/ <comment><USER3> At any given time, there are a near infinite number of things your business "needs" to do: add a dashboard, A/B test your landing pages, test your database backups, fix your security holes, improve your customer service, add more metrics tracking, etc, etc. The list goes on and on.

A big part of running your business involves looking at this list and picking the ones that make sense for _your_ business, not what the blog-post-du-jour is telling you.

<comment><USER4> I'd argue that having a well illustrated overview of your whole company helps you prioritize this list.

So put business _and_ technological metrics on that dashboard. And then you can decide whether you should be focusing most on customer support, A/B testing, or that network bottleneck.

<comment><USER3> I won't disagree, but my main point is that everything has a cost. These blog posts often present what your business "needs" to do in a context-free manner.

If you are sitting on your thumbs looking for something to do, then definitely add a dashboard. If you're like me and have a backlog a mile long, maybe a dashboard isn't the best way to spend your time.

<comment><USER5> > _"maybe a dashboard isn't the best way to spend your time."_

The point of the dashboard is that when you have one, you have actual accessible data from which you can plausibly determine what _is_ the best use of your time.

e.g. If you can _see_ that conversions are already coming in faster than the database is scaling then you _know_ that you need to solve the scaling problem before you worry about A/B testing. Or vice-versa. You don't need to guess (as much).

<comment><USER6> That's a rather simplistic view and a slippery slope.

Spending time on a pretty dashboard is one of the easiest ways to get drawn into vanity metrics and fapalytics.

Proper monitoring is important, but that usually means completely different things for different departments.

The CEO doesn't need to see database performance charts because he can't make sense of them anyway. Likewise the admin doesn't need to see conversion charts because they are not relevant to his work.

Trying to squeeze unrelated data into a common dashboard often leads to false correlations and entire herds of shaved yaks.

You provided a nice example for a false correlation yourself: The conversion- rate almost never relates to database performance in any meaningful way.

<comment><USER7> What about a small organization or a one-man e-commerce company where database performance affects conversions, and you're the one-and-only tech-guy?

<comment><USER5> This was exactly my point.

Small shops have limited tech resources. Database scaling and implementing A/B testing suites can and have competed for those resources.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> I worked at a place doing network appliance stuff. We managed and developed the machines, and product to end users. A simple dashboard increased our effectiveness by an order of magnitude. Some simple graphs and deep knowledge of the code really really helped. Some data from other departments combined with this was amazing. A simple color coded call queue count told us there was a problem before the front-line tech support people could even report it. Simple analysis of that queue told us where to look for problems: a predominance of one area code told us to examine specific machines (and which subset!), while a wide array of area codes told us that it was probably in billing or comms infrastructure. A couple of graphs of network traffic and system load told me what what the problem could be. I don't know how, I couldn't write code to do it, but I certainly could get to the problem much faster with that minimal input from graphs.

My working theory on dashboards is this: the human mind is amazing at pattern recognition. We're wired for it. We can make intuitive leaps see patterns that may be very hard to describe in math/stats or code. Particularly visual ones. So if you provide that data to your brain to crunch, you are enabling and augmenting your natural tooling. The graphs and stats should be as specific an pre-thought out as possible, but they aren't perfect. Fortunately, as time progresses you learn what "looks right" and what "looks like a problem in subsystem Foo".

This isn't a silver bullet, but certainly it is a great tool. Since then, I've tried to never do work without some sort of visual feedback I can background my innate pattern matching on. Even if it is just scrolling logs -- these patterns emerge and provide clues even if you can't express what they are.

(Anecdote: I had built a demo a while back, and it hiccuped during the live presentation. Fortunately I was in the back of the room with my logs scrolling, and I noticed the logs looked wrong, so I found out a script had died. I restarted it, causing a weird blip in one of our display graphs, but the presenter noticed it before calling attention to that graph in the course of presentation. He glanced at me and I gave him the thumbs up and the audience never even noticed. What was the pattern? The scrolling in one of my log windows slowed down....)

<comment><USER9> I completely agree with your point 'the human mind is amazing at pattern recognition'. From personal experience, I can say I am a 'visual' person. (So much so that my startup is entirely based on this premise, because I think our eyes are amazing analytics tools.) But to my point: is that the case for everybody? Is everyone 'visual', or do some folks think better 'visually' than others?

<comment><USER10> well definitely not blind people.

</comment></comment></comment><comment><USER11> I have to say, I'm in two minds about this.

On one side- yes it's supercool to have a dashboard with maps and metrics and everything like that. And I can see it could be really useful too when something's going wrong.

On the other hand, I'd be wary of building anything like this until I had a good number of customers, paying me money for a service. Is the product so complete (I would ask myself) and my users so happy, that we have no more important task than building a dashboard to look at in the office. Don't some simple email alerts cover most of the important bases (server down, site down etc) for now.

Your startup needs customers (or failing that, users). Your users don't care if you've got a dashboard, they care that your product does what it says.

<comment><USER12> I can't agree more. First you need a product that works at least for some users, then when you are expanding the user base it's time for dashboards.

Dashboard answers the question: Is my product right now working for my users?

Eventually it can also show trends in terms of resource usage, strange peaks, etc. But the primary function of dashboard is answering the question: "are my users getting the service?"

Additional note: dashboard works wonders for getting us - engineers - understand that there are real users out there right now and thus making us want to build even better product.

<comment><USER13> This seems pedantic. Of course the product needs to work for some users before you can measure anything about it. Otherwise your dashboard is filled with zeros, which should be obvious because the product doesn't work for anyone (and isn't a product).

Once you've gotten to the MVP stage, you should be tracking the key metrics, and those should be easily viewable in some sort of dashboard. Tracking up- time (or if the service is working) is a small part of what should be measured. When you're just starting off, you need to quickly figure out if your market hypothesis is correct. You can't do that without data, and a dashboard is both easy to build and helps make more informed decisions for everyone involved.

No one is arguing that you should build a dashboard before you have a MVP. Once that happens, you need to be measuring things.

</comment></comment></comment><comment><USER14> My new strategy is to instrument the hell out of things -- but only to look at data when enough of it has accumulated to be meaningful.

I think you can make a mistake of measuring and trying to understand data in increments that are so small as to be a waste of time. It can become just another way to not be minding your knitting. Server down? You need to know right now. Knowing that somebody considering buying your product is using a iPhone in New Zealand? Not so much. Computers are great at catching and storing all sorts of stuff. Unless it's critical, best to play with the bells and whistles in controlled deep dives, not as part of a Tony Stark video-game- master-of-the-universe thing. I love bringing up my real-time site metrics and watching all sorts of folks that I am helping. I also like to watch my stock portfolio move throughout the day. But I've found that there's a lot of naval- gazing going on there and not much of anything useful.

Don't look at measurements that generate no subsequent management activity.

</comment><comment><USER15> I suggests everyone read these whitepapers on dashboard design.

[http://www.perceptualedge.com/articles/Whitepapers/Dashboard...](http://www.perceptualedge.com/articles/Whitepapers/Dashboard_Design.pdf) [http://www.perceptualedge.com/articles/Whitepapers/Common_Pi...](http://www.perceptualedge.com/articles/Whitepapers/Common_Pitfalls.pdf)

The author also has written a great book on dashboard design.

Operations dashboards are essential for any (tech?) company.

Business dashboards are another beast all together.

<comment><USER16> Here is the book: [http://www.amazon.com/Information-Dashboard-Design- Effective...](http://www.amazon.com/Information-Dashboard-Design-Effective- Communication/dp/0596100167)

Do you have any additional suggested reading material? Thanks much.

<comment><USER15> There is this as well [http://www.amazon.com/Enterprise-Dashboards-Design- Best-Prac...](http://www.amazon.com/Enterprise-Dashboards-Design-Best- Practices/dp/0471738069)

The The Grammar of Graphics (Statistics and Computing) by Leland Wilkinson is also great, though more focused on building graphing systems. I believe it is the inspiration for a lot of d3.js [http://www.amazon.com/The-Grammar- Graphics-Statistics-Comput...](http://www.amazon.com/The-Grammar-Graphics- Statistics-Computing/dp/0387245448)

</comment></comment></comment><comment><USER17> We did this: <http://blog.riothq.com/current-status>

We don't really cover any serious metrics, as we're mostly client work - <USER2> we did have a big screen that we wanted to use. It's become one of the coolest things in our office.

<comment><USER18> Your company is called Riot(<http://www.riotgames.com/>)?

</comment></comment><comment><USER19> Something like this would have to be everywhere. I know I always wait a few days, before sending feedback that something doesn't work for me and sometimes I just stop using features like that. The chance to fix something before users would even start to complain is priceless.

Like any doctor would say, the sooner you find out something is wrong, the better. And if nothing goes wrong, you have a huge cool display of how awesome your company is doing.

</comment><comment><USER20> Dashboards provide value on multiple levels. They radiate information out into your team so everyone is working off of the same shared understanding about the state of the business. They make it easier to detect aberrations. They enable your experts to curate a set of top-level metrics on a per-service basis to look at first when fire-fighting. Every service in your architecture should have it's own dashboard.

If you're interested in dashboards, our startup recently launched a service that makes it simple to hook in your metrics through OSS tools like StatsD and build real-time dashboards with a few clicks: <https://metrics.librato.com> You just provide the data, we do all the rest. Would love any feedback you might have!

<comment><USER21> Librato is fantastic.

The only issue is the pricing can be a little unfair if you are aiming for more of a real time system since you can't define retention rate. It would be great to be able to model the same system used in Graphite i.e. real time for last 6 hours, then capture every 5 minutes for 6-24 hours and then every 10 minutes from 24 hours onwards.

<comment><USER20> Thanks for the feedback :). We do provide a defined set of rollups today: 1m, 15m, 1h ... but in the future we intend to let users configure that themselves. If you want to shoot me an email, we can chat about the realtime scenario, I'm always interested in testing our pricing hypothesis against real-world use-cases.

</comment></comment></comment><comment> saint-loup All of this is well and good, but it's kind of like a "step 1, step ...., PROFIT" joke. The difficult part is picking the right metrics and, often, creating and maintaining them.

<comment><USER22> Thanks! I now have an idea for the next post :)

</comment></comment><comment><USER23> It's worth noting that dashboards and instrumentation are one of my key job functions - As it is for all Google SREs. Having the data to tell when you're doing well and when your failing is key - Without knowing you're broke, how do you know to be fixing?

</comment><comment><USER24> I agree with this. Our version is a plain ol' chalkboard, but it covers the entire wall. We mainly use it for the current state of the company - projects, action steps, projections, etc. Incredibly useful and has a UI everyone understands.

</comment><comment><USER25> It's not only start-ups that need dashboard or visual metrics, established companies can benefit from more information about how their services/applications/etc work.

Its one thing to give the numbers to the management group, but its more readily accepted when combined in a visual manner. i.e. dashboard

My current employer is only now beginning to see the advantage of collecting good metrics and how it shows the behaviour of both the users and the application.

Their decision making and planning becomes more accurate over time due to having good information at their fingertips rather than an educated guess because originally the system was a black box.

</comment><comment><USER26> Dashboards are necessary but not sufficient. As your company grows, you also need to send periodic report summaries to people who can act on them. While you certainly need instant pings (emails/IMs/Tweets) in case of major issues (server down, $10k+ shipment got delayed etc.), for the most part, you need to let someone spend 15-30 mins a week to analyze the data and make rational decisions based on that. Dashboards can't help with that but creating too many dashboards will take up valuable resources that could have been used to make more effective reports.

</comment><comment><USER27> The coolest "hack" about this is that they put the dashboard on several wall- mounted flatscreens.

It doesn't even matter what sort of logging/stats drawing software they use, it could just as well be a tiled window manager with some Google Analytics views on auto-refresh and a colour-coded log tail :)

Not saying you can't do much better than that by picking smart visualisations, but the biggest win is having a few _dedicated_ screens mounted on the wall continuously displaying info, for everyone in the office to glance at.

Not to mention is looks damn cool and impressive :)

</comment><comment><USER28> If you're interested in doing this, two things that have previously helped me:

Stashboard - Open source status monitor for elements of your infrastructure, run it on AppEngine

<http://www.stashboard.org/>

GeckoBoard - Dashboard as a service - Can be coerced into creating whatever kind of charts/graphs you want on a slick looking board, but is set to do polling of data which is less helpful for system operations stuff, but nicer for marketing, MAU/DAU monitoring, signups, etc.

<comment><USER29> You can now push data to Geckoboard see <http://docs.geckoboard.com/api/push.html>

Disclosure: I'm one of the founders, thanks for the mention.

</comment></comment><comment><USER30> I built a dashboard (very pretty if i do say so myself!) using the ITRS Geneos product. Management love it. The operations guys, not so much. Why?

We have plenty of tasks we could constructively spend our time on rather watschen der blinkenlichten.

If no one's going to watch your dashboard, why build it? If occasional glances at a dashboard is your monitoring strategy, why monitor at all?

Our monitoring system has to not only interrupt and alert us, it also has to be capable of some interventions on our behalf occasionally.

</comment><comment><USER31> I'd also be careful to avoid vanity metrics. I think your time is better spent building a dashboard for actionable metrics. A map of all of your api calls might look cool but what are you going to do with that? I'm more interested in average customer life-time value, churn, customer acquisition cost, retention etc... I've been looking into using geckoboard for this as it seems like it would make setup go much faster.

<comment><USER32> If you suddenly see a huge cluster of API calls in a single geographic area, that might point to an issue, such as a problem connecting to the local CDN. The stuff you're talking about is actionable from a business standpoint, but the stuff in the article is meant to be actionable from a performance and problem resolution standpoint.

</comment></comment><comment><USER33> I really, really want to see a beautiful, open source dashboard app, preferably written with Rails.

So far, I've only seen beautiful but closed source SaaS apps, and pretty ugly open source PHP or Python projects. I'm very tempted to start my own, but I just wish someone like Panic would open source their awesome design.

</comment><comment><USER34> This type of dashboard is helpful, but for the business-types (and for personal encouragement) a simple dashboard of

# New Users Today # Returning Users % Conversion Rate in Last 24 Hours % Open Rate on Last Email Campaign $ Dollars Raised Today

</comment><comment><USER35> Here's a nice post about Panic's status board: <http://www.panic.com/blog/2010/03/the-panic-status-board/>

</comment><comment><USER36> also known as information radiators <http://goo.gl/rJkFU>

many moons ago * 20+ i had a summer jobb in a industrial consumer analog photo lab, in the entrence to the coffe machine / resting area there where hand- plotted charts updated daily on velocity of orders / our fulfillment with comparison to expected orders and also historical high and lows . this made the workforce (40+) transparently se what shape we all where in with regards to business ...

</comment><comment><USER37> If you are looking for custom charts for graphite, shoot me an email: email@example.com. I've done d3 consulting previously and can get it done for you. </plug>

</comment><comment><USER38> If anyone is interested, I'm building a dashboard app. It's currently in beta and was built in socketstream.

<https://dashku.com>

<comment><USER39> You should add a demo link on your site

</comment></comment><comment><USER21> For those that are considering this you can capture from all three areas of your 'stack' straight into Graphite:

1) Munin. There are hundreds of munin plugins around for monitoring every part of your infrastructure from CPU to MongoDB replication lag to number of Nginx 404s. Use Munin2Graphite bridge.

2) App. There are lots of statsd clients which allow you to measure all your business metrics. Signups. Retention rate. Revenue rates etc.

3) Front End. With the NginxStatsd module you can push stats directly into statds from your Javascript methods. Use it to do end to end timing, capture what the user is doing etc without putting any load on your app.

Sure it's a bit of work but done well it can save you a lot of money over products like MixPanel or NewRelic.

<comment><USER16> Are there any similar technologies available for the Microsoft stack?</comment></comment>


Google Hires Tech Team from Homejoy, Readies Leap into Home Services - <AUTHOR> http://recode.net/2015/07/17/google-hires-homejoys-technical-team-to-build-its-own-home-services-marketplace/ <comment><USER2> Note that -- in a not untypical for Re/Code demonstration of a near-complete absence of journalistic standards -- the assertion that Google's hiring of (some of) the Homejoy team is about moving into home services is not even attributed to any source or set of sources. The only sourced facts are:

(1) Google is hiring a portion of Homejoy's staff (sourced to Google)

(2) Homejoy's current platform will be shuttered (sourced to completely unspecific "sources", but this is pretty explicit in Homejoy's own public shutdown announcement.)

(3) Google "had set out to enter" the home services space "earlier this year" (sourced to a Buzzfeed article, which actually claimed that Google was in the process of readying an offering in the space, that doesn't indicate the timing of the planned launch, so really doesn't support the past-intention characterization given in the Re/Code article.)

So, Homejoy is shutting down (which we knew), Google has hired some of Homejoy's technical staff, and there were reports a few months back that Google might be readying some product in a space related to (but not identical to) what Homejoy was doing.

<comment><USER3> Note that Kara Swisher (executive editor of Re/Code) was married to Megan Smith [1]. Megan is now CTO of the United States, but previously was at Google for over a decade and a VP at Google X.

It's not unreasonable that Kara, and by extension her team, would therefore have made a number of high-level contacts inside Google.

That said, if they are speaking to sources then they should reference them (even if anonymously.) Otherwise, as you noted, we can only consider it an opinion piece masquerading as journalism.

[1] [https://en.wikipedia.org/wiki/Megan_Smith](https://en.wikipedia.org/wiki/Megan_Smith)

<comment> steve-howard Kara's ethics statement claims that she has no non-public information related to Megan's job:

[http://recode.net/ajax/writerinfo/ethics/kara- swisher/](http://recode.net/ajax/writerinfo/ethics/kara-swisher/)

<comment><USER4> _Kara 's ethics statement claims that she has no non-public information related to Megan's job_

I see nothing in that ethics statement that contradicts the GP's assertion which was:

       It's not unreasonable that Kara, and by extension
       her team, would therefore have made a number of
       high-level contacts inside Google

</comment></comment></comment></comment><comment><USER5> This is an interesting move, it seems like an acqui-hire without all the upfront money to actually do the acquiring. I wonder what someone who owned equity in Homejoy would think of this.

<comment><USER6> Is there anything legally preventing a startup from folding regardless of their VC's demands and going to work for someone else if an offer is extended?

EDIT: Hand remaining money back to VC, say "We've received better job offers", turn off the lights and move on.

<comment><USER7> Maybe issues with intellectual property? VC's lawyers could be ready to pounce if the former employees do things very close to what they were doing. (IANAL).

<comment><USER8> And even better, "Yes, we sue people that leave to work for Google" is exactly the message you want to send to founders. /s

(depends on the type of IP though, but you better have a really solid claim)

</comment></comment></comment></comment><comment><USER9> I'm shocked by how quickly Homejoy seems to have folded. It was viewed as a baby Unicorn around Silicon Valley. Hopefully a more detailed post mortum will come out in the press in the next couple weeks.

<comment><USER10> I'm shocked that Homejoy got any investor money at all. In what rational universe could Homejoy have been a baby unicorn?

<comment><USER11> Come on, it was mobile, and on demand services. So hot right now. I'm just surprised they didn't get a late stage round at a $1 billion+ valuation by the sophisticated investing folks at Fidelity etc.

<comment><USER10> mmm.

I guess if they could get $1 from investors why not a $100 million. I would have loved to see what was in their pitch deck as I can't imagine a worse industry to try and build a unicorn.

<comment><USER11> Slide 1:

Mobile, on demand services. So hot right now.

</comment></comment></comment></comment></comment><comment><USER12> There's a missing piece of the puzzle, on the surface this makes absolutely no sense.

<comment><USER13> There has to be a "Flexible Frank" prototype here somewhere. And a door into summer.

</comment></comment><comment><USER14> Great idea. Hire a bunch of law and regulation flouting failures? I get the whole "you will fail far more than not" but it's not like they were doing something new, they couldn't even manage to take over something as simple as dispatching of cleaning services, let alone set up a cleaning service that didn't abuse its "independent contractors" aka employees.

It's kind of annoying, but hell, Google failed at "Home Services" at least once before, why not hire a couple people who failed at exactly that just a few days ago. It sounds like a winning only-makes-sense-to-google kind of strategy.

</comment><comment><USER15> Well played Google! using your Venture arm to recruit for your internal product.

</comment><comment><USER16> You know when you watch movies like Total Recall, or Blade Runner, or play a sci-fi game, and there's that pervasive company that seems bigger than any political super power? That's what I think of when one of the Four Horsemen (especially Google) looks like expanding territory blatantly outside their core offering.

In this case, I'm hoping they're just hiring technical people and not looking at cleaning houses, but it always brings that fictional megacorp to mind and makes me uncomfortable.

</comment><comment><USER17> Thumbtack is funded by Google Capital. Homejoy was funded by Google Ventures.

I know that the two entities are distinct, so I guess this is Kosher?

</comment><comment><USER18> If Google is actually going to make a move here, I'm all for it. Homejoy was a horrible experience. Housekeepers leaving an hour early (their QA team confirmed this for me) and one stole my medication from the bathroom countertop... If they go under it's their own fault.

</comment><comment><USER19> Why would Google hire only the tech team? Home services seems like the sort of thing that absolutely demands a solid customer service and sales organization.

<comment><USER2> > Why would Google hire only the tech team?

Maybe because they are proven capable to deliver technology team, which Google has many ways to employ, that was about to be unemployed _en masse_ given that Homejoy was suspending operations and thus likely wasn't going to have much for them to do, or anything with which to pay them.

> Home services seems like the sort of thing that absolutely demands a solid > customer service and sales organization.

If Google, as was reported months ago, is well on its way to offering its own product in this market than, whether or not Homejoy's tech team was (as is claimed, without any stated basis or source, in the Re/Code article) hired to work on it, its likely that the customer service and sales structure for it is already decided. If the model isn't fundamentally what Homejoy was doing, there's not necessarily any reason to think that Homejoy's team in that area would be of any use to Google's product.

OTOH, whether on a home services product or otherwise, Google probably can find lots of uses for engineering talent.

</comment></comment><comment><USER20> > "Type in a search query for a cleaner to come to your house; rather than > send you to third-party sites, Google would bake the options directly into > the top of results."

I remember hearing that Google can't aggressively promote their own services in search results. (Example: When I google "search", the top 4 hits are Yahoo, search.com, AOL, & DuckDuckGo.)

Is this a proactive measure on their part to keep anti-trust regulation at bay, or an established prohibited practice? In the latter case, is there any guidance around where 'the line' is regarding this behavior?

<comment><USER21> I mean, the Google search bar is still first in all those results ;)

<comment><USER22> There's something called anti-trust regulations, and it's a very serious issue.

</comment></comment></comment><comment><USER23> [https://news.ycombinator.com/item?id=8794956](https://news.ycombinator.com/item?id=8794956)

</comment><comment><USER24> Golden parachutes, they don't just exist in finance.

</comment><comment><USER25> Google 'You dun goofed.'

<comment><USER25> this was meant for [https://news.ycombinator.com/item?id=9905363](https://news.ycombinator.com/item?id=9905363)</comment></comment>


The Pac-Man Dossier - <AUTHOR> http://www.gamasutra.com/view/feature/3938/the_pacman_dossier.php?print=1 <comment><USER2> Note: this page has been there for years. Here is the non-print version dated 2009:

[http://www.gamasutra.com/view/feature/3938/the_pacman_dossie...](http://www.gamasutra.com/view/feature/3938/the_pacman_dossier.php)

Oddly this same link to the print version was posted 5 days ago:

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

And several other times:

[https://hn.algolia.com/?query=the%20pac- man%20dossier&sort=b...](https://hn.algolia.com/?query=the%20pac- man%20dossier&sort=byPopularity&prefix&page=0&dateRange=all&type=story)

It looks like it was moved to Gamasutra at some point or perhaps was posted to both Gamasutra and the personal blog.

It's cool, for sure, and should be posted over and over, but I find it a little suspect to link to the print version; that sort of thing could be abused, because people could continue to post variations on the same link every day on HN. That could be bad, imo.

</comment><comment><USER3> Also check out the Making Crash Bandicoot series: [http://all-things-andy- gavin.com/2011/02/02/making-crash-ban...](http://all-things-andy- gavin.com/2011/02/02/making-crash-bandicoot-part-1/)

The post on GOOL (predecessor to GOAL [1]) is especially interesting.

[1]: [https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp](https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp)

</comment><comment><USER4> It was fascinating to see how individualized the ghosts were. even more sore that their names in the Japanese version hinted at their personalities, but we lost that in the translation to "Blinky, Inky, etc."

The article also explained a number of fascinating mysteries, such as how PacMan can move through a ghost sometimes and that Pac Man can take shortcuts around corners but ghosts can't.

It was also fascinating to read how the difficulty of the game was carefully stepped from level to level according to factors like time, number of dots eaten, etc. With a deceptively simple outlook, the game design had a lot under the hood.

</comment><comment><USER5> I think a lot of the tidbits in here that aren't obvious to the casual observer is what separates the "good" clones from those with the same pieces but lacking the right "feel". I tried to follow along as much as possible (even reproducing the AI bugs) in my "hungry hank" homage.

</comment><comment><USER6> The links to Don Hodges site are great if you want the explicit low-level details. For instance, he has a patch to fix the kill screen:

[http://donhodges.com/how_high_can_you_get2.htm](http://donhodges.com/how_high_can_you_get2.htm)

I made a much less serious patch -- a backwards-facing Pac-Man that places dots instead of eating them:

[http://members.shaw.ca/gp2000/bacman.html](http://members.shaw.ca/gp2000/bacman.html)

</comment><comment><USER7> The linked Don Hodges article about Level 256 is particularly fun to read, complete with a few proposed patches & a way to make the startup checksum still pass:

[http://donhodges.com/how_high_can_you_get2.htm](http://donhodges.com/how_high_can_you_get2.htm)

A fun quote - it certainly seems better to have an ending, even if it is not intended:

> "It is probably a good thing that Pac Man has this bug in its program. If it > didn't, expert players could conceivably be able to play the game > indefinitely, because whenever they get tired they can just park Pac Man in > the hiding places and leave the game to go eat, sleep, or whatever, and then > return to the game and continue playing. The only limiting factor would have > been the length of time that the game could run without a power outage or > suffering from some other hardware failure. Experts would have been able to > play the game for weeks, months, even years, or more."

</comment><comment><USER8> This is fabulous. If you like this, you should also check out the creator's original graph paper drawings (!) of the maze and characters:

[https://laughingsquid.com/pac-man-creator-toru-iwatani- share...](https://laughingsquid.com/pac-man-creator-toru-iwatani-shares-his- original-sketches-for-the-iconic-video-game/)

</comment><comment><USER9> Pacman seems in incredibly simple at first but as anyone who has created a clone knows, it contains a lot of intricacies that give it a unique character to it.

It's amazing that the developers were able to put that kind of thought and design into it given the tools and technology of the time.

</comment><comment><USER10> Very nice man, a good way to start the week reading this article if you like Pac-Man.

</comment><comment><USER11> [http://tkc8800.com/image.axd?picture=/Apple/Mac400k/Games/Ma...](http://tkc8800.com/image.axd?picture=/Apple/Mac400k/Games/MacMan_1.0/MacMan_1.0.png)

</comment><comment><USER12> Nice article. I really enjoy Pacman, and I still play it on Mame, but my favorite game back then was Mr. Do.</comment>


Ask HN: Developer machine, Macbook vs. arbitrary Laptop with Linux, which? - <AUTHOR> How hard is it to get an arbitrary distro of Linux to work seamlessly on an arbitrary laptop?<p>I intend to teach myself web development. Therefore I want a machine on which I can develop on. I'm told Macbook Pros work out of the box, pretty much. However I do not want to pay such a big premium just for the apple brand. So I figured I could buy a much better Windows laptop for less, and dualboot my chosen linux distro and windows -- but how hard is it to get the distro to work with the hw? <comment><USER3> You're not really paying a premium for the Apple brand these days when it comes to laptops. If go out and look at laptops of similar quality you'll see there's not much in it. Sometimes Apple is even the cheaper option. Don't think that by buying a cheap consumer grade laptop you're "getting a deal" \- you're just paying what that machine is worth.

But if you don't want to buy Apple, by all means buy a decent Thinkpad or Dell business grade laptop - Dell will certify Ubuntu on some of their machines & Thinkpads have had decent support since forever. If you buy a bleeding edge machine it will probably have some wrinkles to iron out though.

You can do what I do & pick up refurbished Thinkpads which are "good enough". Everything just works on those, because the bugs have all been ironed out. Plus, they're cheap enough to buy a spare. X201 represent :)

<comment><USER4> Yep. There are some nice Windows machines out now like the Dell XPS, HP Spectre x360, Surface Pro, but when specced out they cost the same as a refurb Macbook Pro.

 _edit_ Except the windows machines come with touchscreens and some have active digitizers for drawing with a pen.

</comment></comment><comment><USER5> I am a huge Linux fan. Love it. It's my preferred operating system, hands down. I ran Ubuntu on a Dell XPS 1330 for all four years of college while I was getting my CS degree.

My first programming job after college came with a Macbook Air. Since then, I've never bought anything but a Macbook. It's just a better built machine and I have no qualms paying a premium for quality. I use a Macbook Pro for my job now and I can't imagine using any other machine for programming.

I could care less about OSX. It's the quality hardware package that Apple gives you. Yeah, you can get better specs for cheaper elsewhere, but nothing retains its quality over the years like a Macbook.

The Macbook Pro 15" Retina is what I would recommend for a serious dev, but any Macbook down to the MBA would do.

It's similar to buying a car. After college I could've bought a Ford with all the fancy features for cheaper, but I went with a Toyota because Toyotas are just better built cars that will last.

EDIT: I always buy refurbished Apple. You get a great discount and still are eligible for Applecare.

</comment><comment><USER6> Usually everything works out of the box even with relatively new laptops. Driver problems and heavy manual fiddling is a scare from the olden days. You might need some extra effort if you want to make full use of the gpu but this doesn't seem to a factor if you'll do web dev.

For distros - Ubuntu will give you most out of the box but I'd suggest trying Archlinux. The wiki is so much better then what ubuntu has to offer and it has info on more exotic problems. I found it way more stable and usable then ubuntu.

For brands - lenovo thinkpads work great. Asus has great support too, though headphones/mic combo jack has some issues on certain models

<comment><USER7> As a regular Arch user, I would not recommend it for new Linux users. When things go wrong in Arch, they have a tendency to go very wrong (e.g. when they symlinked /bin and /lib to /usr/bin and /usr/lib, which caused major problems if you didn't follow the news and just did a normal update).

</comment></comment><comment><USER8> Your best bet is to look at specific models of laptops that interest you and then use google to find out if Linux works well on them.

Typically, Linux works well on Dell Lattitudes and Lenovo Thinkpads.

That being said, when these companies release a new model, it usually takes at least a few months before people get them working 100% on Linux.

If you want more specific advice, you should create a post on reddit.com/r/suggestalaptop and give them the specs you are looking for, plus your price range.

</comment><comment><USER9> Lenovo Thinkpads tend to work every time. I'd pick a model (from any manufacturer) and read user reviews.

I've put Linux on 4 laptops over the past 10 years and everything has worked. I've heard many complaints about sound not working, but sound has always worked for me in Linux everywhere I've tried it. ATI drivers were hard to get working back in the day, but with Valve pushing SteamOS, graphics drivers should be much less of a concern these days.

<comment><USER10> Yep, my lenovo (thinkpad e430) works great with ubuntu linux (and even plan9 (9front) and freebsd), but it annoyingly uses battery while powered off. If I leave it powered off in the closet the battery will be dead in a day. Using a macbook before led me to take battery life for granted I guess.

Edit: it's not suspended, but actually turned off. s/even//

<comment><USER11> Some laptops have a USB port always powered on for recharging other gadgets. Also check that you don't have Wake on Lan or Wake on USB and such enabled. If that's the problem you should be able to disable from the BIOS.

</comment></comment></comment><comment><USER12> Usually it is not hard, to install Ubuntu Linux. Normally it's a piece of cake. If you want install on your (20 minutes) than I would buy a Thinkpad.

If you would like to have Ubuntu preinstalled look at one of those vendors (The Dell looks very nice.):

[https://system76.com/laptops](https://system76.com/laptops) [http://www.dell.com/us/business/p/precision-m3800-workstatio...](http://www.dell.com/us/business/p/precision-m3800-workstation/fs) (choose Ubuntu) [http://www.pcworld.com/article/2849795/purism- librem-15-linu...](http://www.pcworld.com/article/2849795/purism- librem-15-linux-laptop-blends-high-end-hardware-with-totally-free- software.html)

Or look at amazon for Linux laptops. Hope that helps.

</comment><comment><USER13> Trying to get any linux install to work on a random laptop is still a total crapshoot. Even if you get it to work, it'll be riddled with irritating issues – suspend or wake not working, graphics issues, that sort of thing.

Make sure you review a list of compatible machines first!

<comment><USER6> We have a load of lenovos at work that work at 100% with standard ubuntu install. I have 2 laptops at home (pretty new ones) that have Arch running with no extra fiddling after base install. In my experience things usually just work and the situation you've described is from around 5-7 years ago.

</comment></comment><comment><USER14> You are paying premium for unmatched hardware and software quality. I've been using DOS, Windows 3.1+, Ubuntu 9.04+, and OS X Mavericks and Yosemite. Yosemite is the best OS in the world. Things just work. I used this script to set it up which worked flawlessly: [https://github.com/thoughtbot/laptop](https://github.com/thoughtbot/laptop) I suggest that you invest in MacBook Pro 15" Retina, as 13" is a bit small if you want to see the pages and the DevTools at the same time, or use an IDE like WebStorm. I will never buy anything non-Aplle-made in the future :)

<comment><USER15> Although I largely agree, especially the part about the hardware where the physical differences are measurable and obvious, but "best OS in the world" is highly situation specific.

Best for your needs? Sure. Best for gaming or servers? Not so fast.

As great as OS X is, It's obnoxious to use in a server environment compared to other options like Linux and BSD.

</comment></comment><comment><USER16> I wouldn't really recommend dual booting. Despite all the FUD here, Linux is a fully usable OS without such onerous maintenance overhead. Your environment is a lot more amenable to customization and a lot of Linux users like to spend time getting their experience right for their personal needs. (Not everyone thinks Apple UI is the pinnacle one-size fits all UI solution )

I've put Linux on a lot of random laptops over the years without problem... BUT when I buy a brand new laptop specifically to run Linux on it I do like to do a little research just to make sure I won't run into problems.

The reason I would not recommend dual booting is mainly that I think in terms of workflow and maintaining context/continuity of software enviroment.. You should choose one OS to be -your- OS and run any other OSes in VMs as needed. If you really want the option to dual boot you can run an OS that's installed to disk in virtual box without too much hassle. But in terms of workflow, having to reboot your machine and juggle files and incompatible FSes around will be a nightmare and you'll pay a high switching cost if, as you're working, you should need a tool from the other OS.

Among the people I know and from my own experience over the years dualbooting.. Eventually you're going to pick one OS and spend 95% of your time in it and it will be your primary gateway to computing.

In my case I run Linux as my main OS and if I absolutely need a windows application(like IE or Photoshop).. I just bring up a Windows VM.

You seem interested in Linux and the web does run on Linux but honestly, while installing a bunch of server software directly on your workstation OS is a great way to learn, I can't imagine that anyone works that way longterm. So even though you can do it in Linux(and OSX but I would never do this there, it's too much hassle and worse for a newbie).. Once you know what you're doing you probably won't install anything outside of a container or VM that doesn't address a personal or overarching need you have--which might very well include development tools you're working with or interested in.

So.. you're probably going to spend some time in Linux. Decide if you want to live there or commute. If you decide to commute, pick where you want to live.

</comment><comment><USER17> If in doubt, look at the Ubuntu certified hardware list: [http://www.ubuntu.com/certification/desktop/models/](http://www.ubuntu.com/certification/desktop/models/)

Or even better, choose a laptop specifically shipped with Linux and aimed at developers - I have the Dell XPS 13: [http://www.dell.com/uk/business/p/xps-13-linux/pd](http://www.dell.com/uk/business/p/xps-13-linux/pd)

</comment><comment><USER18> Dual booting a Linux and Windows machine is easy. I considered that option when I first got into web dev, but went to a bootcamp that was all-mac and it was just too much of a hassle to constantly translate everything from Mac- flavored to Linux-flavored Unix.

I'm happy with the Apple dev environment, minor gripes notwithstanding, because so much of it just_works. I'm also scared off somewhat by Linux driver gremlins (which speaks to your worry). A friend of mine, who's also using Linux to learn web dev, is constantly running into issues with his WiFi disconnecting and other small things that - while they aren't critical - <USER2> up in the long term.

So Linux is a good option if you're willing to really dive into it, which you should do as a webdev anyway, because it's so important as server infrastructure, and if you're OK with minor usability issues. But if you'd like to save that for later and focus on code, I'd go with Apple.

Hope this helps. Curious to see what others recommend.

<comment><USER19> I switched to OS X because Windows is awful for development (not Unix-like) and Linux has awful hardware issues and can't do "normal people things" well (games, web browsing, etc.).

<comment><USER18> The support for dev tools on Linux is so strong, that sometimes I forget that more "mainstream" content is harder to access - or unsupported entirely.

<comment><USER19> Yeah. Actually, web browsing was a poor example. The issue is more that there are a lot of things which just have almost no software support on Linux. OS X is quite mainstream and so this isn't generally a problem: if you need to do a task, there's either an OS X version of the tool you need, or an OS X equivalent. I can do things like play games and edit videos on OS X, or collaborate on Unity game projects. If there's some obscure thing I wish to do some day, I usually have a tool that can do it. These were things that were almost impossible on Ubuntu in my experience.

</comment></comment></comment></comment><comment><USER20> Macbook + Vagrant, just don't get a MBA. While light and portable, you'll eventually get annoyed at the lack of more oomph.

<comment><USER19> MacBook Airs are really fast and you'll never have trouble with the amount of power they give you unless you're trying to compile HHVM (a massive, multi- hour-compile time project) or play high-end games.

For web dev, programming, web surfing, multitasking, the MBA is very good. I'd recommend 8GB and not 4GB RAM though. It's rare, but sometimes the extra gigs would've been useful to me (though I can't think of a common use case, and OS X does a good job of memory management to make 4GB work).

<comment><USER20> > though I can't think of a common use case

You can't? I'll tell you: 30+ Chrome tabs open + several webkit/atom-shell based apps (Slack, Spotify, Atom, etc.). I hate people packaging web apps with a passion. (Funnily enough, we might end up doing it too, because it's easier)

This is after I restarted Chrome (I had several Chromium Helpers using more than 0.5GB each before that): [http://i.imgur.com/vN8EfDu.png](http://i.imgur.com/vN8EfDu.png)

<comment> j-b Not enough "oomph" usually means processing power. However, your screenshot reflects memory constraints. I run VMs and multiple tabs similar to you without a hiccup. I think most developers (myself included) tend to go with the 8 GB of RAM though when getting the MBA. You only have 4 GB. That's the issue here. :)

</comment></comment></comment></comment><comment><USER21> I bought my first notebook in 2006, it was a dell 640m, hell of a machine. I had it until 2013, upgraded way above their recommended specs (more memory, ssd drive). I had a dual boot with windows (although it was really never being used) and a happy all time debian user. But everytime a new version was out, and evenhough it was an old laptop with old hardware and all the drivers were pretty much there, there were always something to fix. Spending 2-3 days sorting some annoying issue out was the norm rather the exception. I think linux is and awesome OS and a great one to work on.

I switched to a macbook air on 2013, and not being an APPLEist (switched my iphone 4 for a rooted Samsung galaxy s3, which I still have), It's hardly to ever look back.

Once I get used to all of the MAC-ish things I was as productive as before, if not more. Things just work and it's a unix system underneath, so overall, I have everything I had on linux, compiling packages, package manager with hombrew, command line, etc. Just the fact of closing the computer, move around, open it and be working just where you left in 10 seconds, for me, worth the premium. Right now they are not that expensive.

I still had to overcome a few annoying mac things, it's not 100% fool proof, had to fiddle with open size limits, some specific configurations, proper web dev setup, but this time, I feel it was the exception and not the norm.

My +1 goes for a mac at the moment.

<comment><USER22> I have the same laptop, dell 640m,it is a awesome machine, it still used by my parents! Anyway I switched to a MacBook Pro too in 2010 and I never look back!

</comment></comment><comment><USER23> Couldn't resist posting this.

"You don't deploy to BSD. So why the hell are you developing on it?"

[http://www.widgetsandshit.com/teddziuba/2011/03/osx- unsuitab...](http://www.widgetsandshit.com/teddziuba/2011/03/osx-unsuitable- web-development.html)

Edit: This is undoubtably a troll post, and I dev on a Mac + VMs if necessary.

<comment><USER13> I remember this article – it really annoyed me then, and still does. In fact, given the solutions we've not got, it's even worse.

We all mostly use cross-platform technologies. They should function almost identically in each environment. You should have comprehensive CI and staging in place to make sure that assumption is borne out before anything ships.

If it's still a concern for you, you've now got access to things like Docker on the Mac, which totally isolates dependencies far better than an arbitrary Linux install would.

The ultimate reason that people want this to work is that many of us prefer working on a Mac. It's a totally legitimate preference, and I'd argue that if your app is dependent on the environment to the degree where is breaks between nominally compatible platforms, then it's a fault with your app!

</comment></comment><comment><USER24> I'm genuinely surprised at all the pro macbook comments here. I'm typing on one right now ... with an ethernet cable, because the wifi is so spotty, while my other win 7 laptops are just fine. My MBP is great at everything except for the most important things: connecting to the internet, playing sound, waking up from being asleep.

</comment><comment><USER25> Buy the Macbook. I have working on getting a Dell developer edition. I picked up a release older than current of a 15" Macbook Pro from Best Buy for ~$500 off MSRP. 512GB pcie SSD, Core i7, 16gb of ram, retina screen, etc. Cost be about 2.2k. I haven't regretted it. I price this machine against current non- apple w/ linux support and I am still looking at ~3k for them. In addition, their batteries aren't as long as this Macbook. Do yourself a favor, the Mac is the cheapest price for the hardware and it's faster because the SSD is PCI not SATA. (That said, expect that WWDC will include new Macbook Pros and whatnot). BTW, my coworker uses a 13" Air. He uses it for VMs and development. I only got this Mac because I had a requirement for discrete graphics and video editing.

</comment><comment><USER26> Those new Dell XPS Developer Edition laptops look very nice and streamline getting started - [http://www.dell.com/us/business/p/xps-13-linux/pd](http://www.dell.com/us/business/p/xps-13-linux/pd)

<comment><USER27> Does anyone have rough pricing on these? They're not available for web order and I'm trying to compare/contrast without having to deal with a sales rep hounding me.

</comment></comment><comment><USER28> I've been able to get Ubuntu working on my last few Dell laptops with few issues.

Windows is fine for development, with a decent console emulator ([http://gooseberrycreative.com/cmder/](http://gooseberrycreative.com/cmder/)) you'll be well away.

I wouldn't bother with the MBP: it's expensive for what it is, and has two horrible longevity problems - the power supply cables keep breaking and the retina screen is extremely easy to damage (kids fingers do it). The other problem is that there is currently no way to upgrade the SSD (this is why it's expensive - you're forced to upgrade just go get a decent size SSD).

<comment><USER29> The SSD can be upgraded if you're willing to do it yourself. Obviously it voids the warranty but it's doable and not that difficult.

<comment><USER28> The only drives available are taken from the top model rMBP, last time I looked it was over 1000 EUR for an upgrade.

If you buy an old (2013-Spring or earlier) model then it is upgradable.

</comment></comment></comment><comment><USER30> I would recommend getting one that allows you to swap out batteries. Apple doesn't make them anymore. Not sure if any PCs with that option are available.

As for getting linux to run on a laptop it is fairly easy to install and work on either a Macbook (as dual boot) or a PC. Regards price I think some models of Macbooks are now fairly comparable to PC laptops in price, especially if you buy around the 'Back to School' promotions in the US.

I like the trackpads on the Macbook and the keyboard is great too.

</comment><comment><USER31> I tend to get middle of the line machines - and run Linux in a VM under VirtualBox or the likes.

Works very well. You can run pretty much any Linux distribution you like. A lower cost machine means that you don't worry too much about upgrading.

I've had decent experience with consumer grade Dell laptops. Just be sure to get a lot of RAM because you are going to dedicate some of it to the VM.

</comment><comment><USER32> One of the best features that you can't get on a Macbook, which I think is required for anyone using their computer seriously, is Lenovo's extended warranty with accidental damage protection. I imagine others have similar offers, but Apple does not.

For around $180, I added 2 years of warranty with next day onsite repair, including damage caused by accident, to my girlfriend's new Yoga 2. She is in nursing school, and having her previous computer flake out during mid-terms was a huge source of stress.

Over the last 20 years I've had a lot of Thinkpads, and been quite happy with them. I take care of them, but I use them daily, and things happen. Usually it is just small plastics to replace, but when it's the motherboard or screen and most of the case, it is SO nice to have Lenovo do the repair for "free".

I've had good luck with Linux on the Thinkpads. I run exclusively Linux, so that has been a big deal. Currently I'm running a T530 with Ubuntu 14.04, and it works great. I suspend/resume a few times daily, and have uptimes of months.

Of course, you do get Superfish... I removed it from my girlfriend's Yoga 2 easily enough. Mine it doesn't matter because it never booted Windows in the first place...

<comment><USER33> Am I missing something? You can add Applecare for accidental damage protection, and you can bring it to any apple store. Is that not the same thing?

<comment><USER34> Applecare for notebooks does not cover accidental damage

</comment></comment></comment><comment><USER35> I recommend going with a mac so that your dev environment aligns with what most people are using nowadays.

I would then buy a $5/month VPS on digital ocean to deploy to so that you can run what you build in a 'production' environment and learn some devops while you are it.

</comment><comment><USER36> If you're comparing apples-to-apples (ha!) Macbooks really aren't all that much more expensive than their competition. Ever since Apple moved to unibody construction, their laptops have a build-quality that most laptops don't even come close to. The ones that do cost just as much, if not more. That's not the main reason I'd recommend a Mac though.

I've been using Linux in some form or another for just about as long as I've been using a computer. However, my Linux skills didn't really take off until I bought a Mac. OS X is Unix (literally, it's certified as a Unix OS). I found that when I was dual-booting Windows (this was before desktop virtualization), my primary cognitive investment was in learning to solve problems in the environment where I "lived". I used Windows most of the time, and Linux for things like Apache and an ftp server that I used to share files with friends. The problem was, I only learned Linux while I was using Linux.

When I switched to OS X, my environment became more consistent. OS X isn't Linux, but it shares a lot of similarities. If you buy a Mac, you'll have a bash shell in both of your environments. You'll use similar tools like package managers and command line utilities like grep, sed, and awk. You'll solve little day-to-day problems with bash scripts, and generally become more comfortable with the terminal. This will translate to skills that you can use when working with Linux servers.

The other thing I would recommend is that you use virtualization rather than dual boot. Dual booting has a high switching cost. You have to shut everything down and reboot the computer in order to switch environments. Given the power of laptop computers today, virtualization is a great option. Free virtualization software like VirtualBox gives you everything you need to spin up Linux virtual machines, which you can experiment with, and even trash, without consequence.

<comment><USER37> Except BSD find is not the same as GNU find, which is insanely frustrating :p. One day I will learn BSD find.

<comment><USER36> OS X is pretty much all BSD userland, because of BSD's more permissive licensing. OS X's bash version is ancient as well; also because of licensing, as far as I understand.

It's not so much that someone would learn exactly the same tools, but that there are more similarities than if they were switching between Windows and Linux.

<comment><USER37> I don't disagree with any of that. I was just saying that BSD find is the most plaguing deviation from the Linux bash on which I was brought up.

</comment></comment></comment></comment><comment><USER38> You're directly swapping cash for time. It'll take you longer to maintain a working Linux install than OS X over the life of your laptop.

</comment><comment><USER39> YMMV, but I've got Ubuntu running stably on a Dell Precision M3800. Very solid laptop if you're okay with the 15 in screen form factor.

</comment><comment><USER40> The last 5/6 times I've installed linux it's been pretty much flawless (wifi included) out of the box.

</comment><comment><USER41> Get a Windows laptop and run linux with Vagrant. No need for dual booting. Windows "just works" too.

<comment><USER37> I would not recommend Windows to someone who wants a "just works" solution. I'm told that I (and every Windows user I know) just have bad luck, but Windows 7+ still regularly BSOD on HP and Dell laptops, and they seem to be much more prone to viruses, etc.

And I know, Windows is beyond reproach, and BSODs are really the fault of OEMs, but I've never seen Linux kernel panic--not even on the same hardware Windows couldn't handle.

Not trying to start a flame war, but I really think it's misleading to say Windows "just works".

<comment><USER42> I've had way more problems with my MBP running Yosemite than my home built generic Windows 7 PC.

"Just works" is subjective so it shouldn't be a purchasing factor.

<comment><USER37> I literally make all of my important purchases on subjective evidence. Whenever I'm considering an important purchase, I scour the Internet for anecdotal information. I've found that such anecdotes in large quantity are more reliable (and informative) than most of the available objective information.

More relevant to this conversation, Macs have a wide (and presumably well- deserved) reputation for quality, and Windows PCs have a wide (and presumably well-deserved) reputation for cheapness (both in the quality and cost contexts). Sure, that consumer Dell you bought might boast better specs, but these objective metrics do a bad job about predicting things like product quality or overall satisfaction.

</comment></comment></comment></comment><comment><USER43> Buy a MacBook. With Windows/Linux machine you will learn much more about getting OS to work :)

</comment><comment><USER44> sorry to hijack this thread but i would like some input regarding a good windows development machine. I have used a macbook pro retina bootcamped to windows 7 (that i really love) but was wondering if going with a native windows machine would be better?

</comment><comment><USER45> If you are doing web dev it doesn't really matter what system your are running locally. Spin up a free micro at AWS and use that.

<comment><USER46> Not sure why you're being downvoted. You could develop from an iPad with iSSH on a Digital Ocean droplet if you wanted. Plenty of web dev is done from Windows. Plenty is done from OSX or Linux. Plenty is done from BSD. The host OS doesn't really matter for the web, that's the point of the web. Unless you're trying to learn ASP.NET, then... yeah it kind of matters.

</comment></comment><comment><USER47> Buy a macbook. If (for whatever reason) you don't like the OSX you can install Linux in less than 2 hours.

</comment><comment><USER48> Macbook+vagrant.

</comment><comment><USER49> Imho, if you're primary purpose is learning web dev, better get a Mac so you can focus on that rather than sidestepping on learning how to configure a linux machine. With a Mac, you don't have to look deep into the web to get things working.

Dont get me wrong, Linux is a terrific web dev OS.. just putting myself in the author's seemingly newbie shoes.

</comment><comment><USER50> [https://system76.com/](https://system76.com/)</comment>


Our little indie game just got featured on AppStore homepage in 119 Countries - <AUTHOR>

Today we released the version 4 of our game Dengen Chronicles (http://blog.dengenchronicles.com/post/109863709960/play-your-saga-with-the-awesome-dengen-4)
Apple featured us on AppStore homepage in 119 Countries.
It's simply amazing :)
Our server went down for so much traffic but... still amazing <3 <comment><USER2> How did you manage to trigger getting featured?</comment>


Apple Ads Based on Your Credit Balance Pushes Privacy Beyond the Limit - <AUTHOR> http://www.forbes.com/sites/theopriestley/2015/07/18/apple-ads-based-on-your-credit-balance-pushes-privacy-beyond-the-limit/

<comment><USER2> To be fair, a lot of these corporations patent all this nonsense just because the patent system lets them and allows them bargaining chips to be used in deals and battles.

Regardless, I never believe CEOs of big companies will keep their word. Its a shame apple could loose more by patenting these silly things than they could gain. This could be a good candidate for EFF's silly patent of the month.</comment>


Ask HN: I prefer to write out my code with pen and paper. Am I wrong? - <AUTHOR> I  consider myself a fairly decent self-taught programmer (Ruby, Rails, Javascript)
This has always been a pattern with me but lately I discovered that I write ruby code more and more on paper and transcribe to IDE. It works for me as I think better with pencil in hand.
I have seen someone refer to this practice as 'regressive' on HN
I wonder if this is a 'bad' habit I should unlearn. Is it something I should avoid at all cost? Or is it irrelevant ? <comment><USER2> Funny enough is that people were mocking the concept when it was being done in the 1960's by Hansen et al. Given what they produced, maybe the critics should've thought there might be some merit to the idea.

[http://brinch-hansen.net/papers/](http://brinch-hansen.net/papers/)

In "The invention of concurrent programming," Hansen writes: "...Alan Perlis noticed that Regnecentralen's compiler group discussed programming problems by writing Algol 60 statements on a blackboard. This was unusual at a time when systems programs were still being written in assembly language."

So, they thought it was weird they weren't just hammering out ASM instead of high-level code. Some call you "regressive" for using pen-and-paper instead of IDE's. The prior work improved the compiler group's effectiveness at getting code correct. If you're similarly benefiting, then keep it up. I'd only say change if it's hurting your productivity in a project or professional role where you want higher productivity. If it's just fun or not fast paced, have at it.

</comment><comment><USER3> I am a spare time coder. I spend a lot of my time standing in kitchens and dishrooms, and when time allows I write pseudocode on paper- or real code if I think there's something in the detail that I might not remember the next time. But I find the best use for me is pseudocode and higher level stuff gets into the notebook, then when I get the time to sit and code, I know what I'm trying to do.

</comment><comment><USER4> > I have seen someone refer to this practice as 'regressive'

Does that matter?

> Is it something I should avoid at all cost?

Really, if it is a productive method for you, why would you be concerned about this issue?

I have a question. Do you use squared paper and represent the indentation using the squares, and fixed-space using one square for each letter.

<comment><AUTHOR> Thanks. I guess I worry because when you have no authorities to guide you it is easy to adopt bad habits.

No I use plain paper, it never occurred to me to use squared; :). I might give it a try

</comment></comment><comment><USER5> It is a way to do it.

Today I really like tools like PyCharm, IntelliJ idea that are deeply interactive.

The people who taught me how to code learned how to code putting together decks of punch cards.

</comment><comment><USER6> No. You probably kill it during interviews that ask for handwritten code.

<comment><USER2> Whiteboard interviews. Just practice handwritten code on whiteboards on occasion, too, so muscle memory is there. :)

<comment><USER6> The font is just wrong, no matter how hard I practice :/

</comment></comment></comment><comment><USER7> I'm pretty sure Paul Lutus, the author of Apple Writer ($$$), used to handwrite code from his cottage in Oregon and mail it to Apple to be implemented

If it worked for him then surely it could work for you ^.^</comment>


Ask HN: How to test if a candidate knows a programming language in an interview? - <AUTHOR>

I am about to start interviewing candidates for a position that involves expanding an in-house analytics platform written by a developer who is leaving the company.  The code is well-documented and under source control, the build process is very straightforward, deployments are not complex, and there is an extensive data dictionary that documents all aspects of the database.  Everything has been written and documented solely by the developer who is leaving, and this developer will be one member of the team who is interviewing potential candidates.
Everything is written in C# and the .NET Framework, and my team and I are struggling with the question of how to assess a candidate's understanding of the language and framework.  While someone could list vast industry experience on their resume, this isn't a guarantee that s/he can understand and expand upon the code that is already written.  I am looking for something a little more in-depth than a typical FizzBuzz test, but also want a more interactive interview than simply quizzing the candidate on the language features most-used in the codebase.  One of my colleagues had an idea to provide the candidate with some example code and have a discussion about that, including how that code would fit into a larger application and what aspects of the code the candidate would change, but writing a fresh piece of code is time consuming, and we don't want to spend a lot of time explaining non-programming concepts if the candidates don't have a solid knowledge of our domain (finance).
Does anyone have any suggestions? <comment><USER2> [http://sockpuppet.org/blog/2015/03/06/the-hiring- post/](http://sockpuppet.org/blog/2015/03/06/the-hiring-post/)

And the HN discussion

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

<comment><USER3> Immediately came to my mind, too, because I thought it was brilliant.

</comment></comment><comment><USER4> I think that the closer you can simulate relaxed day to day coding, the more representative the results will be.

White board questions can be pretty stressful and probably not an accurate reflection of a candidates true capabilities. I.e. someone with a lot of practice interviewing may do great and a great coder may choke. Think about it; how many times have you slapped your forehead as you drove away from an interview because of something you absolutely knew the day before but suddenly couldn't remember during the interview?

My fantasy interview would be to pair program on a small project that neither of us had seen before. This would seem to be a lot less stressful than the normal barrage of test questions.

</comment><comment><USER5> draw a circle with C#

<comment><USER6> Too simple:

      class DrawACircle
      {
        static void Main(string[] args)
        {
            System.Console.WriteLine("\u25cb");
        }
      }</comment></comment>


A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux (2005) - <AUTHOR> http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html <comment><USER2> "Secondly, it turns out that, contrary to all my expectations, the executable bit can be dropped from the p_flags field. It turns out that the readable and executable bits are redundant: either one will imply the other."

Wonder if this will still work with processors that use NX-bits, or if that is set outside the ELF header.

Can't entirely tell since there seems to be some kind of backwards compatibility hack on x86 for legacy apps that might have been unaware of the potential for NX: [https://lwn.net/Articles/94068/](https://lwn.net/Articles/94068/)

</comment><comment><USER3> I read this article and enjoyed it so I guess my geek level is pretty high. But the author? He's a completely different level of geek.

Being able to write about a subject like this and keep it entertaining. Genius.

</comment><comment><USER4> That article inspired me to learn about rolling executables by hand for Linux, Mac and Windows: [http://www.hanshq.net/making- executables.html](http://www.hanshq.net/making-executables.html)

</comment><comment> SPHINXc-- Reminds me of my C-- days. Awesome article.

</comment><comment><USER5> That was a good laugh! Now back to work..</comment>


Do you use VPN for security? - <AUTHOR>

Just read this CNET article discussing how secure ethernet connections in public networks is.  The author recommends some paid VPN services. Do you use VPN? Which one?  http://news.cnet.com/8301-13554_3-9854369-33.html <comment><USER2> PersonalVPN from Witopia has served me well for almost two years. I'd been meaning to get a VPN for a while for security reasons (I'd been using SSH port forwarding up to that point) but I really wanted to watch Moving Wallpaper on ITV and needed an IP address in the UK. Nowadays, I don't think I'll use any other VPN service unless I end up installing OpenVPN on one of my servers.

<http://witopia.org/index.php/products/>

When I originally chose Witopia, it cost about as much as the others I considered. The last I checked, though, Witopia had something like 60 endpoints in 20 countries and actually costs less than other VPN providers (StrongVPN, mentioned in another comment, offers 4 endpoints in 3 countries, and costs about $10 more).

They also started including Viscocity (a VPN client similar to Tunnelblick) as part of the package, and it comes preconfigured with all their VPN connections. I had actually purchased Viscocity separately and think it's a great VPN client for Mac OS X.

<http://www.thesparklabs.com/viscosity/>

I don't know if they bundle a VPN client for Windows or Linux.

</comment><comment><USER3> Absolutely. I have many colo-ed servers so I put OpenVPN server on a few of them. My MacBook has tunnelblick with the "redirect-gateway def1" directive in the config. This automatically redirects all outbound traffic over the VPN, no matter how the computer gets its internet (wifi, wired, tether etc)

Not only is it secure, bur wherever I am in the world, my IP is in San Jose. No worries about pandora or netflix not working.

The people I work with were so impressed that my netflix worked while I was in Australia, that they all wanted on my server too. The security was just lagniappe.

</comment><comment><USER4> Yup, I have a strongswan IPSEC rig with two-factor authentication that I use for a private darknet, and a second account on the same box that lets me access the Internet.

I also use VyprVPN at home for when I want to watch something restricted to the US. I still have to configure my VPN client to kick in on specific IP ranges automatically so that I can get BBC iPlayer and Hulu in a more wife- friendly manner.

</comment><comment><USER5> Yup, the service I use is strongvpn.com. Had them for about a year, no complaints.

</comment><comment><USER6> `ssh -D 8080 email@example.com`

then configure your computer to use socks proxy at localhost:8080</comment>


Using machine learning to recreate photorealistic portraits of Roman Emperors - <AUTHOR> https://voshart.com/ROMAN-EMPEROR-PROJECT <comment><USER2> This is undoubtedly cool, but I worry quite a lot about people who aren't educated about ML interpreting these "historical renditions" as a "ground truth forensic". Rendering fossilized animals and coloring black and white photographs is also cool, but when you start to render the bone structure and "caucasian-ness" of statues, it starts to veer into some uncomfortable racial and ethnographic territory.

What data and models were used to synthesize these predictions?

<comment><USER3> You mention black and white colorization and that was my first thought upon seeing this. The statues are already super "photo-realistic" so I'm guessing this was a pretty similar process.

On a completely different note, I am not sure what you're getting at with the racial stuff. Like what are you suggesting? That perhaps some of the emperors weren't totally Caucasian but rendering them as such from the best available evidence is somehow racist? In my humble opinion, trying to find racial undertones in every tangential thing is a distraction from the real conversations that we should be having. And there's a real possibility of alienating people that are otherwise sympathetic to the cause.

<comment><USER4> These images were rendered with a "white" bias. Facial features is one thing, but skin color is clearly not conveyed by statues, yet a clear choice was made here.

<comment><USER5> Given the preponderance of blonde emperors, it would be reasonable to assume emperors in general were rather light-skinned.

<comment><USER4> Yet these renderings were not made with _that_ choice.

<comment><USER6> There are a fair few of them depicted as what I'd consider blonde. Augustus particularly.

<comment><USER7> Augustus was described as "subflavum" which is often translated as "blonde" but is more likely to mean "light brown".

Sadly this _is_ an area which is indeed full of bias.

<comment><USER6> Is that not what 'blonde' generally is in adults? An image search for 'blonde man' returns men I'd consider 'blonde' which hair which seems objectively light brown (except those with obviously bleached highlights.)

<comment><USER7> I wouldn't know.

The color of Augustus here[0] is definitely blonde for me, bordering on platinum, while what I meant is that it might as well have been darker, i.e. [1] which I would call "light chestnut".

[0] [https://voshart.com/ROMAN-EMPEROR-PROJECT](https://voshart.com/ROMAN- EMPEROR-PROJECT) [1] [https://external- content.duckduckgo.com/iu/?u=https%3A%2F%2F...](https://external- content.duckduckgo.com/iu/?u=https%3A%2F%2Fae01.alicdn.com%2Fkf%2FHTB1Jee4LpXXXXaXXFXXq6xXFXXX4%2F2016-New- Short-Wavy-Light-Brown-Color-Glamorous-Fashion-Full-Synthetic-Hair-Men- Wigs.jpg_640x640.jpg&f=1&nofb=1)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Unlike other people I find the portraits surprisingly diverse, I expected to see very white faces considering most "realistic" representations are from white actors and white statues erase features. Not a perfect project but interesting.

<comment><USER6> Yeah a lot of those guys look pretty swarthy (e.g. like me.) I can't say I expected that.

Caligula looks as I expected him though.

</comment></comment><comment><USER9> A lot of people seem to be taking the term 'photorealistic' a little bit too literally, when we say video games have photorealistic graphics, people don't assume they are literally photos of things.

These are just 3d models of statues created to look as lifelike as a photo. Nothing more nothing less.

They're no more accurate or not than the original statues. Unless we were to go back in time and physically see these people there's really no way to tell either way.

It's just an interesting interpretation generated by some algorithms and a large sampling of data. It is what it is.

<comment><USER10> > They're no more accurate or not than the original statues. Unless we were to > go back in time and physically see these people there's really no way to > tell either way.

That's why the author uses multiple historical descriptions of the looks of each emperor. So he can make the pictures more accurate than the original statues.

He also uses paintings and other statues for comparison.

</comment></comment><comment><USER11> This is fantastic. Some of the reconstructions look convincingly italian. There is a slight bias towards making their faces more square than they are in statues (and probably RL too), e.g. Caligula.

It's interesting to think that these emperors would find the obsession with exact skin tones in the comments here rather weird.

Also, with great power comes a brutal way to die.

<comment><USER12> Fairly regularly at the hands of your own bodyguards, going by some of the later entries.

</comment></comment><comment><USER13> What's the consensus on whether Roman statues were intended to be realistic, or perhaps were idealizations, or even whether the statue makers had the ability to truly capture realistic features rather than work to a "type"?

"Lely's painting style was, as was usual at the time, intended to flatter the sitter. Royalty in particular expected portraits to show them in the best possible light, if not to be outright fanciful. Lely's painting of Charles II shows what was expected of a painting of a head of state in the 17th century. It emphasizes the shapely royal calves - a prized fashion feature at that time."

[https://www.phrases.org.uk/meanings/warts-and- all.html](https://www.phrases.org.uk/meanings/warts-and-all.html)

<comment><USER14> There's not _one_ Roman style and there were wild variations across different eras. I'll skip the archaic and early Republican stuff because it's either too rough or derivative to be called specifically « Roman ».

Late Republican busts are assumed to be _very_ realistic. My understanding is that they're largely derived from mortuary masks made for the cult of ancestors that was prevalent at the time. It's obviously impossible to say how accurate they were without direct comparison to remains, but busts from that era show aging and « ugly » traits prominently.

The Imperial era with its state-sponsored cult of personality started the trend towards idealism. Defects were smoothed out, people represented at their best and efforts were made to have them impersonate attitudes and virtues. The busts of the _Pax Romana_ remain highly individualized and it's easy to tell a character from another, even though they always looks somewhat too good.

It started getting _weird_ with the Third Century Crisis, the Empire breaking up and the Tetrarchy. Portraiture became abstracted to the point it was more about representing the office that the person occupying it. Look up the sculpture of the Tetrarchs that's in Venice or the Colossus of Constantine, they're well known examples.

Being a good fit for Christianity, that's the style that continued into the Middle Ages, and the reason why people assume that artists became terrible in « the Dark Ages ».

</comment></comment><comment><USER15> Noting down a weird phenomenon: I'm a huge admirer of Marcus Aurelius. His _Meditations_ is sitting on the night stand next to me as I type this. But seeing him rendered this way somehow diminished the almost super-human image of him I had built up in my mind. He's just a man here.

<comment><USER16> As you probably know, Marcus Aurelius would not have wanted you to think of him as a super-human! He writes a lot about his fallibility and his attempt to live a stoic life despite his failures.

<comment><USER15> In my mind, that's what makes him "super-human" \-- his ability to reflect upon himself is a skill that most average human beings don't possess.

</comment></comment></comment><comment><USER17> These days we mostly make statues of football players and coaches (both real football and metric football). I guess these are as close as we get to emperors.

But despite modern techniques for capturing a 3D image, they rarely look like the living counterparts. Nick Sabens statue looks more like Andy Griffith. Gary Patterson's statue flatters by shaving off several pounds. Does anyone think the Rocky Balboa statue looks like Stallone?

Is there any reason to think that the Roman emperors statues are any more true to life? Even if I was the most talented sculpture in the world, I know that if I was commissioned to do a statue of a still-living Caligula I wouldn't include any warts.

<comment><USER6> > _Does anyone think the Rocky Balboa statue looks like Stallone?_

(This is the only one of those I've seen in person.)

I do actually. It's obviously not a perfect laser scan of his head, but I think it's quite clearly a depiction of the man, including the characteristic harsh lopsided nature of his face (which apparently is the result of nerve damage he sustained during birth.) That aspect of the statue is perhaps underplayed a bit, maybe out of respect, but I do think it's at least a recognizable reasonable depiction of him.

</comment></comment><comment><USER18> This is super cool, but I have noticed blue eyes and hair, as that gene was extremely rare at that time, what kind of referees have you used?

And one more thing I want to add, each time I see coloring of WW1 or WW2 or this one, suddenly that history becomes not so distant and those people do not look so technologically backward. On that note somehow war atrocities in my mind become unreal...

<comment><USER19> According to one Quora answer [1], 10% of Italians have naturally blond hair and 30% of them have blue eyes. I don't see why Italians at that time should look much different to Italians today.

[1] - [https://www.quora.com/Are-blonde-hair-and-blue-eyes-quite- co...](https://www.quora.com/Are-blonde-hair-and-blue-eyes-quite-common-in- Italy)

<comment><USER20> Maybe because in the several centuries in between some exchanges (mixed marriages) with the rest of Europe, including the northern countries where blue eyes and blond hair is more common took place?

</comment></comment></comment><comment><USER21> Here's what's said about Caligula[1]:

> hair and beard worn long for a time after death of his sister.

Humans are curious beings. If my memory serves right his sister died AFTER Caligula went nuts so at this point in his life he had already gone murderous after recovering from an almost fatal sickness (or poisoned) but when his sister died of fever his murderous psycho heart must have felt so broken (or perhaps felt a bit nihilist) he grew full beard. Maybe there's a human history of letting beards grow when shit happens.

[1] [https://medium.com/@voshart/appearance-of-the-principate- pt-...](https://medium.com/@voshart/appearance-of-the-principate-pt-i- efa3c759d2b6)

<comment><USER11> growing a beard (and hair) to honour the dead is still practiced in southern greece at least

</comment></comment><comment><USER22> In college we had a professor who went over some of the things these guys did in their spare time. This article sums it up a bit. Really helps to put a face to the name... =P

[https://io9.gizmodo.com/the-11-most-depraved-things-the- roma...](https://io9.gizmodo.com/the-11-most-depraved-things-the-roman- emperors-ever-di-1479671517)

</comment><comment><USER23> Vespasian looks uncomfortably like Lyndon Johnson.

</comment><comment><USER24> I bet those emperors would be quite pleased to know that millions see their faces two thousand years later.

</comment><comment><USER25> I find Tiberius, Caligula, Claudius and Nero unconvincing, "too normal" to fit the troubled characters that I first knew of watching I, Claudius.

Maybe I'm biased, but I feeel the difference even in the images that the reconstructions are based of.

Augustus seems very well done.

<comment><USER26> I don't know, when I saw Caligula, I thought "Wow, that's exactly how I imagined he would look", like he had that same immature-yet-assholish look of Joffrey in Game of Thrones.

<comment><USER25> The generated face seems a little wider. Also the eyes of all of them seem very calm. I expected more on the wild side.

</comment></comment></comment><comment><USER27> Wasn't Gaius Julius Caesar [1] the first emperor? How come he is missing?

[1] [https://en.wikipedia.org/wiki/Julius_Caesar](https://en.wikipedia.org/wiki/Julius_Caesar)

<comment><USER28> Caesar died before the Roman empire was established. His adopted son Augustus recreated the republic into an empire and is the first emperor.

</comment></comment><comment><USER29> I don't know, Gordian II's bust looks more like Pete Townsend than the ML version would indicate. Maybe it's the eye color.

</comment><comment><USER30> Most of the later emperors are listed there as "killed". Why be an emperor if you have an 80% chance of being murdered?

<comment><USER31> Because for a time, you get to be _emperor of Rome_. We still know their names, and their faces, thousands of years past. 80% seems decent odds for that kind of immortal fame.

<comment><USER12> What they knew at the time is that they would be gods.

They also knew that they would become almost unimaginably rich.

</comment></comment></comment><comment><USER32> I hope you're gonna do the Dominate too. Would love to get a look at Diocletian or Constantine.

</comment><comment><USER33> Aurelius looks odd, most of his statues have him with much curlier hair.

</comment><comment><USER34> Marcus Aurelius looks like a chill dude. Tallest to shortest?

</comment><comment><USER35> I find it interesting how much some of them resemble current famous people (for example, Augustus who resembles Putin with more hair). I wonder how much of that has to do with celebrities possibly being more represented in the training data?

<comment><USER7> don't be fooled: this is a photorealistic rendering of statues and coins. We have pretty precise images of Augustus, except for colors.

[https://en.wikipedia.org/wiki/Augustus#/media/File:Statue- Au...](https://en.wikipedia.org/wiki/Augustus#/media/File:Statue-Augustus.jpg)

<comment><USER36> > We have pretty precise images of Augustus, except for colors.

What? We have many statues of Augustus, but they are known not to be modeled on Augustus. Those are images of some other random guy.

<comment><USER7> what I mean is: it's not some ml software that came up with a putinesque visage, it's just a recoloring of the statue, which already had that nose, oval cheekbones etc.

</comment></comment></comment></comment><comment><USER37> Too symmetric features in most cases to be true...imho

<comment><USER38> Yeah - the statues are not necessarily accurate depictions to begin with.

<comment><USER39> You would probably expect the artist to idealise the features to a degree for their health's sake. A Christiano Ronaldo statue would not go down well with any that had delusions of being a deity.

<comment><USER40> As the creator I must say there is a lot of misunderstanding in all the comments above but people are making many valid points. On a side-note you might be interested to see that I have tried to reconstruct that horrible Ronaldo statue. [https://twitter.com/dvoshart/status/1287888497286750208](https://twitter.com/dvoshart/status/1287888497286750208)

<comment><USER39> There's a ton of memes where people have skewed photos to look like the statue that are hideously amusing.

The statue should have looked like what you produced: I can only guess bronze was hard to work with or redo when it goes horribly wrong.

</comment></comment></comment></comment></comment><comment><USER41> Is it just me or does Augustus look a lot like Vladimir Putin?

<comment><USER6> I see it too; I think they both share a weak chin, long cheeks, and light hair/eyes.

</comment></comment><comment><USER42> Interesting that Nero and Caligula resemble, more than anything else, frat boys.

<comment><USER12> They were young, well nourished, and not hugely into keeping fit.</comment></comment>


My Approach as Fullstack Working with Microservices - <AUTHOR> https://repoflow.com/blog/fullstack-dev/eWRhpR2.html <comment><AUTHOR> The link is about the approach and the tools that I use as Fullstack(frontend/backend) working with stateless microservices in my local env.

I am using NodeJS/GraphQL/React(SSR) for my backend/frontend services.

The example is live, I version everything that goes to that cluster and it's opensource, this might be helpful as reference if you are using the same stack in containers.

I am using Kubernetes in the example, but the same approach apply to docker- compose, docker swarm, etc...

Let me know any feedback or comment. if you want to be in contact don't hesitate to reach out to email@example.com</comment>


Code Generation from the AST in Go - <AUTHOR> http://blog.gopheracademy.com/code-generation-from-the-ast/ <comment><USER2> This is super cool work from Ian here.

Go is quickly engendering a renaissance in command line programs and other services that run in hostile environments. I talked about this in my GopherCon 2014 talk: if you want to build quality code and deploy it into hostile environments, you need good crash reporting. The conversion rate from crash -> crash report is abysmal without automation, and it's critical to close your quality feedback loop.

Crash-reporting is hard. Cross platform crash-reporting is harder. Cross- platform crash-reporting for unsafe languages is harderer. Terrifyingly so:

[https://code.google.com/p/google- breakpad/wiki/ClientDesign#...](https://code.google.com/p/google- breakpad/wiki/ClientDesign#Exception_Basics)

Making this so easy that it's just an extra step in your build process is a huge step forward. That it can work even on dependency code is hugely important.

That's not to say it's without its tradefoffs, but I think this approach has the best ratio of value to effort.

I'm looking forward to experimenting with this in deployed code to help me catch bugs in the wild.

</comment><comment><USER3> "Go as a language is very opinionated... Go engineers are an anti-magic crowd."

Great so far. But why does this always end up as....

"This tool... auto-generates the code for you"

<comment><USER4> My thought exactly. And now Go even has a code generator tool bundled with it ... I don't understand Go designers. This goes against everything they said Go was. But 2 problems illustrate in my opinion the Go team mindset.

People want a package manager, the Go team says vendor deps.Well except vendoring has nothing to do with managing lib dependencies.So there will be multiple incompatible package managers.

People want generics(Go has generics,you just can't define your own generics) , the Go team answers use "go generate", so people come up with their own "generate generics from Go source files" tools which of course use incompatible systems.

People want a spec for struct tags, the Go team says no.Why the hell would you want to use struct tags if different libraries parse them different ways ? What if a user wants to use 2 libs that use struct tags in an incompatible way?

So basically the Go team isn't interested in 3rd party input,which is a choice I respect,even if I don't agree.

the reason of all this is that the Go team isn't interested in adding new features to the language, period, so they could care less about user input,which IMHO will lead to language FRAGMENTATION eventually. (source : changelog podcast : [https://thechangelog.com/148/](https://thechangelog.com/148/) )

It's terrible because Go is this close to be the language most developers would need and has great concurrency primitives unlike D or others.

<comment><USER5> Is there anything preventing a fork of Go?

<comment><USER6> A tremendous amount of human labour?

</comment></comment></comment></comment><comment><USER7> [http://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule](http://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule)

Writing code generators, inventing the wheel over and over again.

</comment><comment><USER8> Code generation in Go is so fantastic. I made this in one late evening: [https://github.com/bouk/go-faster](https://github.com/bouk/go-faster)

</comment><comment><USER9> > Maybe like me you use Fresh

> and you have a OCD of hitting save every 2-3 seconds as you are thinking

Please stop with this "OCD" bullshit.

</comment><comment><USER10> It's kind of telling that they feel that they first need to tell Go developers what an AST is ... PHP redux?</comment>


Ask HN: Starlink's 60 test sats. Thoughts on impact for China? - <AUTHOR> Exciting day for Starlink followers.
What do you think the impact will be on China? Especially for expats who live their lives through VPNs.
For the un-initiated: https://techcrunch.com/2019/05/15/watch-spacexs-60-satellite-starlink-launch-tonight-right-here/ <comment><USER2> Starlink won't bypass any national firewalls. If you're in China, your traffic will come down to a gateway inside China so it will still have to go through the Great Firewall. Same for every other country. If Starlink doesn't work this way it will be outright banned.

<comment><AUTHOR> I was thinking more of the smuggling of any base stations.

As an expat, that would be a very nice way of getting around the firewall.</comment></comment>


The social intelligence hypothesis  - <AUTHOR> http://www.abc.net.au/rn/scienceshow/stories/2007/1846476.htm#transcript <comment><AUTHOR> Basic science explanation of the 'social intelligence hypothesis' (http://en.wikipedia.org/wiki/Machiavellian_intelligence) ~ theorises why human brains increased in size? Could it be to understand, get along with each other. Why is social intelligence so important in groups?

It's a good read because it may have implications/insights for the social software explosion going on written/designed by programmers/hackers with slightly *warped* (in a good way) social intelligence.</comment>