#programming

448 bookmarks tagged with #programming · RSS Feed · ← All Tags

Programming is Dead

https://hamptonmakes.com/blog/2026/02/06/programming-is-dead.html
I’ve heard so many engineers say “Oh, I dabble but I just don’t think AI can do it well” are just in absolute denial at this point. Yes, AI can do a terrible job right now if you don’t wield it properly. The loom can make a mess of things if it’s improperly used. But, this is the worst these tools will ever be. They will only get better.

1. Introduction to Rivulet / Jo Wood | Observable

https://observablehq.com/@jwolondon/rivulet-intro?collection=%40jwolondon%2Frivulet
Rivulet is an esolang ('esoteric language') written by Daniel Temkin that uses gylphs to represent programming instructions. While it would not be a practical basis for most programming tasks, it does represent an interesting space between text-encoded programming languages and graphically encoded data visualization. As a language it invites careful thought about 'code layout', as its design offers much more flexibility in visual form than most languages. It encourages us to consider the role that design choices and aesthetics play in helping construct visual schemata. It challenges notions of 'efficiency' in the construction and interpretation of computer code, much like the Atypography movement does with text.

The Return of Language-Oriented Programming | Middle of Nowhere

https://blog.evacchi.dev/posts/2025/11/09/the-return-of-language-oriented-programming/
In recent years, there has been something of a “winter” in DSL design and development due to the high maintenance costs and the tooling expectations from end users. This blog post explored the syntactic dimension of “token-efficiency” in DSL design: I invite you to explore more of this space, including semantics; I, for one, will welcome more crazy DSL implementations!

Thinking About Thinking With LLMs | Davis Haupt

https://davi.sh/blog/2025/09/thinking-with-llms/
New tools always make it easier to code with a shallower understanding of the system. Claude Code, Cursor and their ilk are bringing programming closer to natural language just like C and Java and Python once did. This is a good thing! It’ll lead to the continued democratization of programming and ever more people in conversation with computers. But I don’t think this changes the fundamental reality that the best programmers aren’t the ones that make the widest use of the highest abstractions. That’ll continue to be those who dig down and understand what’s happening at a deeper level — that understanding will always lead to more deft use of any tools that programmers have at their disposal.

Phrase origin: Why do we "call" functions? – Arthur O'Dwyer – Stuff mostly about C++

https://quuxplusone.github.io/blog/2025/04/04/etymology-of-call/
On StackExchange, someone asks why programmers talk about “calling” a function. Several possible allusions spring to mind: Calling a function is like calling on a friend — we go, we stay a while, we come back. Calling a function is like calling for a servant — a summoning to perform a task. Calling a function is like making a phone call — we ask a question and get an answer from outside ourselves. The true answer seems to be the middle one — “calling” as in “calling up, summoning” — but indirectly, originating in the notion of “calling for” a subroutine out of a library of subroutines in the same way that we’d “call for” a book out of a closed-stack library of books.

How I code with LLMs these days

https://www.phillipcarter.dev/posts/coding-with-llms
To me, all signs point towards software engineering changing radically as a profession to be much more oriented around the what and why of software, and much less around the how. This will cause disruption at a massive scale in the long run. But in the short run, it's just a lot of fun to play with these tools and see what they can do.

Playground Wisdom: Threads Beat Async/Await | Armin Ronacher's Thoughts and Writings

https://lucumr.pocoo.org/2024/11/18/threads-beat-async-await/
It's been a few years since I wrote about my challenges with async/await-based systems and how they just seem to not support back pressure well. A few years later, I do not think that this problem has subsided much, but my thinking and understanding have perhaps evolved a bit. I'm now convinced that async/await is, in fact, a bad abstraction for most languages, and we should be aiming for something better instead and that I believe to be thread.

Before You Can Have Smalltalk, You Must First Defeat Capitalism. — Matthew Gaudet

https://www.mgaudet.ca/blog/2024/10/28/before-you-can-have-smalltalk-you-must-first-defeat-capitalism
The title of this blog post is at least a little sarcastic, but I think is an honest to goodness truth: If you want to build a future that involves beautiful systems like Smalltalk, you must first rebuild the economic environment wherein it could be built. Wherein it could succeed! These systems idealized in lamentations at SPLASH all seem to me to be products of economic surplus combined with the right people. We need an economy that has surpluses around for people to do explorations.

