HNHacker News
TopNewBestAskShowJobs

cam-

72 karma · joined October 28, 2010

submissionscomments
cam-··on Write libraries instead of services, where possible
One issue I have seen in distributed systems is where a library is on another customer/teams hosts and brings them down due to a bug in the library. The other customer/team has no way to fix the bug and is dependent on getting the attention of the company/team who vended the lib in the first place. One I remember is where a library had a bug which created 0 byte files and exhausted the inodes causing an outage.

Cloud systems have become cheap enough and flexible enough that protecting your customers by not putting your bugs on their hosts is not as big as a lift as it used to be when you had buy bare metal servers or explicit VMs.

cam-··on Write libraries instead of services, where possible
Counter argument, don't deploy your code on other people's hosts.
cam-··on Was there PTSD in the ancient or medieval world?
The first hysterical blindness was documented by Herodotus in the battle of Marathon, "Epizelos the son of Cuphagoras, while fighting in the close combat and proving himself a good man, was deprived of the sight of his eyes, neither having received a blow in any part of his body nor having been hit with a missile, and for the rest of his life from this time he continued to be blind"
cam-··on Carmakers fret their industry is on the brink of huge disruption
My car tracks engine hours and rpm over the lifetime of the car. It is in the console with a couple of clicks.
cam-··on JavaScript Fatigue
Java went through this in the late 1990s and early aughts. Now everyone pretty much uses Spring.
cam-··on Why Japanese leaders attacked Pearl Harbor
The US would have been able to replace their aircraft carrier losses pretty quickly, far quicker than the Japanese. By the end of the war the US had close to thirty carriers IIRC.
cam-··on Coding is boring, unless
Engineers always under estimate the amount of business logic in an existing application. This is one reason my mainframe apps are so hard to replace, they often have 30 years of business logic built into them.
cam-··on Windows game developer about porting to and using OS X
There is the (internet) story of an engineer that could only log in when he was sitting down. Standing up he could not login.

The problem was he had cleaned his keyboard a couple of days earlier and put some keys back wrong. When he was sitting down he logged in by touch typing. Standing up he looked at his keyboard when he typed.

cam-··on Atlassian files for IPO
It is no uncommon for Australians to start their world working tour in London/UK either.
cam-··on Static Website Generators Are the Next Big Thing
I wrote a maven plugin to put all the markdown files together. I use iA Writer as the UI.
cam-··on An extinct cave lion, at least 10,000 years old
We could always exterminate them again and make them extinct. Would be a very human thing to do.
cam-··on California Lawn Watering Economics
We have a xeriscaped yard. Basically the only cost is hitting it with some water when it is 110F+ and cleaning up some brush.
cam-··on Ask HN: Discuss burnout with boss?
Kanban is more relaxed than scrum.

When the teams I worked with switched to kanban, they liked that they didn't have the end of scrum deadline, they also disliked that they didn't have the ten day deadline anymore as they felt the arbitrary deadline helped to push them a little.

That being said, kanban is better, it is more relaxed and feature feedback is faster than scrum.

cam-··on Ask HN: Discuss burnout with boss?
More common than you think in my experience.
cam-··on How Can We Achieve Age Diversity in Silicon Valley?
Whiteboarding is pretty terrible for interviewing developers, the only time they whiteboard is when interviewing.
cam-··on Keeping Mars Earth-free
We didn't keep continents Europe/Asia free when we populated them. Horses, sheep, wheat, etc to the Americas and Australia were important advances.

I bet when we start populating other worlds, they will become Terran for the simple reason that the ecosystem around us is great for supporting us.

cam-··on The Gutless Cutlass: Pilots had good reason to fear the F7U
Pretty awesome how the Commander of the Carrier can order a type of aircraft off the ship for safety reasons.
cam-··on JustFab: The Billion Dollar Startup with a Dark Past
Yeh there is an account updater service you can integrate with. So if you change cards it will expose that through the service and a company's billing service can continue unperturbed even if you change cards and credit card numbers.
cam-··on Better Java – Resources for Writing Modern Java
Dependency injection is brilliant for testing. Prior to DI you often has to have two constructors, one for prod, one for testing. DI took that away.
cam-··on Better Java – Resources for Writing Modern Java
JMock at least blows up if you don't mock something. Powermock and Mockito will let it pass. It is a shame JMock's API is so wordy.
cam-··on Better Java – Resources for Writing Modern Java
For DTOs we don't user mutators. Just public member variables. It is the only way to keep business logic out of them. That being said, I wish Java has some object/struct syntactic sugar like Javascript Object Literals. They are so powerful.
cam-··on Better Java – Resources for Writing Modern Java
A NullPointerException is unchecked as well. I would say about 40% of our code is checking for null to avoid NPEs especially with APIs. You have to protect yourself and cannot take nothing for granted.
cam-··on How we ended up with microservices
Software suffers from fashion. If you look at the core java libraries they are a history of software engineering fashion.

I would argue that fashion drives most of our choices. We are not immune to it, if anything we are about the same level as teenagers IMO. Tech for whatever reason is very susceptible to fashion.

cam-··on Computer Sciences Courses That Don't Exist, but Should
In real world business logic and modeling you have to work really hard to make it fit into an OO paradigm. It also gets hard to manage long term as your data structures kind of get stuck with all the restrictions that OO allows you to make. Javascript object literals are fantastic as they make data transfer objects simple, fast and not polluted by business logic. Once you get used to passing around DTOs that way then a functional style of programming becomes more useful. For the most part programming is getting data from one domain data model and then converting to another domain data model, OO doesn't really help there, and if anything is a hindrance. Unfortunately software engineers love to abstract to the nth degree so sometimes you get stuck with tight OO models of DTOs and transformation layers.
cam-··on How we ended up with microservices
Fashion.
cam-··on An Explanation of Cricket (2009)
It used to be on tea towels that you could buy for a dollar when you were on vacation in Foster-Tuncurry.
cam-··on How JetBrains Lost Years of Customer Loyalty in Just a Few Hours
Intellij is one of the few IDEs that it is worth paying for.
cam-··on Lifelock Once Again Failed at Its One Job: Protecting Data
I worked at Lifelock. When Zappos had a breach in about 2010(?) my account was one of the ones that gat caught up in that. So myself and another engineer went over the Lifelock systems of the time and upgraded all the security related to it.

We created a pluggable EJB library that could be used by any product inside the company. We worked with infosec and the architect at the time to make sure we used the best encryption mechanism, that keys were on remote locations and that keys were encrypted.

I probably shouldn't put this info on the internet but I was proud of that project as engineering did it off their own bat to increase data security. Basically because we didn't want to be Zappos.

It is possible that companies Lifelock have bought since then or third party apps are not up to par. But the engineering team in Tempe worked hard to make sure PII/PCI data was protected.

cam-··on Tuning Java Servers (2014)
Agree, you want the GC sipping constantly, not gulping, or embarrassingly pulling up its pants.
cam-··on Language Trends on GitHub
Java is great for middleware and backend systems.
Page 1 of 2Next →