May 2010
1 post
Java vs. C Performance....Again. →
Is Java faster than C/C++? The short answer is: it depends.
May 13th
April 2010
1 post
How can C Programs be so Reliable? →
Henry Spencer said, “Those who don’t understand UNIX are doomed to reinvent it, poorly.” And that’s probably why so many of the programs written in C are more reliable than our prejudices might suggest - the UNIX culture, the oldest and wisest in mainstream computing, has found ways of turning some of C’s limitations and flaws into advantages.
Apr 20th
March 2010
3 posts
Post-quantum cryptography →
Imagine that it’s fifteen years from now. Somebody announces that he’s built a large quantum computer. RSA is dead. DSA is dead. Elliptic curves, hyperelliptic curves, class groups, whatever, dead, dead, dead. So users are going to run around screaming and say ‘Oh my God, what do we do?
Mar 11th
The Lo-Fi Manifesto →
The time has come to reject expensive consumer and prosumer software that hinders the extensibility of digital discourse and limits digital production literacy to programs and file formats that are destined for disruptive upgrades or obsolescence. Digital scholars in the loosely defined fields of rhetoric and composition, computers and writing, and technical communication should create free and...
Mar 11th
Linux Kernel Linked List Explained →
Linux kernel is mostly written in the C language. Unlike many other languages C does not have a good collection of data structures built into it or supported by a collection of standard libraries. Therefore, you’re probably excited to hear that you can borrow a good implementation of a circularly-linked list in C from the Linux kernel source tree.
Mar 11th
February 2010
5 posts
Invoking user-space applications from the kernel →
Invoking specific kernel functions (system calls) is a natural part of application development on GNU/Linux. But what about going in the other direction, kernel space calling user space? It turns out that there are a number of applications for this feature that you likely use every day. For example, when the kernel finds a device for which a module needs to be loaded, how does this process occur?...
Feb 21st
Labor of Division (Episode 1) →
So dividing by 13 is the same as multiplying by 1321528399 and then dividing by 2^34. That means that 2^34 divided by 13 would be 1321528399, right? In fact, it’s 1321528398.769 and change. Pretty close, but we’re not optimizing horseshoes, so how can we be sure this works all the time?
Feb 17th
Reflections on Gandhi - George Orwell →
SAINTS should always be judged guilty until they are proved innocent, but the tests that have to be applied to them are not, of course, the same in all cases.
Feb 16th
Introduction to Reverse Engineering Software →
This book is an attempt to provide an introduction to reverse engineering software under both Linux and Microsoft Windows©. The goal of this book is not to cover how to reproduce an entire program from a binary, but instead how to use the Scientific Method to deduce specific behavior and to target, analyze, extract and modify specific operations of a program, usually for interoperability purposes....
Feb 4th
http://stevenf.tumblr.com/post/359224392/i-need-to-... →
Personal computing — having a computer in your house (or your pocket) — as a whole is young. As we know it today, it’s less than a half-century old. It’s younger than TV, younger than radio, younger than cars and airplanes, younger than quite a few living people in fact. In that really incredibly short space of time we’ve gone from punchcards-and-printers to interactive terminals with command...
Feb 3rd
January 2010
2 posts
Tinkerers Sunset →
Anyone can develop! All you need is a Mac, XCode, an iPhone “simulator,” and $99 for an auto-expiring developer certificate. The “developer certificate” is really a cryptographic key that (temporarily) allows you (slightly) elevated access to… your own computer. And that’s fine — or at least workable — for the developers of today, because they already know that they’re developers. But the...
Jan 30th
Is aviation security mostly for show? →
Often, this “something” is directly related to the details of a recent event. We confiscate liquids, screen shoes, and ban box cutters on airplanes. We tell people they can’t use an airplane restroom in the last 90 minutes of an international flight. But it’s not the target and tactics of the last attack that are important, but the next attack. These measures are only...
Jan 28th
June 2009
1 post
1 tag
Startupcity 09 is here!
Get set geeks! Siliconindia is organizing Startupcity’09  on June 6th (Saturday in Bangalore). The most promising technology startups will be showcasing their products, so roll up your sleeves meet the Startups that will become tomorrow’s industry leaders. So be sure to visit the event website. http://www.siliconindia.com/startupcity_09/index.html and register for free. Some key...
Jun 3rd
March 2009
4 posts
Main Page - How to be a Programmer (2008) →
Mar 20th
1 note
bluepillproject.org →
The original Blue Pill proof of concept code has been written by Joanna Rutkowska, while working for COSEINC, and presented at the Black Hat Briefings 2006 in Las Vegas on August 3rd. Joanna Rutkowska then formed a small team of researchers inside COSEINC, Advanced Malware Labs, which was supposed to focus on further research into virtualization based malware. However after just a few months the...
Mar 19th
Don’t fear the fsync! | Thoughts by Ted →
A successful close does not guarantee that the data has been successfully saved to disk, as the kernel defers writes. It is not common for a file system to flush the buffers when the stream is closed. If you need to be sure that the data is physically stored use fsync(2).
Mar 16th
Wolfram Blog : Wolfram|Alpha Is Coming! →
The way humans normally communicate is through natural language. And when one’s dealing with the whole spectrum of knowledge, I think that’s the only realistic option for communicating with computers too. Of course, getting computers to deal with natural language has turned out to be incredibly difficult. And for example we’re still very far away from having computers systematically understand...
Mar 6th
February 2009
5 posts
assertTrue(this): Inheritance as Antipattern →
Allen Holub tells of once attending a Java user group meeting where James Gosling was the featured speaker. According to Holub, during the Q&A session, someone asked Gosling: “If you could do Java over again, what would you change?” Gosling replied: “I’d leave out classes.”
Feb 18th
Fabulous Adventures In Coding : References are not... →
I review a fair number of C# books; in all of them of course the author attempts to explain the difference between reference types and value types. Unfortunately, most of them do so by saying something like “a variable of reference type stores the address of the object”. I always object to this. The last time this happened the author asked me for a more detailed explanation of why I...
Feb 18th
I know the answer (it's 42) : Back to basic:... →
So here is my attempt to write up a series on GC. I plan to cover the basic stuff and then move into details of .NET CF GC including performance, profiling. I plan to cover bits of desktop .NET GC as well (but for that Maoni’s blog is a better resource) The first two in this series is already published. I will keep this post updated to act as an index into the series.
Feb 18th
Retro Programming →
Programming for the 80’s Generation…
Feb 13th
Why Software Suck →
(1) Patterns and XP are wishy-washy, unscientific, unproven, and without any mathematical basis.
Feb 4th
January 2009
2 posts
Data alignment: Straighten up and fly right →
Data alignment is an important issue for all programmers who directly use memory. Data alignment affects how well your software performs, and even if your software runs at all. As this article illustrates, understanding the nature of alignment can also explain some of the “weird” behaviors of some processors.
Jan 11th
An Introduction to GCC - Table of Contents →
This manual provides an introduction to the GNU C and C++ Compilers, gcc and g++, which are part of the GNU Compiler Collection (GCC). The development of this manual was funded entirely by Network Theory Ltd. Copies published by Network Theory Ltd raise money for more free documentation.
Jan 9th
December 2008
9 posts
Optimizing C++ - the WWW version →
I have written Optimizing C++ because I believe that this common attitude is incorrect, and that a knowledge of optimization is essential to a professional programmer. One very important reason is that we often have little control over the hardware on which our programs are to be run. In this situation, the simplistic approach of adding more hardware is not feasible. Optimizing C++ provides...
Dec 29th
start [smallcode] →
Welcome to smallcode, an educational wiki where you can share your programming tips and contribute to research projects. Old smallcode blog was moved.
Dec 29th
NumberSpiral.com - Home →
It looks as though primes tend to concentrate in certain curves that swoop away to the northwest and southwest, like the curve marked by the blue arrow. On the next few pages of this website, we’ll investigate these patterns and try to make sense out of them.
Dec 17th
InformIT: Virtual Memory in the IA-64 Linux Kernel... →
Linux processes execute in a virtual environment that makes it appear as if each process had the entire address space of the CPU available to itself. This virtual address space extends from address 0 all the way to the maximum address. On a 32-bit platform, such as IA-32, the maximum address is 232 - 1 or 0xffffffff. On a 64-bit platform, such as IA-64, this is 264 -1 or 0xffffffffffffffff.
Dec 17th
C++ Frequently Questioned Answers →
This is C++ FQA Lite. C++ is a general-purpose programming language, not necessarily suitable for your special purpose. FQA stands for “frequently questioned answers”. This FQA is called “lite” because it questions the answers found in C++ FAQ Lite.
Dec 12th
C++ FAQ LITE →
Dec 12th
The C++ Sucks Series: the quest for the entry... →
Suppose you run on the x86 and you don’t like its default FPU settings. For example, you want your programs to dump core when they divide by zero or compute a NaN, having noticed that on average, these events aren’t artifacts of clever numerical algorithm design, but rather indications that somebody has been using uninitialized memory. It’s not necessarily a good idea for production code, but for...
Dec 12th
ArchitectNotes - Varnish - Trac →
The really short answer is that computers do not have two kinds of storage any more. It used to be that you had the primary store, and it was anything from acoustic delaylines filled with mercury via small magnetic dougnuts via transistor flip-flops to dynamic RAM. And then there were the secondary store, paper tape, magnetic tape, disk drives the size of houses, then the size of washing machines...
Dec 9th
"When Woman is Boss" →
Colliers, January 30, 1926 The life of the bee will be the life of our race, says Nikola Tesla, world-famed scientist. A NEW sex order is coming—with the female as superior. You will communicate instantly by simple vest-pocket equipment. Aircraft will travel the skies, unmanned, driven and guided by radio. Enormous power will be transmitted great distances
Dec 2nd
November 2008
17 posts
The case of the 500-mile email →
“—yes, and she’s produced a map showing the radius within which we can send email to be slightly more than 500 miles. There are a number of destinations within that radius that we can’t reach, either, or reach sporadically, but we can never email farther than this radius.”
Nov 26th
The World - India Calling - NYTimes.com →
India did not export brains; it invested them. It sent millions away. In the freedom of new soil, they flowered. They seeded a new generation that, having blossomed, did what humans have always done: chase the frontier of the future. Which just happened, for many of us, to be the frontier of our own pasts.
Nov 25th
DeviceGuru » 16 interviews with Linux Kernel... →
The Linux Foundation has published a series of video interviews from the annual Linux Kernel Summit held Sept. 15-16 in Portland, Oregon. In the videos, 16 developers — including Linux creator Linus Torvalds (shown at left) — discuss their development activities.
Nov 24th
http://www.urbaczewski.com/humor/softdevcycle.htm →
Software doesn’t just appear on the shelves by magic. That program shrink-wrapped inside the box along with the indecipherable manual and 12-paragraph disclaimer notice actually came to you by way of an elaborate path, through the most rigid quality control on the planet. Here, shared for the first time with the general public, are the inside details of the program development cycle.
Nov 21st
whopr - GCC Wiki →
Nov 21st
GCC hacks in the Linux kernel →
GCC and Linux are a great pair. Although they are independent pieces of software, Linux is totally dependent on GCC to enable it on new architectures. Linux further exploits features in GCC, called extensions, for greater functionality and optimization. This article explores many of these important extensions and shows you how they’re used within the Linux kernel.
Nov 21st
Retro Code Programming: Core War - Hostile... →
Core War is a game from the 80’s, played between computer programs written in Redcode, a language similar to assembly. The programmers design their battle programs to remove opponents from the memory of the MARS virtual computer by any means possible.
Nov 21st
Introduction to Algorithms - good coders code,... →
This is the ninth post in an article series about MIT’s lecture course “Introduction to Algorithms.” In this post I will review lectures thirteen and fourteen. They are on theoretical topics of Amortized Analysis, Competitive Analysis and Self-Organizing Lists.
Nov 21st
ESMAJ →
Nov 20th
How to be a Programmer: A Short, Comprehensive,... →
To be a good programmer is difficult and noble. The hardest part of making real a collective vision of a software project is dealing with one’s coworkers and customers. Writing computer programs is important and takes great intelligence and skill. But it is really child’s play compared to everything else that a good programmer must do to make a software system that succeeds for both...
Nov 20th
CS 294-5, Spring 2006 →
From time to time a new algorithm comes along that causes a sensation in theoretical computer science or in an area of application because of its resolution of a long-standing open question, its surprising efficiency, the novelty of its setting or approach, the elegance of its structure, the subtlety of its analysis or its range of applications. We will present a variety of such algorithms, mostly...
Nov 19th
Memory Cache - Overview | Your Electronics Open... →
Cache Memory has a small size compared to main memory of any system. Knowing that the time access from cache is least 10 times smaller than external memory, fetching data from cache is a big advantage. The process of eliminating a data from cache for making room of a new one is called “Cache Replacement Algorithm”.
Nov 18th
The Manager FAQ →
2.1: My manager doesn’t fit in well with our corporate society. He seems to to a good job, but he’s not getting along with the engineers.
Nov 17th
Teach Yourself Programming in Ten Years →
* With all that in mind, its questionable how far you can get just by book learning. Before my first child was born, I read all the How To books, and still felt like a clueless novice. 30 Months later, when my second child was due, did I go back to the books for a refresher? No. Instead, I relied on my personal experience, which turned out to be far more useful and reassuring to me than the...
Nov 14th
Laurence Tratt: How can C Programs be so Reliable? →
Henry Spencer said, “Those who don’t understand UNIX are doomed to reinvent it, poorly.” And that’s probably why so many of the programs written in C are more reliable than our prejudices might suggest - the UNIX culture, the oldest and wisest in mainstream computing, has found ways of turning some of C’s limitations and flaws into advantages. As my experience shows,...
Nov 13th
Ry4an: readings -> short -> dumbing →
These icons and wizards, these prebuilt components that look like little pictures, are obscuring the view that what lies under all these cascading windows is only text talking to machine, and underneath it all is something still looking for a BASIC interpreter. But the view the wizards offer is pleasant and easy. The temptation never to know what underlies that ease is overwhelming. It is like the...
Nov 13th
Frequently Forgotten Fundamental Facts about... →
P1. The most important factor in attacking complexity is not the tools and techniques that programmers use but rather the quality of the programmers themselves.
Nov 8th