background preloader

Typing Practice for Programmers

Typing Practice for Programmers

How to Debug One of the painful parts of teaching a lab-based embedded systems course is that over and over I have to watch a team with a relatively simple bug in their code, but who is trying to fix it by repeatedly making random changes. Generally they start with code that’s pretty close to working and break it worse and worse. By the end of the lab they’re frustrated, aren’t any closer to finding the bug, and have made a complete mess of their code, forcing them to go back to the previous day or week’s version. A typical Computer Science curriculum fails to teach debugging in any serious way. First we’ll want to define some terms: The high-level reason debugging is hard is that it’s an inverse problem: it attempts to infer the cause for observed effects. Of course, a very bad bug will involve several of these factors at the same time. The following steps constitute a fairly complete approach to debugging. 1. It makes no sense to even start debugging unless we’re pretty sure: 2. 3. 4. 5. 6. 7. 8.

Saccade Trace of saccades of the human eye on a face while scanning Function[edit] Humans and many animals do not look at a scene in fixed steadiness (as opposed to most birds, for example[citation needed]); instead, the eyes move around, locating interesting parts of the scene and building up a mental, three-dimensional 'map' corresponding to the scene (as opposed to the graphical map of avians, that often relies upon detection of angular movement on the retina). When scanning the scene in front of you or reading these words right now, your eyes make jerky saccadic movements and stop several times, moving very quickly between each stop. Control[edit] Once saccades are underway, they cannot be altered at will. Timing and kinematics[edit] Saccades are the fastest movements produced by the human body. The amplitude of a saccade is the angular distance the eye travels during the movement. Types[edit] Saccades can be categorized by intended goal in four ways:[10] Pathophysiologic saccades[edit]

Coding Horror: Cultivate Teams, Not Ideas How much is a good idea worth? According to Derek Sivers, not much: It's so funny when I hear people being so protective of ideas. (People who want me to sign an NDA to tell me the simplest idea.) To me, ideas are worth nothing unless executed. I was reminded of Mr. I feel that this story is important to tell you because copied us. The disconnect between idea and execution here is so vast it's hard to understand why the author himself can't see it. I wouldn't call ideas worthless, per se, but it's clear that ideas alone are a hollow sort of currency. The criticism that all you need is "super-connected people" to be successful was also leveled at Stack Overflow. I very much enjoyed the Hacker News conversation about cloning the site in a weekend. I don't care how internet famous you are; nobody gets a pass on execution. One of my all time favorite software quotes is from Wil Shipley: This is all your app is: a collection of tiny details. Execution isn't merely a multiplier.

Netflix Open Sources “Resilience Engineering” Code Library Hystrix: it’s the genus name for “Old World” porcupines, and it’s also the latest release from Netflix. But you won’t see it in their catalog of movie and TV titles, and you can’t add it to your queue, because it’s not content–it’s how Netflix makes sure its content is highly available. Now, Netflix has made Hystrix open source, for anyone using Amazon Web Services (AWS) to implement in their own cloud applications. Read on for details on this “resilience engineering” code library. Mention Netflix, and most people will think of the company’s DVD-rental-by-mail service or its growing library of “Watch Instantly” streaming video titles. This week, Netflix added Hystrix to its bag of open-source tricks. The Hystrix home page on GitHub defines the problem: [R]unning an application that depends on 30 services that each have 99.99% uptime we get: 99.9930 = 99.7% uptime 0.3% of 1 billion requests = 3,000,000 failures 2+ hours downtime/month even if all dependencies have excellent uptime.

Shepherd's Pie (Cottage Pie) When the English, who seem to have a national fascination with minced meat pies, combined mashed potatoes with minced meat, a truly remarkable dish was born. For over two hundred years, Shepherd's Pie has been made by cooking chopped up lamb or mutton mixed with gravy, topped with mashed potatoes, and baked until a crispy crust forms. When made with beef, this dish is traditionally called Cottage Pie. This recipe, handed down to me by a friend in the form of index cards, was originally from the beloved Joy of Cooking. Start by chopping up 1-1/2 lb. potatoes into rough 1-inch cubes for boiling. While, cooking the potatoes, prepare the vegetables. Dice the carrot, celery, and onion and place in a bowl. When the potatoes are tender, remove them from the water into a large bowl, reserving 1/2 cup of the water. After the potatoes have been mashed, set them aside. Add the diced onion, carrot, and celery and stir until the vegetables are coated. Add 1 Tbs. flour to the mixture. Shepherd's pie

