recentpopularlog in

mcherm : articles/programming   55

defmacro - Functional Programming For The Rest of Us
Nice essay introducing functional programming and describing some of the benefits, aimed at a Java programmer who knows nothing about it.
programming  functional  articles/programming  essay  articles 
february 2008 by mcherm
Fast Functional Lists, Hash-Lists, Deques and Variable Length Arrays (ResearchIndex)
A paper describing a new immutable data structure, the "VList". This is designed to be a better singly-linked list. It allocates space in geometrically increasing block sizes, starting a new block if two still-live lists share a tail.
datastructures  programming  lisp  articles/programming  via:Wikipedia 
february 2008 by mcherm
Executable Grammars in Newspeak (PDF)
A paper describing "Newspeak" a SmallTalk variant which they use to build parsers in a very readable fashion.
programming  articles/programming  articles  parsing  smalltalk  newspeak  languages 
february 2008 by mcherm
Stretching the Storage Manager: Weak Pointers. and Stable Names in Haskell
Research paper by Simon Peyton Jones et al. where they show how to build memoization in Haskell. To do so they invent a better version of weak pointers which are particularly interesting. I also found a version available online via Google Book Search.
articles/programming  garbagecollection  programming  haskell 
january 2008 by mcherm
Diploma Thesis: An Object-Oriented Programming Model for Event-Based Actors
The thesis which lead to the creation of Scala's Actor model, a useful approach to parallel programming which can run on the JVM but is NOT the same as the threading model.
programming  scala  articles/programming  parallelprogramming  threading 
january 2008 by mcherm
Digging into Ruby Symbols - O'Reilly Ruby
A useful essay on Ruby. Starts by talking about how you can use eval to generate code at runtime, with easy-to-follow examples that are very well-written. Then he gets into a description of Lisp macros and how THEY could be put into Ruby. Overall, a VERY
ruby  languages  languagedesign  metaprogramming  programming  essay  macros  articles/programming 
december 2007 by mcherm
qmailsec-20071101.pdf
Essay on building for VERY robust security. Written by the author of the qmail program.
programming  security  bugs  softwaredevelopment  via:BruceSchneier  articles/programming 
november 2007 by mcherm
JohnsonChapter4.pdf (application/pdf Object)
Very nice chapter from a Java programming book. May be worth buying the book itself! Among other things, it has an excellent writeup of MY beliefs on use of checked exceptions.
exceptions  java  programming  articles/programming  books  onlinebooks 
october 2007 by mcherm
Software Is Hard
Well-written essay on why programming is difficult to measure and predict.
programming  articles  essay  projectmanagement  softwaredevelopment  articles/programming 
october 2007 by mcherm
What every programmer should know about memory, Part 1 [LWN.net]
Detailed technical essay on the current state of memory (down to the physical level) and what that implies for programmers.
programming  computers  hardware  memory  articles/programming  articles 
october 2007 by mcherm
Programming with "Duh" Typing
Describes some advantages of inferred static typing.
blogentry  programming  languages  articles/programming  typing 
july 2007 by mcherm
Automated Whitebox Fuzz Testing
I haven't read this because I can't access it from work.
articles/programming  personal_net 
june 2007 by mcherm
Delegating Responsibility in Digital Systems: Horton's "Who Done It?"
How to delegate responsibility in a capabilities system. Essentially, it shows how to allow a capabilities-based security system to also keep track of WHO is performing each action, much like an ACL based system. Furthermore, it shows how to do so without
articles/programming  programming  security  capabilities 
may 2007 by mcherm
The Boom Hierarchy
How are Lists, Maps, Sets, and Trees related? What else fits?
personal_net  articles/programming  programming  datastructures 
may 2007 by mcherm
Hacking the Compiler: Reflections on Trusting Trust
This is the famous article in which Ken Thompson shows how one can (and he DID) hack a system invisibly by hacking the compiler. It is brilliant and should be required reading for security experts.
security  programming  humor  unix  articles/programming  hacking 
april 2007 by mcherm
Soft Coding - Worse Than Failure
It's an article in the Daily-WTF, but it's actually a useful and insightful article on software development. It compares "hardcoding" with the converse evil of "softcoding". Should be required reading.
articles/programming  programming  softwaredevelopment 
april 2007 by mcherm
Software development as a cooperative game - AC
Alistair Cockburn's "Scum Lecture" where he expresses the claim that software development is a cooperative game.
gametheory  game  softwaredevelopment  agile  articles/programming 
march 2007 by mcherm
Purely Functional Data Structures (Okasaki thesis)
Data structures in functional languages. There's also a book by the same author.
haskell  algorithms  articles/programming  programming  functional  datastructures  ml 
february 2007 by mcherm
Knowing.NET - Bullets Over Wrong Ways: Components, Functional Programming, and Essential Difficulties
Larry O'Brien writes that there is no silver bullet. In graphics display we have had multiple order-of-magnitude improvements in efficiency, but NOT in the real meat of software development.
articles/programming  personal_net  blogentry 
december 2006 by mcherm
Good Ideas, Through the Looking Glass (PDF)
A paper by Niklaus Wirth describing some ideas from the history of computers that seemed good at the time but turned out later to be bad ideas. Includes several interesting thoughts on programming language design (including at least one dig at Pascal).
personal_net  computerscience  languagedesign  articles/programming 
october 2006 by mcherm
SD Times - ‘Good Enough’...But for Whom?
Good Enough development - interesting idea, similar to my favorite features of agile development.
personal_net  articles/programming  agile  articles/projectmanagement 
october 2006 by mcherm
An Incremental Approach to Compiler Construction | Lambda the Ultimate
Article describing a course for teaching compiler-writing. The course is in scheme, and the most clever thing about it is that it procedes incrementally -- a few small steps each adding new features, but with a working compiler at all stages. It also assu
personal_net  compiler  articles/programming 
october 2006 by mcherm
Machine Obstructed Proof: How many months can it take to verify 30 assembly instructions?
Harsh! Brief (1 page) paper in which the author describes his first encounter with a program proving tool. And it sucked.
proving  personal_net  articles/programming 
september 2006 by mcherm
Coding Horror: Separating Programming Sheep from Non-Programming Goats
Describes paper which claims to be able to distinguish students capable of learning programming from those not capable.
teaching  personal_net  articles/programming  programming 
july 2006 by mcherm
Raganwald: Beware of the Turing Tar-Pit
Article arguing: don't build a system that's too powerful.
languagedesign  articles/programming 
july 2006 by mcherm
Consumer-Driven Contracts: A Service Evolution Pattern
In this essay, Ian Robinson of ThoughtWorks points out that once you publish a web service you may not know how clients are using the data it returns. This makes it difficult to change the returned data -- to add new features or to change or remove existi
articles/programming  versioning  xml 
june 2006 by mcherm
The Weird World of Bi-Directional Programming
Paper (in slideshow form) on lenses -- writing data transforms to create a "view" but still allowing edits to the "view" to be applied back to the source.
articles/programming  languages 
june 2006 by mcherm
The Next Mainstreem Programming Language - A Game Developer's Perspective
Excellent article (in PDF) on designing an ideal language for programming games. Lots of excellent insights. Takes many good ideas from haskel. By Tim Sweeny of Epic Games.
games  languages  programming  articles/programming  languages/haskell 
may 2006 by mcherm
Ned Batchelder: Own your data: ad-hoc representations
Article on why you should design your own data format for mission critical items.
articles/programming 
may 2006 by mcherm
Introduction to Petname Systems
An approach to solving the problem of making names self-authenticating (eg, via cryptography) yet human usable.
articles/programming  cryptography 
february 2006 by mcherm
Map-Reduce from Google Research
Research article by Google on how they implemented a tool for performing parallell algorithms across large clusters.
articles/programming  google  programming 
december 2005 by mcherm
beforeClarity.pdf (application/pdf Object)
Article by Fowler arguing that testability may be more important than
clarity of design.
articles/programming  testing 
october 2005 by mcherm
Joel on Software - Research into Variation in Programmer Ability
Joel Spolsky writes on actual research into variation in programmer ability.
articles/programming 
october 2005 by mcherm
Intentional Software: The information contents of programs
Thought provoking essay on how the problem is often FAR simpler than the solution coded in modern languages.
articles/programming  littlelanguages  intellij 
october 2005 by mcherm
Fabulous Adventures In Coding : Thin To My Chagrin
Interesting article on scripting languages vs "back end" languages and the uses for both.
articles/programming  javascript 
october 2005 by mcherm
Martin Fowler: DynamicTyping
Martin Fowler commenting (in complete agreement with my own thoughts on the
subject) about dynamic vs static languages and tools like IntelliJ.
articles/programming  intellij  typing 
october 2005 by mcherm
Lightweight Memory Transactions in Java
More advanced research paper on memory transactions as a threading mechanism that implements it in Java.
articles/programming  Microsoft  threading  memory  java 
october 2005 by mcherm
Composable Memory Transactions
Article from Microsoft research in which they propose transaction memory instead of locks. They implement it in Haskell, and manage to make transactions composable.
articles/programming  threading  memory  haskell 
september 2005 by mcherm
The C10K problem
Article on supporting VERY large numbers of clients with a web app (in unix).
articles/programming 
august 2005 by mcherm
How to be a Programmer
Excellent essay on the real skills needed by a progammer.
articles/programming  programming 
july 2005 by mcherm
Intentional Software: Notations and Programming Languages
Article claiming that a language with fewer "degrees of freedom" (ways to use each construct) can be MORE useful, rather than less powerful.
articles/programming  programming  language  languagedesign 
june 2005 by mcherm
Language Workbenches: The Killer-App for Domain Specific Languages?
An article describing "little languages" and claiming that there are new and better IDEs that make them a much more useful tool today or in the near future.
articles/programming  little_languages  domain_specific_languages  programming  fowler  ide 
june 2005 by mcherm
How I explained REST to my wife...
Rest explained. Also Why HTTP is a really good protocol.
articles/programming 
april 2005 by mcherm
Being Unitized
This has a wonderful quote about the tower of Babel.
articles/programming  unittest  test  babel 
april 2005 by mcherm
MF Bliki: ClockWrapper
Martin Fowler agrees with me that we need MockSystemClock. (Brief!)
articles/programming  fowler 
april 2005 by mcherm
What Is Software Design?
Building software is done by linkers, the CODE IS THE DESIGN. Classic article from 1992.
articles/programming  programming  design  build  agile 
april 2005 by mcherm
The .NET Abstraction Pile
Excellent essay on the MANY (46!) different abstraction layers in a serious program, from transistors on up.
articles/programming  abstractions 
april 2005 by mcherm
Plug-in Architechures
Description of Eclipse as an example of "all plug-in" architechures.
articles/programming  programming 
march 2005 by mcherm
Mocks Aren't Stubs
Martin Fowler's essay on the difference between mock objects and stubs, aka state-based testing versus interaction-style interaction.
articles/programming  agile 
february 2005 by mcherm

Copy this bookmark:





to read