Pretty State Machine Patterns in Rust

https://hoverbear.org/blog/rust-state-machine-pattern
Rust lets us represent State Machines in a fairly good way. In an ideal situation we'd be able to make enums with restricted transitions between variants, but that's not the case. Instead, we can harness the power of generics and the ownership system to create something expressive, safe, and understandable.

New Hampshire installs first historical marker to honor computer programming - The Verge

https://www.theverge.com/platform/amp/2019/6/16/18680941/new-hampshire-basic-first-historical-marker-beginners-all-purpose-symbolic-instruction-code
New Hampshire has installed what appears to be the first historical highway marker honoring computer programming, according to the Concord Monitor. The new sign honors BASIC, Beginner’s All-purpose Symbolic Instruction Code, a programming language that was invented at Dartmouth College in 1964.

Six nifty ES6 tricks

http://www.2ality.com/2016/05/six-nifty-es6-tricks.html
const Storage = Sup => class extends Sup { save(database) { ··· } }; const Validation = Sup => class extends Sup { validate(schema) { ··· } }; You can use them to compose a class Employee as follows. class Person { ··· } class Employee extends Storage(Validation(Person)) { ··· }

SqueakJS by Bert Freudenberg

http://bertfreudenberg.github.io/SqueakJS/
SqueakJS executes Squeak in a web page without a plugin. It is a fully capable virtual machine implemented in pure JavaScript running unmodified Squeak images. Squeak is a modern implementation of Smalltalk, the original dynamic object-oriented programming environment. It runs bit-identically on virtually any platform, and now in the web browser, too.

SqueakJS by Bert Freudenberg

http://bertfreudenberg.github.io/SqueakJS
SqueakJS executes Squeak in a web page without a plugin. It is a fully capable virtual machine implemented in pure JavaScript running unmodified Squeak images. Squeak is a modern implementation of Smalltalk, the original dynamic object-oriented programming environment. It runs bit-identically on virtually any platform, and now in the web browser, too.

Hexagonal Grids

http://www.redblobgames.com/grids/hexagons/
Hexagonal grids are used in some games but aren’t quite as straightforward or common as square grids. I’ve been collecting hex grid resources for nearly 20 years, and wrote this guide to the most elegant approaches that lead to the simplest code, largely based on the guides by Charles Fu and Clark Verbrugge. I’ll describe the various ways to make hex grids (I’ve counted 74 so far!), the relationships between them, as well as some common algorithms. Many parts of this page are interactive; choosing a type of grid will update diagrams, code, and text to match.

Hexagonal Grids

http://www.redblobgames.com/grids/hexagons
Hexagonal grids are used in some games but aren’t quite as straightforward or common as square grids. I’ve been collecting hex grid resources for nearly 20 years, and wrote this guide to the most elegant approaches that lead to the simplest code, largely based on the guides by Charles Fu and Clark Verbrugge. I’ll describe the various ways to make hex grids (I’ve counted 74 so far!), the relationships between them, as well as some common algorithms. Many parts of this page are interactive; choosing a type of grid will update diagrams, code, and text to match.

Liskov substitution principle - Wikipedia, the free encyclopedia

http://en.wikipedia.org/wiki/Liskov_substitution_principle
Substitutability is a principle in object-oriented programming. It states that, in a computer program, if S is a subtype of T, then objects of type T may be replaced with objects of type S (i.e., objects of type S may be substituted for objects of type T) without altering any of the desirable properties of that program (correctness, task performed, etc.).

JS adolescence – James Padolsey

http://james.padolsey.com/javascript/js-adolescence/
For me there was a time that can only be described as adolescence in the field of programming and more specifically JavaScript. This period was characterised by a certain laziness and hubris. I thought I was right. I thought others were wrong. I could see no path but the very strict one that I had boxed myself into through a process in which I longed for certainty and the expulsion of realistic doubt.

