Ask HN: What set your hair on fire in 2012?
I'm curious to know what serious technological / IT problems you encountered in 2012. What things made you work late at night, scrambling for a solution? EC2 outages did it for some people. What else? What failed unexpectedly? For what problems do you still not have a solution, and just hope for the best?
57 comments
[ 2.7 ms ] story [ 111 ms ] threadML for the working programmer - started down this road as I wanted to make sure I really "get" what is being expounded upon by haskell/shen etc.
shen/klambda - every time I dive into this bottomless pool I come back up with a new insight to how programming could/will someday look.
amber smalltalk - close to my ideal collaborative programming environment - the new helios ide and compiler progress bring it even closer!
edn - seriously I don't think enough hype has been made about what edn can bring to the table, specifically w/ "tagged" data. Stayed up one night and wrote jsedn so I could start to use edn in projects.
datomic - There are no silver bullets in database programming, but datomic is damn close. Trying to wrap my head around the specifics culminated in prototyping datomicism, my smalltalk esque environment for working w/ datomic.
minecraft - which has led to working on a full blown 2d/3d schematic system (stay tuned for http://schematic.io) and a rediscovery of "primitive" computer geometry (namely "geometric principles and procedures for computer graphic applications" by Sylvan H. Chasen). This will hopefully serve as a nice open source example of how to meld coffeescript/backbone/datomic and a edn based DSL for helping kids "code by osmosis" as it follows the bret victor principle of showing the code change as the objects are manipulated (and vice versa).
What sets my hair on fire is coupling UX with BDD and the rapid development chain of realtime UX and programming. Having UX write the UI cucumber scenarios helps a lot. But this is for pet projects. I'd really like to see the world of business accept and start trying out using the UX process as a precursor to BDD and allowing devs to work more freely on what they are good at with a constant pump of UX feeding them the things they don't want to think about.
Right now this works for "block" structures e.g. there is not yet the ability to place redstone wires/circuits - but that is coming soon. The use case there being to increase the level of complexity and radness users can build w/o having to "frame by frame" a youtube video on building complex piston doors!
There's nothing like being paged 10 times an hour at 11pm to get you motivated to get things fixed.
I suspect there still is a small pager business out there somewhere, perhaps for doctors and adhering to some legacy hippa rules, but they must be sparse.
I have messages go to SMS as well, but when the servers are down, damn it, I need to know.
And given our issues lately with our phone carrier silently blocking our messages as spam, the thought of going back to an old school pager for reliability is still there.
Reading Kalzumeus and other entrepreneurs opened the door a little. Lean startup pushed me along the way as well.
But these are the things that continue to keep me up at night year after year:
Now, things I did not say:
* "Put more money into our education system as it is."
We are in need of vast improvement, and we should be investing time and money towards innovation and improvement.
* "Stop funding and/or stop using our existing educational system."
Yes, there are many, many flaws, but our educational systems have improved our society a great deal, and are fantastic avenues and methods of distribution for educational innovation.
* "Edtech is the best industry!"
I'm still unsold on the edtech space as a way of improving education. Particularly, I fear that our existing models for business, when applied to education, will exclude the vital underpriveleged demographic who have some of the most potential for growth. Aditionally, much of the edtech I see used in schools does little to actually aid student learning—but it certainly does look good on a quarterly newsletter where administrators list what fantastic things they're doing for their school. Whoever figures out how to make equitable, effective educational technology that turns a profit will be one of the preeminent innovators of our time.
(Note: If you believe you or your company are doing this, I have Ruby on Rails skills, am willing to learn any technology you work with, and I want to work for you.)
In sum: The act of improving the effectiveness of the systems which themselves improve the effectiveness of human capital yields exponential and undervalued economic gains. I hope in the future it receives more focus.
For example:
Depends completely on whether anyone other than you needs to read/maintain the code base, what kind of advantages the "cleverness" brings (performance, maintainability), etc.Basically, everything not 100% under my control keeps going wrong. And so does everything under my control, but apparently causing smaller fires.
Just about everybody else on this thread seems to be thinking at the wrong granularity.
I've been thinking about your problem all year. http://akkartik.name/blog/libraries2
Then, we set up a process to zip the database dump and send it off to tarsnap. We delete the backup done 30 days ago each time we run.
It works fine for us, but I much prefer using Heroku and not having to worry about it :)
On a serious note, a piece piece of software called Player/Stage which I am working with is driving me up the wall. Learning how three.js and the collada spec work to try and get the two playing nicely. Cross-browser CSS3/HTML5. Weirdness troubleshooting a flash app running with a PHP backend on a hundred android 1.6 tablets you don't have code access to.
There's a reason why it has such terrible ratings and reviews and complaints. It has a lot of features that the others don't, and that tricks you into thinking it's right for your online store. Only to be 1 month in, and start discovering all the terrible programming, glitches, bugs, php errors, and short commings.
Stay away from WP E-Commerce. You've been warned.
Lesson learn, if you care about the user experience there is no other way than native.
Ms11-100 security patch. Utter disaster that broke our entire cache and UI layer. Literally our kit jumped from 10% utilisation to 90% overnight resulting in a last minute rollback. Didn't show up in load testing.
business analysts lack of grasp on reality "its only a few billion rows" (to download our audit data via HTTP in CSV format - not going to happen).
SQL Server 2012 pricing.
Mark shuttleworth being an ass over a amazon integration causing us to move all our Linux stuff to debian.
VMware 2tb lun limit on iscsi. This sucks badly.
Compilation speed of c# - this is knackering us. Java is much better as it doesn't have to create monolithic dependency units (assemblies).
Exploding kit.
1. Pro-actively block Tor nodes and all hide-my-ass type of open proxy. To e-commerce merchants, tor node users are not freedom fighters, but fraudsters, every-single-one-of-them.
2. For credit card transaction, always check the return "credit card" country
3. Shopping carts need to track IP address. Fraudsters always can bounce from Brazil to UK to Italy in a single cart session.
4. Have to come up with a score system to determine fraud risk of transactions. Maxmind API seems to be helpful.
5. When in doubt, ask user to take a picture of their credit card, and upload to your site.
Try registering an hosting account on many "managed hosting" company, you are required to fax your passport to them. I will be offended if somebody asks me to do so.
Uploading credit card image is definitely less evil than faxing your passport.
I wish there were a site that wasn't transaction-focused, that provided a way to find people with specific skill sets, and that provided search / profile data that was specific to freelancers vs job seekers (e.g. what's your hourly rate? what's your availability? are you looking for sub-contracting / referrals / collaborations?). And most importantly, that connected to the social graph and provided a good reputation system. If the people I've worked with before aren't available, the next best is people they've worked with before, and rated positively.