2023.02.04: |
Building abstractions using higher-order functions |
2022.03.19: |
Why coding interviews aren't all that bad |
2022.02.05: |
Building binary trees from inorder-depth lists |
2022.01.22: |
Asimov, programming and the meta ladder |
2019.09.03: |
RSA - theory and implementation |
2019.05.07: |
To ORM or not to ORM |
2018.12.05: |
Type erasure and reification |
2018.11.14: |
Type inference |
2018.11.12: |
Unification |
2018.10.17: |
Covariance and contravariance in subtyping |
2018.10.01: |
Partial and Total Orders |
2018.08.08: |
On the uses and misuses of panics in Go |
2017.12.05: |
Book review: "Programming in Haskell" by Graham Hutton (2nd ed.) |
2017.08.16: |
Right and left folds, primitive recursion patterns in Python and Haskell |
2017.08.04: |
Clojure - the perfect language to expand your brain? |
2017.07.20: |
Book review: "Working Effectively with Legacy Code" by Michael C. Feathers |
2017.06.23: |
Clojure concurrency and blocking with core.async |
2017.06.07: |
Reducers, transducers and core.async in Clojure |
2017.05.08: |
Book review: "Essentials of Programming Languages" by D. Friedman and M. Wand |
2017.01.13: |
Benefits of dependencies in software projects as a function of effort |
2016.05.05: |
On the Composite and Interpreter design patterns |
2015.10.16: |
Directed graph traversal, orderings and applications to data-flow analysis |
2015.09.26: |
Memory layout of multi-dimensional arrays |
2015.01.28: |
Review of the Coursera Machine Learning course |
2015.01.09: |
Another look at my programming language arsenal |
2014.06.08: |
Moving to Github - one year recap |
2013.08.14: |
Fixing tests by writing more tests |
2013.06.09: |
Switching my open-source projects from Bitbucket to Github |
2013.02.06: |
Why I may not be able to help you |
2013.01.05: |
Understanding your own code |
2012.11.14: |
Some notes on POSIX regular expressions |
2012.11.10: |
Native Client vs. ActiveX |
2012.05.08: |
Coursera/Stanford online algorithms I course - a retrospective |
2012.03.04: |
Some thoughts on JSON vs. S-expressions |
2011.10.28: |
An observation on writing line-processing loop code |
2011.10.04: |
What TDD means to me |
2011.09.29: |
An interesting tree serialization algorithm from DWARF |
2011.08.02: |
Length-prefix framing for protocol buffers |
2011.02.07: |
How debuggers work: Part 3 - Debugging information |
2011.01.28: |
On spaces in the paths of programs and files on Windows |
2011.01.27: |
How debuggers work: Part 2 - Breakpoints |
2011.01.23: |
How debuggers work: Part 1 - Basics |
2010.10.31: |
pycparser now supports C99 |
2010.05.28: |
The intuition behind Fisher-Yates shuffling |
2010.05.22: |
Migrating my personal projects to Mercurial |
2010.05.14: |
scons instead of make |
2010.04.10: |
pycparser v1.06 released |
2009.11.30: |
Book review: "The Practice of Programming" by Kernighan & Pike |
2009.10.24: |
Nanocentury |
2009.06.29: |
Inspiring talk on programming by Damien Katz |
2009.05.08: |
Using GPL-ed code for in-house software |
2008.12.06: |
Book review: "Beginning game development with Python and Pygame" by Will McGugan |
2008.11.22: |
JSON is YAML, but YAML is not JSON |
2008.10.10: |
Writing tests first |
2008.09.15: |
stackoverflow.com - what the online programming community needs ? |
2008.08.29: |
Space-efficient list rotation |
2008.08.21: |
Robust exception handling |
2008.05.31: |
Nostalgia: my first programs |
2007.12.06: |
The "automatically generating code from specs" fallacy |
2007.10.10: |
Lisp on one hand, Ada on the other |
2007.09.01: |
"Progamming language choice and calibre of programmer" |
2007.08.08: |
Windows automation with AutoHotKey |
2007.07.27: |
DSL = Metalinguistic Abstraction |
2007.07.27: |
Bison looking for bison.simple on Windows |
2007.07.17: |
Firebug and HTML analysis |
2007.07.14: |
More about my RentACoder experiment |
2007.06.29: |
The end of the road for ESMS |
2007.06.15: |
hacking log |
2007.04.21: |
Doing some work at RentACoder |
2007.04.13: |
Unicode and character sets |
2007.04.08: |
Sudoku as a SAT problem |
2006.12.02: |
Programming language typing - a big mishmash |
2006.11.25: |
A taxonomy of typing systems |
2006.11.23: |
Fearing the "second system effect" in my rewrite of ESMS |
2006.11.18: |
null-modem, physical and virtual COM ports |
2006.08.11: |
My current programming language arsenal |
2006.05.17: |
Creeping featurism |
2006.04.13: |
Choosing an open-source license for my code |
2006.04.07: |
Non-blocking socket access on Windows |
2006.03.28: |
XML or YAML for configuration files |
2006.03.19: |
Blogger, Atom and HTTP clients |
2006.03.16: |
Book review: "Test driven development by example", Kent Beck |
2006.02.07: |
sloppy code, SourceForge CVS, memory manager |
2006.01.20: |
writing specs |
2005.12.23: |
some regex "best practices" |
2005.11.22: |
when bit endianness matters |
2005.11.18: |
understanding web programming & design with PHP / XML / XSLT |
2005.09.05: |
continuous improvment, or "my old code sucks" |
2005.08.19: |
an acquaintance with COM |
2005.07.15: |
Qt guidelenes for API design |
2005.07.10: |
more XML: XPath, XSLT |
2005.07.08: |
some thoughts on XML (XmlWriter and DOM) |
2005.06.29: |
some crypto work |
2005.06.12: |
lessons from PAIP |
2005.04.26: |
smoke tests |
2005.03.29: |
application of combinations |
2005.03.04: |
splitting MP3 files |
2005.02.23: |
interesting problem: buffered text view widget |
2005.02.22: |
M$ patent claim on IsNot |
2005.02.11: |
Joel's 12 steps for better code |
2005.02.03: |
refactoring |
2005.02.01: |
true cross-platform compatibility of Qt |
2005.01.25: |
"Stone soup" or guerilla prototypes |
2005.01.22: |
paradigm shift - parallel computing ? |
2005.01.18: |
using a cache to speed-up code |
2005.01.14: |
more on Qt and on coding frenzies |
2005.01.09: |
Book review: "C++ GUI Programming with Qt 3" |
2005.01.02: |
Qt - first impressions |
2004.12.21: |
motif - a painful experience |
2004.12.12: |
threads, serial ports, kernel, emacs and other vegetables |
2004.12.03: |
AI-ish attempt at teamsheet picking |
2004.11.18: |
more on P::RD and Scite scripting |
2004.11.12: |
tools for single-person development |
2004.10.15: |
different coding approaches |
2004.10.06: |
random names generator |
2004.09.27: |
Accessible GUI development - call for ideas |
2004.09.23: |
bugless coding style |
2004.09.15: |
BlooP |
2004.09.03: |
zone |
2004.08.05: |
what's up with the factorial ? |
2004.07.30: |
a cool algorithm for counting ones in a bitstring |
2004.07.09: |
parallel programming |
2004.05.25: |
Solving problem 1131 |
2004.05.25: |
1136 solved |
2004.05.25: |
more thoughts on previous problem |
2004.05.25: |
BST - postorder, reversed postorder |
2004.05.21: |
ACM programming problems solving |
2004.05.11: |
is "meta programming" the answer ? |
2004.04.21: |
a problem, two tricks - almost a solution |
2004.03.17: |
communication with a serial port |
2004.03.15: |
programming geek - EE geek |
2004.03.12: |
conversion tools that don't scale |
2004.03.08: |
my articles published at GameDev |
2004.03.03: |
solution to yesterday's problem |
2004.02.10: |
using Perl and VB to make windows development easier |
2004.01.23: |
deep signal comparison, memoization |
2004.01.15: |
lotsa code |
2004.01.09: |
thoughts on offshoring |
2003.12.30: |
source control |
2003.12.29: |
Book review: "Refactoring" by Martin Fowler |
2003.12.25: |
design problem |
2003.12.19: |
parser hacking |
2003.11.30: |
endian-ness of bits and bytes |
2003.11.05: |
rolling your own |
2003.10.27: |
beautiful |
2003.10.19: |
enlightment - I'm not alone ! |
2003.10.09: |
Ada and VHDL |
2003.10.08: |
Ada hacking |
2003.10.07: |
dfa minimization + log |
2003.10.03: |
NFA, cpp |
2003.09.03: |
type system |
2003.08.06: |
features features features |
2003.07.30: |
full fledged open-source project |
2003.07.29: |
great compilers tutorial |
2003.07.27: |
Tk annoyance |
2003.07.04: |
interesting problem (binary representation of big numbers) |
2003.06.20: |
Ruminations on chapter 17 of "Code Complete" |
2003.06.19: |
Duff's Device |
2003.06.19: |
Levels of abstraction... |
2003.05.26: |
Safari, Perl & Matrix |
2003.05.22: |
Ruminations on chapter 16 of "Code Complete" |
2003.05.20: |
some pondering on design of MIX in Perl |
2003.05.19: |
MIX in Perl |
2003.05.13: |
playing around with Jeeves |
2003.05.09: |
Coding in C++, wishing it were Lisp (or Perl) |
2003.05.06: |
Some quotes from Paul Graham's latest article |