JS adolescence – James Padolsey

http://james.padolsey.com/javascript/js-adolescence
For me there was a time that can only be described as adolescence in the field of programming and more specifically JavaScript. This period was characterised by a certain laziness and hubris. I thought I was right. I thought others were wrong. I could see no path but the very strict one that I had boxed myself into through a process in which I longed for certainty and the expulsion of realistic doubt.

Computers are very good at the game of Go

http://blog.printf.net/articles/2012/02/23/computers-are-very-good-at-the-game-of-go
Zen19 is beating extremely strong amateurs, but it hasn't beaten professionals in games with no handicap yet. That said, now that we know that Zen19 is using Monte Carlo strategies, the reason why it seems to be getting stronger as it's fed more CPU time is revealed: these strategies are the most obviously parallelizable algorithms out there, and for all we know this exact version of Zen19 could end up becoming World Champion if a few more orders of magnitude of CPU time were made available to it. Which would feel like a shame, because I was really looking forward to seeing us figure out how brains work.

Basic instinct: how we used to code • Reg Hardware

http://www.reghardware.com/2012/04/27/retro_week_basic_instinct/
I’ve recently caught myself, like some horrific solo re-write of the Monty Python Four Yorkshiremen sketch, waxing lyrical to my two iPod-wielding young ‘uns about the good old days; when men were men, computers were effectively clockwork, and computer games… well, come to think about it, they still cost about 69p. But you didn’t download them from an app store. Oh no. They came bound into computer magazines and had to be typed in by hand. And oh yes, they were in an arcane language called Basic.

Basic instinct: how we used to code • Reg Hardware

http://www.reghardware.com/2012/04/27/retro_week_basic_instinct
I’ve recently caught myself, like some horrific solo re-write of the Monty Python Four Yorkshiremen sketch, waxing lyrical to my two iPod-wielding young ‘uns about the good old days; when men were men, computers were effectively clockwork, and computer games… well, come to think about it, they still cost about 69p. But you didn’t download them from an app store. Oh no. They came bound into computer magazines and had to be typed in by hand. And oh yes, they were in an arcane language called Basic.

Nick Bradbury: Old Farts Know How to Code

http://nick.typepad.com/blog/2012/05/old-farts-know-how-to-code.html
"Old farts" are often excluded from that culture, not because we're lousy coders but because we won't put up with that shit. We have lives, we have families, we have other things that are important to us. We're not about to sleep at our desks and trade watching our kids grow up for the promise of striking it rich. Especially when the people who really strike it rich aren't the ones writing code.

Rands In Repose: Please Learn to Write

http://www.randsinrepose.com/archives/2012/05/16/please_learn_to_write.html
Writing appears more forgiving because there is no compiler or interpreter catching your its and it’s issues or reminding you of the rules regarding that or which. Here’s the rub: there is a compiler and it’s fucking brutal. It’s your readers. Your readers are far more critical than the Python interpreter. Not only do they care about syntax, but they also want to learn something, and, perhaps, be entertained while all this learning is going down. Success means they keep coming back - failure is a lonely silence. Python is looking pretty sweet now, right?

Lisp REPL in Vendetta Online

http://www.a1k0n.net/2005/11/04/lisp-repl-vendetta-online.html
Vendetta Online has a Lisp environment (using SBCL) which controls much of its NPC behavior and will soon be in charge of generating player and NPC missions. Partly in order to get around some thread-safety issues, and partly for convenience we built an REPL into a secret chat channel. (it only responds to developer accounts)

What have you tried? - Matt Gemmell

http://mattgemmell.com/2008/12/08/what-have-you-tried/
The problem is that this person’s problem-solving technique is to ask for the solution. Not to seek advice on how to approach the task, or ask for the names of likely classes to look into, or a link to an example - but to just ask for the code, fully formed and ready to go. This is not problem solving, and software engineering is entirely about problem solving.

What have you tried? - Matt Gemmell

http://mattgemmell.com/2008/12/08/what-have-you-tried
The problem is that this person’s problem-solving technique is to ask for the solution. Not to seek advice on how to approach the task, or ask for the names of likely classes to look into, or a link to an example - but to just ask for the code, fully formed and ready to go. This is not problem solving, and software engineering is entirely about problem solving.

