background preloader

Programming Sucks

Programming Sucks
Every friend I have with a job that involves picking up something heavier than a laptop more than twice a week eventually finds a way to slip something like this into conversation: "Bro, you don't work hard. I just worked a 4700-hour week digging a tunnel under Mordor with a screwdriver." They have a point. Mordor sucks, and it's certainly more physically taxing to dig a tunnel than poke at a keyboard unless you're an ant. All programming teams are constructed by and of crazy people Imagine joining an engineering team. Would you drive across this bridge? All code is bad Every programmer occasionally, when nobody's home, turns off the lights, pours a glass of scotch, puts on some light German electronica, and opens up a file on their computer. This file is Good Code. Every programmer starts out writing some perfect little snowflake like this. There will always be darkness I spent a few years growing up with a closet in my bedroom. This is what it is to learn programming. Funny, right? Ook. Related:  fundamentalsphillipstreetinformatique/logiciels/ressources

Big-O Algorithm Complexity Cheat Sheet 6 Steps to Becoming a Software Developer | Zenput Blog Deciding to become a software developer is a great initial step, congrats! The job opportunities are growing quickly and in just about every industry that you can imagine. The best part is that you do not necessarily have to go to a four year university to become a great software developer to lock down one of these jobs. The web has all the resources you'll need to interact, learn, get support and finally find a job as a software developer. 0. Codecademy - JavaScript coursesCode School - Rails, jQuery, CoffeeScriptTryRuby - Really fun way to spend 15 minutes learning some RubyTreehouse - Web design (CSS, CSS3, HTML, HTML5, Responsive Design), web development (HTML5, JavaScript, and Intro to Programming), and iOS (build iPhone and iPad apps) 1. University CoursesNon-University Resources Books 2. 3. 4. [Bonus] 5. Hacker School - once you're quite good at what you do, the next level is to attend hacker school and become even better at it!

Video of the Day: Aurora Borealis Over Ferries | Inside Bainbridge Posted by Sarah Lane on September 14, 2015 at 12:45 pm The night of September 9 we had a rare aurora borealis in Puget Sound skies. Meg McDonald of Wild Northwest Beauty Photography captured a time lapse video of the phenomenon, more commonly known as the Northern Lights, complete with ferry and airplane crossings. Although the aurora borealis is usually seen farther north, we get them too when the auroral oval is briefly enlarged by a geomagnetic storm. Auroras are created when solar wind disturbs the paths of charged particles in the magnetosphere, pushing the particles into the exosphere where their energy is lost and light is emitted in the process. Video courtesy of Wild Northwest Beauty Photography. ©2011-2015 Inside Bainbridge. Tags: Aurora Borealis, ferries, Meg McDonald, Northern Lights, Wild Northwest Beauty Photography

Terms of Service; Didn't Read AntiPattern bad things · writing tags: Andrew Koenig first coined the term "antipattern" in an article in JOOP[1], which is sadly not available on the internet. The essential idea (as I remember it [2]) was that an antipattern was something that seems like a good idea when you begin, but leads you into trouble. Since then the term has often been used just to indicate any bad idea, but I think the original focus is more useful. In the paper Koenig said An antipattern is just like a pattern, except that instead of a solution it gives something that looks superficially like a solution but isn't one. -- Andrew Koenig This is what makes a good antipattern something separate to just a bad thing to point and laugh at. When writing a description of an antipattern it's valuable to describe how to get out of trouble if you've taken the bad path. It's useful to remember that the same solution can be a good pattern in some contexts and an antipattern in others.

Level-Up Your Machine Learning Since launching Metacademy, I've had a number of people ask , What should I do if I want to get 'better' at machine learning, but I don't know what I want to learn? Excellent question! My answer: consistently work your way through textbooks. I then watch as they grimace in the same way an out-of-shape person grimaces when a healthy friend responds with, "Oh, I watch what I eat and consistently exercise." But why textbooks? In this brief roadmap, I list a few excellent textbooks for advancing your machine learning knowledge and capabilities. Also, if you want alternative learning resources, Metacademy is at your disposal as are all of these textbooks. My sister, an artist and writer by trade, asked me how she could understand the basics of data science in a nontrivial way. Expectations: You'll understand some common machine learning algorithms at a high-level, and you'll be able to implement some simple algorithms in Excel (and a bit in R if you get through the entire book).

Get Cardboard – Google How do I know which viewers will work with my phone? Choose a viewer that fits your phone's screen size. Most Cardboard apps work with Android 4.1+ and the latest iOS smartphones. Where can I find apps for Cardboard? From the Google Cardboard app on Android and iOS, you can discover Cardboard apps by selecting “GET APPS.” You can also find more apps by visiting the Play Store or by searching for "Cardboard" or "Virtual Reality” on the Apple App Store. Can I use Cardboard if I wear glasses? Yes, Cardboard works with most glasses. Can I use a pizza box to make my own Cardboard viewer? Yes.