5 Great Resources To Learn How To Code However, more often than not, there seems to be a problem of actually finding good content online that can teach you to code. Experimenting with a language can only get you so far. To master it, you need to have proper guidance from people who actually know what they are talking about. So where can you find expert guidance without shelling out a fortune for it? Dream In Code Just taking a look at their logo ought to tell you that the community at Dream In Code isn’t something to mess around with. They have everything. They also have a video channel and links to developers’ blogs if you want to look deeper. W3Schools If what you want to master is a Web technology, you’ve got to give W3Schools a look. You can get tutorials ranging from plain-Jane HTML, right up to AJAX and the likes. Eloquent JavaScript If you’ve ever had to use a Greasemonkey Script or a Bookmarklet, you have a clue about the kind of power that JavaScript possesses. TryRuby A Miscellany of HTML5 Tutorials

IoC container solves a problem you might not have but it’s a nice problem to have | Krzysztof Koźmic on software On frame­works and libraries A log­ging frame­work helps you log what's hap­pen­ing in your appli­ca­tion. A UI frame­work helps you ren­der and ani­mate UIs to the user. All of these tasks and con­cepts are pretty easy to under­stand. Also the code of your appli­ca­tion changes in order to use those frame­works and libraries. What about IoC container? So what about inver­sion of con­trol con­tain­ers? I got one of the IoC con­tain­ers, put it in my appli­ca­tion, and then all hell broke loose. Let's ignore the details for now and con­cen­trate on the wider sentiment. So? The sen­ti­ment is one of con­fu­sion, scep­ti­cism and frus­tra­tion. Truth is, those aren't nec­es­sar­ily the right ques­tions to ask. I have seen appli­ca­tions where intro­duc­ing a con­tainer imme­di­ately, would only worsen things. What sort of archi­tec­ture are we talk­ing about? Con­tainer has cer­tain require­ments in order to work smoothly. That's a lot of assump­tions, isn't it? It's the inversion! The i-word

Spacing effect Researchers have offered several possible explanations of the spacing effect, and much research has been conducted that supports its impact on recall. In spite of these findings, the robustness of this phenomenon and its resistance to experimental manipulation have made empirical testing of its parameters difficult. Causes for spacing effect[edit] Decades of research on memory and recall have produced many different theories and findings on the spacing effect. In a study conducted by Cepeda et al. (2006) participants who used spaced practice on memory tasks outperformed those using massed practice in 259 out of 271 cases. As different studies support different aspects of this effect, some now believe that an appropriate account should be multifactorial, and at present, different mechanisms are invoked to account for the spacing effect in free recall and in explicit cued-memory tasks. Not much attention has been given to the study of the spacing effect in long-term retention tests.

A Very Quick Comparison of Popular Languages for Teaching Computer Programming This article has been translated into Serbo-Croatian here: Thanks to Jovana Milutinovich for creating this translation. In the CS department where I currently teach I recently got involved in a debate on which programming language should be used to teach beginners. Java and C are the most commonly used languages in the department, and for many subjects this is appropriate, but not (I believe) for absolute beginners. I believe Python is a much better choice for beginners, and to firm up my own position I performed the very brief, very unscientific test described below. The Test I wanted to look at what was involved in writing very simple programs in a (small) variety of languages. "Hello World" seemed a bit too trivial, so I decided on the relatively simple task of reading two numbers from the user, adding them together and printing out the result. Time to write: 15 seconds. Things to explain: Line numbers Variables INPUT PRINT RUN Java

YALV! - Yet Another Log4Net Viewer - Home Welcome to the Mnemosyne Project | The Mnemosyne Project