inessential.com: Mac Text Editors and Navigation

http://inessential.com/2011/11/27/mac_text_editors_and_navigation
Unfortunately, there’s no standard for Go to Line in Mac text editors. Each editor does it differently, and they usually screw up at least one part of it so that it’s not-particularly-usable. (Which causes me to curse through my nose, throw one of the plush toys they permit me to have, and then run back to Mama Terminal for solace.)

Code: Flickr Developer Blog » Flipping Out

http://code.flickr.com/blog/2009/12/02/flipping-out
Flickr is somewhat unique in that it uses a code repository with no branches; everything is checked into head, and head is pushed to production several times a day. This works well for bug fixes that we want to go out immediately, but presents a problem when we’re working on a new feature that takes several months to complete. How do we solve that problem? With flags and flippers!

Java is not the new COBOL | Craig Tataryn's .plan

http://tataryn.net/2011/11/java-is-not-the-new-cobol
Given the above facts I think you’ll agree, Java is not stagnant, it’s getting much better on the eyes and fingers and it has been adopted by cool, non-stodgy companies. Then perhaps you’ll also agree it’s wrong to say Java is the new COBOL, just as wrong as saying Ruby is the new Java. Nope, not buying it.

Yield Thought, Work Is Fascinating: The Metagame

http://yieldthought.com/post/5862066767/work-is-fascinating-metagame
"I started thinking about programmer performance a while ago. Everybody will tell you that you can’t measure programmer productivity, but this is at best a half-truth. We can, and we should. Perhaps what we shouldn’t do is use those measurements to compare programmers to each other, but we can definitely measure ourselves."

Loyal Opposition to Const, Private, Freeze, Non-Configurable, Non-Writable...

https://mail.mozilla.org/pipermail/es-discuss/2011-November/017872.html
And JavaScript is one of the *most* dynamic of the mainstream programming languages. Not only can you can pass any object to any function, but you can call a method with any number of arguments, easily modify the prototypes of other objects, introspect on any object's properties with a simple loop, replace any member function with a wrapped version, attach new properties to any object ... the list goes on.

The Bytes Brothers

http://www.gamebooks.org/show_series.php?id=1171
Sort of a cross between Encyclopedia Brown and Micro Adventure, each volume in this series contains several short mysteries. The user must read carefully and run very simple BASIC computer programs in order to guess the solutions.

Micro Adventure

http://www.gamebooks.org/show_series.php?id=1163
These linear novels are occasionally interrupted by simple BASIC computer programs designed to be typed in and played. The idea is to simulate key moments in the story, though the programs are generally of the extremely simplistic "type in a word or number and hit ENTER" variety. The series was followed by the Magic Micro Adventure books for younger readers.

Renae Bair » Blog Archive » “My husband is a programmer; I have no idea what that means.”

http://www.renaebair.com/2010/08/11/my-husband-is-a-programmer-i-have-no-idea-what-that-means
"This always blows my mind. You’re married to someone, and you aren’t interested enough in the person to know anything about what they do with nearly 40-50% of their time, aside from their job title? Is it dangerous to draw a correlation between high divorce rates and the lack of interest that people have in their partners lives? It’s easy to fall in love with the “idea” of a person when you first meet them. But I think it would be hard to endure a lifetime of ups and downs, trials and tribulations and the everyday challenges that life throws at two people, if those partners didn’t have a truly vested interest in each other’s passions and life’s work. And if you don’t have even a basic understanding of what your spouse does with 40+hours of his/her week, then you’re not on a team."

Inweb: Inform

http://inform7.com/sources/inweb
"A key step in literate programming, in our view at least, is publishing. It means tidying up and properly explaining code, and is a process much like writing up roughly-correct ideas for journal publication. The main aim of the Inform project since autumn 2007 has been to publish the whole work. Each web, as it is published, becomes open-source under the Artistic License 2.0, and eventually the whole work will be complete. We believe it will then be the largest literate program ever published."

Atari 1200XL vs. Dell Inspiron 1525