The Iceberg Secret, Revealed by Joel Spolsky Wednesday, February 13, 2002 "I don't know what's wrong with my development team," the CEO thinks to himself. "Things were going so well when we started this project. For the first couple of weeks, the team cranked like crazy and got a great prototype working. But since then, things seem to have slowed to a crawl. Meanwhile, of course, the development team has no idea that anything's wrong. Don't let this happen to you! It's pretty clear that programmers think in one language, and MBAs think in another. Since I started working in the software industry, almost all the software I've worked on has been what might be called "speculative" software. Have you ever noticed that on these custom projects, the single most common cause of overruns, failures, and general miserableness always boils down to, basically, "the (insert expletive here) customer didn't know what they wanted?" Here are three versions of the same pathology: "The damn customer kept changing his mind. Discuss Next: Rob Pike's 5 Rules of Programming Rule 1. You can't tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don't try to second guess and put in a speed hack until you've proven that's where the bottleneck is. Rule 2. Measure. Pike's rules 1 and 2 restate Tony Hoare's famous maxim "Premature optimization is the root of all evil." Stuff that every programmer should know: Data Visualization If you're a programmer and you don't have visualization as one of your main tools in your belt, then good news, you just found how to easily improve your skill set. Really it should be taught in any programming course.Note: This post won't get you from zero to visualization expert, but hopefully it can pique your curiosity and will provide plenty of references for further study. Visualizing data has two main advantages compared to looking at the same data in a tabular form. The first is that we can pack more data in a graph that we can get by looking at numbers on screen, even more if we make our visualizations interactive, allowing explorations inside a data set. This is useful also because it means we can avoid (or rely less on) summarization techniques (statistics) that are always by their nature "lossy" and can easily hide important details (the Anscombe's quartet is the usual example). What's that? - Good visualizations The main objective of visualization is to be meaningful.

Blog » Linode Nextgen: The Network March 7, 2013 1:24 pm This is the first of a series of blog posts about an effort we’re calling Linode: NextGen. In the coming days, we’ll tell you about other improvements and changes, but today we want to let you know about network upgrades. We’re spending $1 million making our network faster. We’re upgrading our entire network, in all six datacenters. Why do all of this? deal with our scale;greatly improve throughput;decrease latency; andadd redundancy at access/host layer We chose the Cisco Nexus 7000 series routers because these are the only devices Cisco offers that have large enough MAC address and routing tables to handle our requirements. The entirety of our network stack in each datacenter has redundancy built in, from top to bottom. Each fabric extender is connected to a pair of Cisco Nexus 5000 switches using 10 Gbps links, load-balancing its traffic to each switch. We’re using the best switching equipment Cisco sells. As before, all inbound transfer is free.

The App I Used to Break Into My Neighbor’s Home | Threat Level When I broke into my neighbor’s home earlier this week, I didn’t use any cat burglar skills. I don’t know how to pick locks. I’m not even sure how to use a crowbar. It turns out all anyone needs to invade a friend’s apartment is an off switch for their conscience and an iPhone. This was done politely: I even warned him the day before. Less than an hour later, I owned a key to his front door. What I didn’t tell my neighbor was that I spent about 30 seconds in the stairwell scanning his keys with software that would let me reproduce them with no specialized skills whatsoever. Parking valets suddenly require a ludicrous level of trust. I copied my neighbor’s keys at a KeyMe kiosk about a mile from his house, inside a Rite Aid drugstore. Unintended Consequences A KeyMe kiosk shown in the company’s marketing materials. KeyMe Such services also enable jerks like me to steal your keys any time they get a moment alone with them. Even if KeyMe did help the cops, Marsh’s logic is somewhat flawed.

From Switch Statement Down to Machine Code - Ranting @ 741 MHz Introduction Most of us know what a switch statement is and have probably been using it very often. No wonder why — switch statement is simple yet extremely expressive. It allows keeping the code compact while describing complex control flow. Putting the syntactic sugar aside, most developers also believe that using a switch statement results in a lot better, faster code. Compilers implement switch as a jump table and it is faster than an average number of conditional branches that the code would have taken otherwise. It all sounds good in theory. We’ll use the two most popular production quality compilers — GCC (version 4.7.2, released 20 Sep 2012) and Clang (version 3.0, released December 01, 2011). In both cases, we will be compiling the code for Intel® Xeon® E5630 CPU with enabled compiler optimizations (either «-O2», «-O3» or «-Os»). Simple Switch Let’s start by looking at a very simple switch statement. Below is a disassembly of the binary generated by GCC compiler. Trivial Switch