
Computing nuts'n'bolts
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. For example: Go's compiler is fast Go comes with a robust standard library Go works on a multitude of platforms Go comes with a complete set of documentation available from the command line / a local web server / the internet All Go code is statically compiled so deployment is trivial The entirety of the Go source code is available for perusal in an easy format online (like this ) Go has a well defined (and documented) grammar for parsing.
Go & Assembly
Windows with C++ - The Evolution of Threads and I/O in Windows
This is a demonstration of how simple and enjoyable small JITs ( just-in-time compilers ) can be. The word "JIT" tends to invoke an image of deepest wizardry, something that only teams of the most hard-core compiler guys would ever dream of creating. It makes you think of the JVM or .NET, very large runtimes with hundreds of thousands of lines of code. You never see "Hello, World!"
Josh Haberman: Hello, JIT World: The Joy of Simple JITs
The Early History Of Smalltalk
Last time, Alan showed how to use GDB as a tool to learn C . Today I want to go one step further and use GDB to help us understand assembly as well. Abstraction layers are great tools for building things, but they can sometimes get in the way of learning. My goal in this post is to convince you that in order to rigorously understand C, we must also understand the assembly that our C compiler generates. I'll do this by showing you how to disassemble and read a simple program with GDB, and then we'll use GDB and our knowledge of assembly to understand how static local variables work in C.
Understanding C by learning assembly - Blog - Hacker School
PE101 - corkami - Portable Executable 101 - a windows executable walkthrough - reverse engineering experiments and documentations
If you enjoy this article, subscribe (via RSS or e-mail) and follow me on twitter. tl;dr This post describes the relatively undocumented API for debuggers (or other low level programs) that can be used to enumerate the existing threads in a process and receive asynchronous notifications when threads are created or destroyed. This API also provides asynchronous notifications of other interesting thread-related events and feels very similar to the interface exposed by libdl for notifying debuggers when libraries are loaded dynamically at run time. amd64 and gnu syntax As usual, everything below refers to amd64 unless otherwise noted.
How do debuggers keep track of the threads in your program? at time to bleed by Joe Damato
Java Tuning in a Nutshell - Part 1
While delivering a training recently, I got a request to put together a JVM tuning cheat sheet. Given the 50+ parameters available on the Sun hotspot, this request is understandable. The diagram below is what I came up with. I’ve tried to narrow down the most important flags that will solve 80% of JVM performance needs with 20% of the tuning effort.Learning Django Learning Python and Django is easy if you have the right resources at your fingertips. Coming from pretty much only having studied programming in school, I started working as a developer at Yipit with almost no web programming experience. In a little fewer than ten weeks, I’ve become comfortable navigating and making large changes to the whole Python/Django application code as well as contributing new features (interested in learning Django at Yipit? Join us! ).
15 Key Resources to Learn Django - Yipit Django Blog
Reading List on Big Data
Consider the tech it takes to back the search box on Google's home page: behind the algorithms, the cached search terms, and the other features that spring to life as you type in a query sits a data store that essentially contains a full-text snapshot of most of the Web. While you and thousands of other people are simultaneously submitting searches, that snapshot is constantly being updated with a firehose of changes. At the same time, the data is being processed by thousands of individual server processes, each doing everything from figuring out which contextual ads you will be served to determining in what order to cough up search results.
The Great Disk Drive in the Sky: How Web giants store big—and we mean big—data
Microsoft DLR
Our context for this discussion is the AICT Linux Cluster , which runs 64-bit GNU/Linux on AMD Opteron hardware. If you have a comment or question about the material presented, please send a note to research.support@ualberta.ca . Programs and Processes A program's page table is one component of its execution context . Other components include its current working directory, list of open files, environment (list of environment variables), and so on.