http://www.newbreedsoftware.com/bill/photos/atari1200xl_vs_dellinspiron1525
"I decided: why not ignore the fact that my first computer and my latest computer are 27 years apart? Why not stack them on top of each other, take some silly photos, and put up a chart comparing how many kilo-whatsits of X the Atari had to how many giga-whosits the Dell had. So you have it... a brief comparison of the classic and short-lived Atari 1200XL to the modern and also short-lived Dell Inspiron 1525."

Matt Legend Gemmell – What have you tried?

http://whathaveyoutried.com
"The problem is that this person’s problem-solving technique is to ask for the solution. Not to seek advice on how to approach the task, or ask for the names of likely classes to look into, or a link to an example – but to just ask for the code, fully formed and ready to go. This is not problem solving, and software engineering is entirely about problem solving."

Source Code of Several Atari 7800 Games Released! | ProgrammerFish - Everything that's programmed!

http://www.programmerfish.com/source-code-of-several-7800-games-released
"Remember the Dig Dug or Centipede or Robotron? They used to be favorites wheimagen Atari’s 7800 series was still around. Now since the era of those consoles is over and a different world of interactive reality gaming has taken over, Atari Museum, a site run by Atari enthusiast, has got hold of has unofficially source code of over 15 games for the coders and enthusiasts to admire the state-of-the-art (because this is what it was back then) of game development."

Read-optimize Your Source Code - Brendel Consulting

http://www.brendel.com/consulting/blog/2009/06/read-optimized-source-code.html
"In fact, I claim that if you don't take those rules to heart in your own source code then you are either unprofessional, lazy, not a team-player, or all of the above. If you as a software developer take pride in your professionalism and quality of your work then you have to consider that it is not only the achieved functionality for which you are being paid: The code you produce in almost all cases becomes property of your employer, and thus, the code itself also a product (and actually the most important product) you deliver. And how useful that code if for the team who has to work with it is what really determines its value."

Quetzalcoatal: A public service announcement

http://quetzalcoatal.blogspot.com/2008/11/public-service-announcement.html
"If your code will be seen by the world at large, one of your first tasks should be to write documentation. Document all functions as soon as you write them (before is also helpful). Provide samples on how to use code as soon as you finish a module (or earlier, if possible). Do not wait until your 5.0 release. Do not wait until your 1.0 release. Do not even wait until your 0.5 release. Do it as you write your code. The sooner, the better."

Dynamic programming futures | InfoWorld | Test Center | October 13, 2008 | By Peter Wayner, IDG News Service

http://weblog.infoworld.com/archives/emailPrint.jsp?A=/article/08/10/13/42TC-dynamic-futures_1.html&R=printThis
"What will the world of dynamic programming languages and Web applications look like in five years? This is one of those highly personal and deeply philosophical questions best saved for after dessert is served, the drinks are poured, and the sidearms are safely locked away."

Paver: Build, Distribute and Deploy Python Projects — Paver v0.8 documentation

http://www.blueskyonmars.com/projects/paver
"Paver is a Python-based build/distribution/deployment scripting tool along the lines of Make or Rake. What makes Paver unique is its integration with commonly used Python libraries. Common tasks that were easy before remain easy. More importantly, dealing with your applications specific needs and requirements is now much easier."

Stevey's Blog Rants: Programming's Dirtiest Little Secret

http://steve-yegge.blogspot.com/2008/09/programmings-dirtiest-little-secret.html
"Next dead-giveaway: non-typist code is... minimalist. They don't go the extra mile to comment things. If their typing skills are really bad, they may opt to comment the code in a second, optional pass. And the ones who essentially type with their elbows? They even sacrifice formatting, which is truly the most horrible sin a programmer can commit. Well, actually, no, scratch that. It's the second worst. The worst is misspelling an identifier, and then not fixing it because it's too much typing. But shotgun formatting is Right Up There."

Mercurial Queues - Mozilla Developer Center

