Must remember to start posting again, must remember to start posting again, must remember…
Inklings in October 2009
On the importance of good notation and of how a bad notation can do more harm than good.
The book online.
Visitors is a very fast web log analyzer for Linux, Windows, and other Unix-like operating systems. It takes as input a web server log file, and outputs statistics in form of different reports.
This sort of crap is one of the reasons why allowing standards to feature patents is utter stupidity:
Nokia is suing Apple over the iPhone, claiming patent infringement for GSM, UMTS and wireless LAN (WLAN) standards.
Nokia licenses these technologies to other companies but says Apple has not paid for the right to use them ever.
Ilkka Rahnasto, Nokia’s VP Legal & Intellectual Property, says in a release, “By refusing to agree appropriate terms for Nokia’s intellectual property, Apple is attempting to get a free ride on the back of Nokia’s innovation.”
What we actually know about software development, and why we believe it’s true.
Haven’t watched this yet but I’ve read great things about it.
Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.
Seems like a good blogging engine, both in terms of coding and UI quality. It’s not something that could replace the system I have running here (which has very specific requirements), but it does look like a good alternative to WordPress, Moveable Type, and so on.
Event-based programming has been highly touted in recent years as the best way to write highly concurrent applications. Having worked on several of these systems, we now believe this approach to be a mistake. Specifically, we believe that threads can achieve all of the strengths of events, including support for high concurrency, low overhead, and a simple concurrency model. Moreover, we argue that threads allow a simpler and more natural programming style.
We examine the claimed strengths of events over threads and show that the weaknesses of threads are artifacts of specific threading implementations and not inherent to the threading paradigm. As evidence, we present a user-level thread package that scales to 100,000 threads and achieves excellent performance in a web server. We also refine the duality argument of Lauer and Needham, which implies that good implementations of thread systems and event systems will have similar performance. Finally, we argue that compiler support for thread systems is a fruitful area for future research. It is a mistake to attempt high concurrency without help from the compiler, and we discuss several enhancements that are enabled by relatively simple compiler changes.
Revisions to Evidence-based Scheduling (EBS) in FogBugz.
Parents spend years trying to teach their children to be polite, and some of us had to learn at school how to properly address an archbishop. Yet, it seems that advice on courteousness and politeness in technical communication is in short supply; most of us learn these skills through what is euphemistically called “on the job training.” With enough bruises on my back to demonstrate the amount and variety of my experience in this area (though not my skill), here are some of the things I’ve learned.
Interface complexity is an issue every designer wrestles with when designing a reasonably sophisticated application. A complex interface can reduce user effectiveness, increase the learning curve of the application, and cause users to feel intimidated and overwhelmed.
NaCl (pronounced “salt”) is a new easy-to-use high-speed software library for network communication, encryption, decryption, signatures, etc. NaCl’s goal is to provide all of the core operations needed to build higher-level cryptographic tools.
Of course, other libraries already exist for these core operations. NaCl advances the state of the art by improving security, by improving usability, and by improving speed.
The following parable will take you on a journey through the creation of a Git-like system from the ground up. Understanding the concepts presented here will be the most valuable thing you can do to prepare yourself to harness the full power of Git. The concepts themselves are quite simple, but allow for an amazing wealth of functionality to spring into existence. Read this parable all the way through and you should have very little trouble mastering the various Git commands and wielding the awesome power that Git makes available to you.
FreeBSD How-To: Postfix + SMTP TLS Auth + Dovecot IMAPs, POP3s + Squirrelmail-ssl + ClamAV + Anti Spam with bogofilter and procmail
This is for when I eventually set up Dovecot for IMAP access to the mailboxes on my server.
Here’s the list:
- Lack of discipline
- Big egos
- Being a bad communicator
- Forgetting about the customer
- Not prioritizing the work properly
I think everybody’s guilty of these from time to time, to one degree or another.
Finger trees are an incredibly elegant and simple structure for implementing sequence-based data structures. They’re primarily used in functional languages, but there’s nothing stopping an imperative-language programmer from using them as well. […] What finger trees do is give me a way of representing a list that has both the convenience of the traditional cons list, and the search efficiency of the array based method.
Also see the follow-up article that covers some things not mentioned in the original one.
An excellent model for describing RESTful systems.
I’ve worked at two kinds of companies in my career:
- those with open and honest communication
- those whose communications better resembled Soviet-style propaganda
As a manager, I’ve always considered accurate information one of my most important assets. I need to know where we are and what it’s going to take to succeed. My team has standing orders to let me know as soon as they figure out that they’re not going to make it so we can adjust the plan.
UMAC is a message authentication code: an algorithm for generating authentication tags, which are used to ensure the authenticity and integrity of transmitted messages. UMAC is the fastest message authentication code that has been reported on in the cryptographic literature. First described in 1999, UMAC has undergone significant revisions since its introduction. Large algorithmic changes were made in 2000 to make UMAC faster on short messages. Small algorithmic changes were made in 2004 and a number of UMAC options were eliminated for simplicity.
Specified in RFC4418.
EtherPad is the only web-based word processor that allows people to work together in really real-time.
A free open source stylesheet for the Subversion index web page. The XSLT and CSS is fully customizable. There is icons for folders and many different filetypes. Install Repos Style as it is or use is as a sample XSLT to design your own. A simple log viewer is also included.
On the value of basic research and pure science and on how the business obsession of purely focusing on applied research, i.e., aiming towards productisation, is ultimately harmful.
…can adapt dynamically to the number of elements stored, while assuring a maximum false positive probability. The technique is based on sequences of standard bloom filters with increasing capacity and tighter false positive probabilities, so as to ensure that a maximum false positive probability can be set beforehand, regardless of the number of elements to be inserted.
There’s some surprises there.
Bonus! I won’t be upgrading straight away, but there’s a pretty strong chance I’ll be upgrading mine within the next month.