background preloader

Structure and Interpretation of Computer Programs

Structure and Interpretation of Computer Programs

If you code HTML, Zen Coding will change your life If you write HTML for a living, and you don't know Zen Coding yet, you are missing out big time. This is basically the coolest thing I've seen all week. I have been using it for a few days now; at first it seemed kind of gimmicky and I wasn't sure I could grasp the syntax, but today I really got to explore it, and woah is it awesome. Okay, I'll stop tripping over myself with excitement over here and try to tell you what this thing does, in a nutshell: It expands abbreviations into complete HTML structures (divs, tables, cells, links, lists), and does it in the most freaking intelligent way I have seen in a long time. I'm serious!

Fredrik Håård's Blaag I was blown away by the amount of response - mostly positive - on my Python is important post. However, a lot of the replies, both positive and... slightly less positive, really highlighted an issue I have with how a lot developers seem to approach programming languages: the search for the Perfect Language to Love and Protect. Why are so many developers so very emotional when it comes to their favourite programming language? Considering that no language can (yet) magically translate the perfect idea in your head into machine code, all of them exist on a scale of badness - they all limit you more than your own thoughts or the hardware does. I believe that the primary reason people feel the need to vehemently defend a particular language is that they are lazy.

PPL Why We Exist New heterogeneous architectures continue to provide increases in achievable performance, but programming these devices to reach maximum performance levels is not straightforward. The goal of the PPL is to make heterogeneous parallelism accessible to average software developers through domain-specific languages (DSLs) so that it can be freely used in all computationally demanding applications. What We Do

How to be a Programmer: A Short, Comprehensive, and Personal Summary Debugging is the cornerstone of being a programmer. The first meaning of the verb to debug is to remove errors, but the meaning that really matters is to see into the execution of a program by examining it. A programmer that cannot debug effectively is blind. Idealists that think design, or analysis, or complexity theory, or whatnot, are more fundamental are not working programmers. Lesson: Object-Oriented Programming Concepts (The Java™ Tutorials > Learning the Java Language) If you've never used an object-oriented programming language before, you'll need to learn a few basic concepts before you can begin writing any code. This lesson will introduce you to objects, classes, inheritance, interfaces, and packages. Each discussion focuses on how these concepts relate to the real world, while simultaneously providing an introduction to the syntax of the Java programming language.

Future - Technology - Why we should all learn to hack Owning a computer once went hand in hand with understanding exactly how it worked. That may have changed but Tom Chatfield says it's time to reclaim the past. There is an old joke amongst computer programmers: “There are only 10 types of people in the world: those who understand binary, and those who don't.” Not funny to everyone, but it makes a neat point. Mechanism Design on Trust Networks BibTeX @MISC{Ghosh_mechanismdesign, author = {Arpita Ghosh and Mohammad Mahdian and Daniel M. Reeves and David M.

Web Development Course Online - How To Build A Blog When does the course begin? This class is self paced. You can begin whenever you like and then follow your own pace. Bill the Lizard: Books Programmers Don't Really Read Mark Twain once said that a classic novel is one that many people want to have read, but few want to take the time to actually read. The same could be said of "classic" programming books. Periodically over on Stack Overflow (and in many other programming forums) the question comes up about what books are good for programmers to read. Code Hero raises over $100,000 for shooter that teaches computer programming Over the years, there have been a lot of efforts to create games that make learning how to program a computer simple and fun, with widely variable results. But indie developer Primer Labs seems to have hit on something special with Code Hero, a first-person shooter that teaches JavaScript and UnityScript programming by letting players fire bits of code that actually affect the environment. The group recently reached its Kickstarter funding goal of $100,000 for the project, and is still looking for last-minute donations to help fund a multiplayer mode. Despite the name, Code Hero is much more like Portal or Minecraft than Guitar Hero, according to its creators, but "instead of making blocks or portals, you shoot Javascript" that executes when it hits its target.

Cloud Robotics What if robots and automation systems were not limited by onboard computation, memory, or programming? This is now conceivable with wireless networking and rapidly expanding Internet resources. In 2010, James Kuffner at Google introduced the term "Cloud Robotics" to describe a new approach to robotics that takes advantage of the Internet as a resource for massively parallel computation and sharing of vast data resources. The Google autonomous driving project exemplifies this approach: the system indexes maps and images that are collected and updated by satellite, Streetview, and crowdsourcing to facilitate accurate localization. Another example is Kiva Systems new approach to warehouse automation and logistics using large numbers of mobile platforms to move pallets using a local network to coordinate planforms and update tracking data. These are just two new projects that build on resources from the Cloud.

Beginning Game Development: Part I – Introduction Part I – Introduction Welcome to the first article of an introductory series on game programming using the Microsoft .NET Framework and managed DirectX 9.0. This series as aimed at beginning programmers who are interested in developing a game for their own use with the .NET Framework and DirectX. The goal of this series is to have fun creating a game and learn game development and DirectX along the way. Game programming and DirectX have their own terms and definitions that can be difficult to understand, but after awhile, you’ll crack the code and be able to explore a new world of possibilities. I will keep things as straightforward as possible and decode terms as they appear. Machine code Numerical machine code (i.e. not assembly code) may be regarded as the lowest-level representation of a compiled and/or assembled computer program or as a primitive and hardware-dependent programming language. While it is possible to write programs directly in numerical machine code, it is tedious and error prone to manage individual bits and calculate numerical addresses and constants manually. It is therefore rarely done today, except for situations that require extreme optimization or debugging. Machine code instructions[edit] Every processor or processor family has its own machine code instruction set. Instructions are patterns of bits that by physical design correspond to different commands to the machine.