http://developer.mozilla.org/en/Mercurial_Queues
"Mercurial Queues, or MQ, is a Mercurial extension that lets you keep work in progress as mutable patches, instead of as immutable changesets. ... The output of a developer (on a good day, anyway) is patches. The MQ extension lets you treat a stack of patches as works-in-progress. You can apply them as Mercurial changesets, unapply them, edit them, and when they're done, turn them into permanent changesets and push them."

The Big Rewrite - ChadFowler.com Rails, Ruby, Software, and Stuff

http://www.chadfowler.com/the-big-rewrite
"But by making it a Big Bang release, you’ve maximized the chances that you’ll be behind schedule when you get to the end ... Imagine going to the hospital for a kidney transplant, and before and during the surgery saying to the surgeon: “Oh, and while you’re already in there digging around, I’ve had some problems with my lungs ... In many cases, these Big Rewrite projects have resulted in unhappy customers, political battles, missed deadlines, and sometimes complete failure to deliver. In all cases, the projects were considerably harder than the projects’ initiators ever thought they would be. ... While we’re all in the back creating the next revision of a product, who’s tending to the day to day issues of the existing product? Typically, it’s the domain experts and the original implementers of the product."

Tabs versus Spaces

http://www.jwz.org/doc/tabs-vs-spaces.html
"My opinion is that the best way to solve the technical issues is to mandate that the ASCII #9 TAB character never appear in disk files: program your editor to expand TABs to an appropriate number of spaces before writing the lines to disk. That simplifies matters greatly"

pagetable.com » Blog Archive » How MOS 6502 Illegal Opcodes really work

http://www.pagetable.com/?p=39
"The original NMOS version of the MOS 6502, used in computers like the Commodore 64, the Apple II and the Nintendo Entertainment System (NES), is well-known for its illegal opcodes: Out of 256 possible opcodes, 151 are defined by the architecture, but many of the remaining 105 undefined opcodes do useful things."

Arc's Out

http://paulgraham.com/arc0.html
This description of things makes me want to steer a wide course around Arc. ASCII-only? HTML tables? Quick & dirty versus clogged with mud.

Jim Minatel: ASP.NET, XML, CSS, Ajax Book Editor: Wrox Blox launches with Silverlight, Adobe AIR, IPhone and LINQ

http://wroxblog.typepad.com/minatel/2007/10/wrox-blox-launc.html
"Wrox Blox are short, electronic-only, downloadable, and typically going to be on hot cutting edge topics. For short, these first few range from about 20-40 pages ... And, here's something I think you'll find cool: they're DRM free."

ongoing - JSON and XML

http://www.tbray.org/ongoing/When/200x/2006/12/21/JSON
"Use XML - If you want to provide general-purpose data that the receiver might want to do unforeseen weird and crazy things with, ... or if the data is potentially long-lived (as in, more than seconds) XML is the way to go."

Rubber Ducking

http://c2.com/cgi/wiki?RubberDucking=
"Place a rubber duck on your monitor and describe your problems to it. There's something magical about stating your problems aloud that makes the solution more clear."

C REPL

http://neugierig.org/software/c-repl
"Other programming languages, and especially C, use a "compile-run" model, and don't provide a REPL. Let's fix that."

ONLamp.com: Introducing Lua

http://www.onlamp.com/lpt/a/6467
"What if you could provide a seamlessly integrated, fully dynamic language with a conventional syntax while increasing your application's size by less than 200K on an x86? You can do it with Lua!" Looks like JavaScript from an alternate universe. Lots o

CocoaJSON

http://toxicsoftware.com/blog/index.php/weblog/entry/cocoajson
"Blake Seely released some code yesterday to convert Cocoa datatypes to JSON. I've had similar code that Ive been meaning to put online for a while now. So now the world has gone from zero to two Cocoa code-bases to read/write JSON."

PHP: usort - Manual

http://us2.php.net/manual/en/function.usort.php
When I grouse about PHP not having good meta magic, here's a case in point: "Sort an array by values using a user-defined comparison function" My kingdom for an anonymous function or function reference or *something*

Inspirational Technology: XML is done

http://www.xmldatabases.org/WK/blog/6530_XML_is_done.item
"...[XML Schema] is causing developers to adopt the strongly typed XML concept and create system of despicable fragility, when they should be leveraging the flexibility of XML to build systems of surprising resilience."

