|
Adherence to DRY (“Don’t Repeat Yourself”) does not necessarily preclude repetition of code. In the endless struggle to refactor, the entropy we are trying to reduce is not in the raw text of our source code; it is in our business logic, which (in applications with little or poor testing) is often uncodified. Sometimes, refactoring can hamstring our code, and when done naïvely it can be a source of technical debt, rather than an antidote thereto. If you use copy and paste while you’re coding, you’re probably committing a design error. Except when you're not.
|
|
|
|
|
If you are not a computer scientist most of these people will, almost certainly, be unknown to you. Sadly the popular drinking game 'name that computer scientist' is, for you, over quickly. This may not seem a big problem but I would wish to argue otherwise. The scientists below have set out the foundations of our digital world. Their work is beautiful and important. It is furthermore, of the highest cultural significance spanning the boundaries of mathematics, engineering, psychology and the natural sciences. It is what we computer scientists aspire to. How many do you know? What others would you include?
|
|
|
|
|
|
I'd take Codd off the list. And I think maybe some others could have done their work without a computer, much as Alan Turing did.
I could nominate Sacha.
|
|
|
|
|
Facebook wants an awful lot from its emoticons: They should be able to convey complex emotions, for example, like contemplation, admiration, affirmation, maternal love, determination, devotion, resignation, and gratitude. But how, in a tiny digital image, do you depict something as subtle as shame as opposed to remorse, or shyness as opposed to modesty? Current emoticons can't do that, or anything close to it. So Facebook has turned to Pixar story illustrator and former storyboard artist at the Wallace and Gromit studio Matt Jones, to help make something entirely new. He's charged, basically, with reinventing the smiley.
|
|
|
|
|
Today, Nginx offers fewer features than Apache, but its performance is significantly higher. In this way, it's not unlike MySQL or NoSQL in the database market, or JBoss and Tomcat in the application server market, or any number of other open source examples where the open-source alternative is initially feature-constrained but significantly better for a particular purpose. Over time, it adds functionality and continues to improve performance until, like Linux in the server and mobile operating system markets, it dominates. Apache won the web server market ages ago... That is, until recently.
|
|
|
|
|
Microsoft has been pummeled by critics this week over supposedly inadequate storage space in its new Surface Pro. But those criticisms are horribly flawed. Big surprise: when you do the disk space math, Surface Pro and MacBook Air are practically twins. Gibibytes, Gigabytes... let's call the whole thing off.
|
|
|
|
|
No, there's only one area where Android falls really, horribly, undeniably short when it comes to the tablet form factor: The web browser. It's the most fundamental tablet app, IMHO, and yet the web experience on Android could not possibly be worse. I honestly have no idea how this is possible. And it's not just Chrome: a survey of browser experiences on Android.
|
|
|
|
|
There are plenty of people whose paths seem to be effortless when it comes to getting the best opportunities. And although you may wonder what the person’s secret is, the truth is that there’s really no secret to be bottled.
http://www.recruiter.com/i/4-habits-of-highly-successful-job-seekers/[^]
Twenty years from now you will be more disappointed by the things that you didn't do than by the ones you did do. So throw off the bowlines. Sail away from the safe harbor. Catch the trade winds in your sails. Explore, Dream. Discover.
|
|
|
|
|
A whole page of fluff. O, happy day.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
TL;DR: Be fluffy. But not to much.
|
|
|
|
|
You’re close to shipping and you receive a shopping list of bugs and changes. Some are tiny and un-eventful, some are show stoppers, some let the bad guys in, and some are simply scope creep trying to sneak through the door. It’s hard to know where to start without reclassifying them because the majority of them are all labelled Critical. It’s time to sit down with whoever documented your bugs and do some talking… Prioritize your work: read this first!
|
|
|
|
|
I use a number of text editors. The three I have pinned to my taskbar are Visual Studio, Sublime Text 2, and Notepad 2. I have three because I like features from one and wish those features were in another. Sublime Text (and a few other editors) has a great feature called Simultaneous Editing. It's the very definition of an advanced - but core - editor feature. Enter the MultiEdit extension for Visual Studio. Holding down ALT while mouse-clicking in the editor will add multiple selection points, so when you type, text will be added to all the selected positions. Should this be a built-in feature of VS?
|
|
|
|
|
|
Most developers stagnate both intellectually and productively after 4-5 years in industry; they adopt some tools, pick up some patterns, learn a language or two, and maybe they’re even able to work at a successful company and contribute to some important products. Great! But what happens when you hand a developer a blank sheet of paper and the opportunity for them to own a product? Most of the time: chaos and failure. If you want to be a better developer, it starts with changing the way you look at your code and how you program.
|
|
|
|
|
He makes good points but perhaps misses the deaper reason for the 'lack of confidence' he often sites as being behind failures. All too often this is due to developers who can use the tools but don't really have a deep understanding of how they work. They panic when given a blank sheet of paper because they've never been asked or asked themselves the question. "What if I really had to start from scratch?" and then gone away and worked out the answers. This is not about taking the customer point of view or understanding that it's business problems that we're solving it's quite the reverse it's about caring about code for the sake of code. First wanting to do it right and to have full insight into what's happening from the registers upwards so that you can make sure it's done right, own it completely and understand it completely. If developers never get to do this why is it a surprise that they lack confidence and rely on habituated ways of doing things. Most have spent their entire carrers being told not to look under the hood, just fix the surface problem and get it shipped, because people who don't understand software will never grasp that that is not where the long term interest of the business lies.
"The secret of happiness is freedom, and the secret of freedom, courage."
Thucydides (B.C. 460-400)
|
|
|
|
|
How do you store sensitive configuration options (such as usernames, passwords, etc.) in source control? Typically what I’ve done is to just punt on the problem entirely. I create a dummy configuration file, such as conf/sample-settings.json which has the basic structure but none of the details filled out.... The technique I picked up from Craig was to, instead, keep an encrypted version of the configuration file in source control and then provide a means through which the user can encrypt and decrypt that data. Check out the comments for some potential concerns and additional tips.
|
|
|
|
|
Kent Beck and Erich Gamma changed software development forever when they created JUnit. Programmers embraced JUnit and the philosophy behind it. There are now xUnit-style frameworks in just about any language a programmer might need to use today. The simple but powerful conventions introduced by JUnit are now accepted standards for how test frameworks work. In this interview, Kent Beck tells the creation story for JUnit. So, let me tell you how I got involved in testing...
|
|
|
|
|
One of my favorite parts about Go is its unwavering focus on utility. Sometimes we place so much emphasis on language design that we forget all the other things programming involves.... I want to focus on one that's not generally well known: Go can seamlessly use functions written in Assembly. An interesting MOV, but let's not all JMP on the Assembly bandwagon.
|
|
|
|
|
It's very easy to make assembly hard to read and write: use AT&T syntax.
|
|
|
|
|
Agreed. It's just painful to look at.
=====
\ | /
\|/
|
|-----|
| |
|_ |
_) | /
_) __/_
_) ____
| /|
| / |
| |
|-----|
|
=====
===
=
|
|
|
|
|
Want to get developers fired up? Kick off a debate about development methodologies – waterfall, agile, lean, extreme, spiral, unified, etc. At any given time it seems one method is the right one to use and the other methods, regardless of previous experience, are wrong. Some talk about having a toolbox of methods to draw on. Others say everyone must adapt to a new state of the art at each generation. Is there a practical way to build good software without first having this debate? Real coders ship... by any means necessary.
|
|
|
|
|
Content that was once primarily accessed by consumers on their PCs, is shifting to mobile devices.... The top two activities that consumers are shifting from their PCs to their tablets and smartphones are web browsing and Facebook. Among tablet owners, 27 percent say they are using their PC less frequently for accessing the Internet and 20 percent say they are using their PC less frequently for accessing Facebook. Books and games tie for third place.
|
|
|
|
|
This decision supposedly came right from the top of the company, with Bill Gates himself even chipping in. Despite initial reservations, Kempin claims that Gates always had qualms that the living room computer would, at some stage, metamorphosise into an alternative PC that could threaten Microsoft's dominance of the traditional market. As a result, it was eventually felt the company had to try and tackle Sony head-on. While with hindsight we can see this worked out for the best, a huge amount of teething issues were encountered along the way. Looking for a Halo product while fighting a Bastion of consumer products.
|
|
|
|
|
LEGO sets are not cheap toys. They are made to the highest standards and have the price to go along with it. However, in the past couple decades it seems that the price of LEGO sets has become outrageous. New sets can sell for up to $500 retail and old sets can sell for twice that in a secondary market. This is a children’s toy, right? There is no way LEGO sets have always been this expensive; it is just molded plastic. Let’s take a look at the history of LEGO pricing and try to figure out what is going on. LEGO is not a cheap toy and has never been.
|
|
|
|