ATL and Upside-Down Inheritance
Pretty much explains why I was scratching my head when I was trying to get into COM programming with ATL.
Pretty much explains why I was scratching my head when I was trying to get into COM programming with ATL.
Good article, misleading title. It has more to do with strategies for making software reliable.
Packrat parsing is a novel technique for implementing parsers in a lazy functional programming language. A packrat parser provides the power and flexibility of top-down parsing with backtracking and unlimited lookahead, but nevertheless guarantees linear parse time. Any language defined by an LL(k) or LR(k) grammar can be recognized by a packrat parser, in addition to many languages that conventional linear-time algorithms do not support. This additional power simplifies the handling of common syntactic idioms such as the widespread but troublesome longest-match rule, enables the use of sophisticated disambiguation strategies such as syntactic and semantic predicates, provides better grammar composition properties, and allows lexical analysis to be integrated seamlessly into parsing. Yet despite its power, packrat parsing shares the same simplicity and elegance as recursive descent parsing; in fact converting a backtracking recursive descent parser into a linear-time packrat parser often involves only a fairly straightforward structural change. This paper describes packrat parsing informally with emphasis on its use in practical applications, and explores its advantages and disadvantages with respect to the more conventional alternatives.
So, so true. Painfully true.
No, I’m not getting a Mac, but I’d like to have a poke through all this some time.
How cool!
A.K.A. The hot one from Bits.
This is exactly the kind of look I want. Not it just needs to be animated.
This project uses a language-based technique to unify two seemingly opposite programming models for building massively concurrent network services: the event-driven model and the multithreaded model. The result is a unified concurrency model providing both thread abstractions and event abstractions. We implemented the unified concurrency model in Haskell, a pure, lazy, functional programming language. Our implementation demonstrates how to use these techniques by building an application-level thread library with support for multiprocessing and asynchronous I/O mechanisms in Linux. The thread library is type-safe, is relatively simple to implement, and has good performance. Application-level threads are extremely lightweight (scaling to 10,000,000 threads!) and our scheduler, which is implemented as a modular and extensible event-driven system, outperforms NPTL in I/O benchmarks.
Of all of these, I think the one I fail most on is that it’s all too easy for me to become “the guy in the room”.
Small Java app for combining individual Windows .ico files of varying sizes and resolutions into one file.
FxCop is a code analysis tool that checks .NET managed code assemblies for conformance to the Microsoft .NET Framework Design Guidelines. It uses reflection, MSIL parsing, and callgraph analysis to inspect assemblies for more than 200 defects.
Classic Twenty! :-)
Would he ever just fuck off.
Me! A piece I wrote! Blogged about on CE! Yay!
I ripped a few tracks in the wrong format and I’m too lazy to rip them again.
This guy is excellent. Download the music from his site, listen to it, go to his shows.
Create and playback MP4 files with MPEG-4 Video and MPEG-4 Audio using The 3ivx Filter Suite.
That is, do REST right or you interfere with how the web’s meant to work.
How bloody cool is this! It’s a Java applet that graphs the structure of a webpage.
However, for better or worse it looks as if Europe will in a few decades speak a single language. […] This is presumably a taboo subject, but if present trends continue, French and German will eventually go the way of Irish and Luxembourgish: they’ll be spoken in homes and by eccentric nationalists.
As my fellow Irishman Jeremy Keith said, What. A. Wanker.