Tripoli: FAQ

http://tripoli.sourceforge.net/faq.html
"It has the special property that you can ask to inspect or remove a triple before it has been added, and the triplespace will supply you with the triple you asked for when it becomes available."

Big Ball of Mud

http://www.laputan.org/mud/mud.html
"A BIG BALL OF MUD is a casually, even haphazardly, structured system. Its organization, if one can call it that, is dictated more by expediency than design. Yet, its enduring popularity cannot merely be indicative of a general disregard for architecture.

"No Dashes Or Spaces" Hall of Shame

http://www.unixwiz.net/ndos-shame.html
"I've observed one technique that has been nearly universal: the practice of refusing to allow spaces or dashes in credit card number entry fields ... If there were some security or integrity reason for disallowing these characters, I guess I'd buy it, bu

Developing with Core Data

http://developer.apple.com/macosx/coredata.html
"Core Data, new in Tiger, completes the Cocoa vision for building well-factored applications based on the Model-View-Controller (MVC) pattern by providing a strong, flexible, and powerful data model framework."

About Ivy

http://www.tls.cena.fr/products/ivy/about.html
Software bus, messages are strings, callbacks attached to regular expression matches.

The ctypes module

http://starship.python.net/crew/theller/ctypes
"ctypes is a Python package to create and manipulate C data types in Python, and to call functions in dynamic link libraries/shared dlls. It allows wrapping these libraries in pure Python."

Open Laszlo

http://openlaszlo.org
"Laszlo is an open source platform for the development and delivery of rich Internet applications on the World Wide Web" Hmm, open source Laszlo versus very expensive Flex. This should be interesting

newLISP - Home

http://www.newlisp.org
"newLISP is a general purpose scripting language for developing Web applications and programs in general and in the domain of Artificial Intelligence (AI) and statistics."

Voice recognition for dashboard

http://mail.gnome.org/archives/dashboard-hackers/2004-September/msg00015.html
"It would be very cool if dashboard could create cluepackets from the speechrecognition software and dig up info on what whatever you are talking about." Wow, that would be kinda eerie if it worked well :)

EmacsWiki: SpeedBar Without a Separate Frame

http://www.emacswiki.org/cgi-bin/wiki/SpeedBar
"The default behavior of speedbar is to create a second emacs frame, separate from the main editing frame. As with all things emacs, this default behavior can be modified so that no separate frame is created, and the speedbar becomes just another buffer w

x+=x++;

http://weblogs.asp.net/lucabol/archive/2004/08/31/223580.aspx
"YOU ARE NOT GOING TO WRITE THAT CODE" Uhh. Who would write such a thing and why?

MF Bliki: StranglerApplication

http://martinfowler.com/bliki/StranglerApplication.html
"An alternative route is to gradually create a new system around the edges of the old, letting it grow slowly over several years until the old system is strangled."

Usability and editing code: TextShapeView

http://michael-mccracken.net/blog/blosxom.pl/2004/06/21#meetTSV
"I've hacked together a widget for an alternative view of text. It's based on the idea that familiar source code is easily recognizable by a programmer using indentation alone." Very cool. Browse code by its shape.

SQLiteServer

http://sqlabs.net/index.shtml?sqliteserver=
Umm... WHAT?! US$269 for a server wrapped around SQLite?! I must either be missing something very good about it, or this is a crazy rip-off.

Are developers stealing code?

http://news.zdnet.co.uk/software/developer/0,39020387,39156544,00.htm
"Developers who keep a copy of code that they wrote in one job and then reuse it for a subsequent employer seem blithely unaware of the legal implications"

The Case Against SELECT *

http://www.parseerror.com/sql/select*isevil.html
"You may be in the habit of using SELECT * to fetch fields in your SQL queries ... there are several very good reasons to break this habit and enumerate the fields in any query."

Tree House Ideas: DataCrux

http://treehouseideas.com/datacrux
" An Objective-C framework to easily store and retrieve data objects in an embedded SQL database without a server process or query strings." Seems like a Cocoa analogue to Python with SQLite and SQLObject