|
[ Cartoons, prints, and gift cards | Blogging | Computer consultancy | Safe spreadsheets fast with Excelsior | Modular spreadsheets and the Spreadsheet Parts Repository | Category theory | Economics and distance learning on the Web | Algebraic Web specification and other languages | Prolog | Artificial Intelligence | Holographic reduced representations | Writing | Photos | Recipes | Unusual clothes | Dialogues and quotes | Transhumanism | Publications | Free software ]
|
CartoonsI draw cartoons and sell gift cards and prints in Oxford. My cartoon blog has almost all my cartoons. There is a portfolio in Word format showing a selection here: I prepared it for the East Oxford Drawing Collective's November 2011 exhibition in the Said Business School. And there is a gallery here at scrapbook.com showing my technical and scientific cartoons. You can also see these by following the "Previous cartoon" link back from Somniloquacity, which is the last cartoon I drew for Dr Dobbs. BloggingI used to blog for the Dr Dobbs computer magazine. An index to my postings there can be found here and also down the right-hand column of this page. These indices point at copies of the postings that I've kept on my own site. Each posting also links to the copy on the Dr Dobbs site, but because Dr Dobbs keeps updating its site and changing the URLs, some of those links may no longer work. The postings include the technical cartoons linked back from Somniloquacity. Finally, I have a blog here which includes all the cartoons, some of the Dobbs postings, and some other random things. Computer consultancyI consult on spreadsheets (including Excel macros and Visual Basic for Applications), programming, Web development, data conversion, and writing — please see my Spreadsheet Factory page at www.spreadsheet-factory.com , and my Freelancers.Net portfolio. Safe spreadsheets fast: generating and reverse-engineering them with ExcelsiorDo you need, quickly and reliably, to make different versions of a spreadsheet, say by resizing it or changing its layout? My Excelsior program may help. With it, you can write spreadsheets as programs in a language that uses meaningful identifiers rather than A1-style cell names, then compile them into Excel or Google Spreadsheets. Excelsior separates layout from calculation, so you can arrange the same formulae in many different ways just by changing a few "layout" statements. Because of the meaningful identifiers, Excelsior programs are easy to read; and with Literate Excelsior, you can list your programs as nicely formatted Web pages. Considering how badly documented spreadsheets are, this is important. Papers about Excelsior, plus demonstrations and example programs, are linked from my Excelsior page. You can get a free download of Excelsior 1.3 for Windows, from my Spreadsheet Parts Repository Excelsior page. I am on the programme committee of the European Spreadsheet Risks Group. Modular spreadsheets and the Spreadsheet Parts RepositoryExcelsior is modular: you can store modules in different files, then include them in your program. I also have software for decompiling or reverse-engineering spreadsheets into Excelsior modules. Together, these let you share code between spreadsheets, something impossible in plain Excel. Taking this idea further, I have set up a Spreadsheet Parts Repository, from which you can download calculations you'd find hard to program yourself. Please see that page for more info, including demonstrations with Excel and Google Spreadsheets, and the contents list. Category TheoryStill on the technical side, my inspiration for Excelsior came from a branch of mathematics called category theory; and from Joseph Goguen's sheaf semantics, which uses category theory to model systems of interacting objects. I put some Web-based category theory demonstrations on my server: see also my n-Category Café thread about Graphical Category Theory Demonstrations. I am also interested in applying category theory to analogical problem solving and to machine learning. I've written a little about this in Generalisation is an adjunction; and in an n-Category Café posting about the benefits of category theory for cognitive science and Artificial Intelligence. That posting is in several sections, broken up by readers' comments, so this copy may be easier to read. I have some experiments in mechanising sheaf semantics, which I call System Limit Programming. Economics and distance learning on the WebAs well as the category theory demonstrations, I've worked on a variety of Web-based interactives. The biggest was Virtual Economy, a simulation for teaching economics over the Web. We put up versions of this on BBC News Online for Budget Day, together with a JavaScript Budget Budget Calculator. I worked with the Institute for Fiscal Studies and am part of the Virtual Worlds Group. Here's an early article on how we connected the models to the Web, and here is lots of technical information on VE. I've also implemented the spreadsheet-based economic simulations on the biz/ed Virtual Learning Arcade. This is how we did it. I've also played with generating news stories and diaries from economic forecasts. Here are some experiments. How does the story-generator work? It's described here. Algebraic Web specification and other languagesOr you could read about Algebraic Web Specification. Other attempts, of a quite different nature, at building tools for authoring interactive Web pages are Web-O-Matic (based on sheaf semantics) and WSM (based on the notion of Web pages as functions in a state-transition network). PrologI used to teach the programming language Prolog, and write a lot of my software in it. I have a few demonstrations of Prolog on the Web. One of them is a program that generates plots for SF stories. Another is Traveller, a little game where the student programs robot vehicles to buy and sell goods from shops arranged round a board. Here is an introduction to Prolog for mathematicians. I have also written: an automatic tester for Prolog; the GRIPS pre-processor for translating functional definitions into Prolog; and thoughts on Why Use Prolog?. There is some free software in other languages on my free software page. Artificial IntelligenceMy Prolog teaching was part of the Artificial Intelligence course I used to teach at Oxford. In teaching my students, I liked to build tiny but complete artificial intelligences or "agents", in their own in their own virtual environments (microworlds), to illustrate classical AI, and to demonstrate the difference between this and the so-called "nouvelle AI" approaches. I have done lots of commercial AI work, including implementing expert systems and Prolog compilers, teaching AI and Prolog, and writing a morphological generator for the Alvey Natural Language Toolkit. Holographic reduced representationsThese are an ingenious method for storing structured data in high-dimensional vectors. I have written a SWI-Prolog implementation of holographic reduced representations. Also, here are some suggestions about the use of category theory for elucidating what holographic reduced representations are really about. WritingFrom November 2004 to July 2006, I wrote an AI Newsletter for Dr Dobbs. In January 2006, I did a special issue on the 50th Anniversary of Artificial Intelligence. For the complete set, please visit my AI Newsletter index page. Amongst these, you will find: two AI Alphabets; the artificial life of Karl Sims; programming the Aibo, World Wide Mind, and Ronald Reagan; why Microsoft was really created; and those disembodied rat neurons that, somewhere in Florida, dream of flying a fighter jet. Moving to less technical matters, I've made many happy visits to the Department of Informatics and Department of Economics at the University of Minho in Braga in Portugal. On my Imagens de Braga page, you can see what Braga looks like. While there, I enjoyed Interring the Cat. (I was pleased to find a copy of that article in RAIO-X, the magazine of the University of Minho's maths and computation group, edited by Alberto Simões. Thanks Alberto!) As well as Portuguese academic rituals, I've written about Beating the Bounds, what it is like to be foreign, why object-oriented programming is philosophically defective, e-learning (an interview I did for the Greek X-RAM magazine), unrolling the loop in the primordial soup, how to use the JJTree parser-generator, or economics on the Internet. PhotosHere are photos from Romania, Bulgaria, Portugal and other places. And I've already mentioned my Imagens de Braga page. More recent are these photos of the Oxford town criers' competition of July 2, 2012. RecipesFrom Portugal, and also Greece, Holland, Romania, and Kidlington and Gosford gym: recipes I wrote up for Elder Stubbs. They include Marrow Rum (from ex-sailor Ron in the gym); and Afghan Leeks, sent by my friend Andrew Watson from Kabul. Unusual clothesTo escape from the black and beige and suitedness of English men's clothing, and for reasons explained in my Dr Dobbs essay Dress Code, I sometimes wear exotic clothes, most notably Moroccan shirts and "sarouel" or "qandrissi" trousers. Which are much more comfortable than jeans. There are some photos here and here. Dialogues and quotesI enjoy collecting dialogues and quotes. Here are The Excelsior Dialogues, overheard in Oxford's Excelsior café; and a few Wharf House quotes. TranshumanismNo one has done more to elucidate transhumanism than science-fiction author Greg Egan. However, I want to do my bit. Hence my Dr Dobbs blog posting Why I Want to be Transhuman; and, with a look more at time than powers, A Plea to the Future. |
Dr Dobbs blogSomniloquacity (cartoon) Google Fish (cartoon) Hear Me Croak (cartoon) The Ills That Steel's not Heir To (cartoon) Bubbles (cartoon) SAnTa NAV (cartoon) How to Modularise a Spreadsheet How to Reveal Implicit Structure in Spreadsheets Casting One's Bread (cartoon) Greater and Lesser (cartoon) On the Drawbacks of Modern Technology (cartoon) Fearful Vista (cartoon) In Silicon No One Can Hear You Scream Googlewhacked (cartoon) A History of Computing in 100 Objects Eggsamining Mereology (cartoon) Gonna Sit Right Down ... (cartoon) Døt Døt Dæsh (cartoon) How to Survive as a High-Energy Physics Sysadmin (cartoon) When Sysadmins Ruled the Earth Wild Flowers (cartoon) Frivolous Uses of Time Travel (2): All You Zombies Little White Lies (cartoon) The Only Valid Measurement of Code Quality A4Billion (cartoon) R.I.P. (cartoon) Petter's Computer Science Songbook Alien Imperative (cartoon) How to Build a Web Page in 25 Steps Charity (cartoon) On the Properties of a Sonic Screwdriver Mis-Guided (cartoon) Two Electrons Short of an Atom Language Gap (cartoon) What Google Tells Me People Want Secrets (cartoon) How to Eliminate Boredom at Work Getting Tough (cartoon) Proverbs in Pictures I: Don't Count Your Chickens Before They're Hatched (cartoon) Recaptioned (with cartoons) Good Weather for Ducks (cartoon) Unicode and the Shavian Alphabet II Waiting for Moore (cartoon) Reprogramming Aibo (cartoon) Sweet Words (cartoon) Bottles (cartoon) Unicode and the Shavian Alphabet II No Earthly Power (cartoon) Mr. Excel (cartoon) Unicode and the Shavian Alphabet The History and Benefits of Ada Labels (cartoon) The End-User and the Expert Artisan Demonstrating a Mini-Compiler with a Stack-Machine Program that Calculates Factorials When the Careless Killer Robots Come When the Clumsy Killer Robots Come When the Cultured Killer Robots Come LiveHTTPHeaders for Tracing URLs What Might Category Theory do for Artificial Intelligence and Cognitive Science? An Online Budget Questionnaire, JavaCC, and the Three Ways of Putting Together Microsoft Announces Improved Blue Screen of Death "Too many errors on one line (make fewer)" Stack Machines, Expression Evaluation, and the Magic of Reverse Polish Christoph Lehner's Tree Drawing Program for Prolog GRIPS: a Preprocessor for Functional Notation in Prolog How to Call SWI-Prolog from PHP 5 How to Get Tomorrow's Date in Perl Snobol Patterns in Prolog IV: bal, and the Use of Failure to Diagnose Patterns Associative Programming and Snobol's Unusual Indirect-Referencing Operator Marc Stiegler's Gentle Seduction Snobol Patterns in Prolog III: Sharing Code with Higher-Order Programming Snobol Patterns in Prolog II: Span with Count Arbno, the Cursor, and Snobol Patterns in Prolog More Technonecrophilia with Snobol One-Liners Programs That Transform Their Own Source Code; or: the Snobol Foot Joke To Prove Father Christmas Exists John Fremlin's Portable Version of Jess Johnson's Joke Generator in Lisp Computer Science Revues at Cornell's Upson Hall Jess Johnson's Joke Generator in Lisp One Sum He's Owed, By Any Road Artificial Intelligence Meets Natural Stupidity The Life and Wisdom of Father Aloysius Hacker How to Avoid Overpriced Science Journals The Curse of the Thinking Classes (cartoon) And No Play (cartoon) Ode on the Automation of Imbecility The Usefulness of Broken Glasses Rhetorical Initiative II: animating Reagan Prolog as a Text-Hacking Language Captioned (with cartoons) Primed (cartoon) I Tweet, You're a Twit, He's a Twat (cartoon) Bound to be Called (cartoon) Fatal Addition (with cartoon) An Ounce of Image (with cartoon) Frivolous Uses of Time Travel (1) A Conversation with Einstein's Brain The European Spreadsheet Risks Interest Group Conference is in Paris Next Week Ο Μαθητής Μαθαίνει το Μαθηματικά; or: You Say Math, I Say Maths Artificial Intelligence Lightbulb Jokes Documenting Spreadsheets with Pseudo-Code: an Exercise with Cash-Flow and Loans Poem on the Determination of Consciousness How to Generate a Tree-Building Parser in Java using JJTree Don't Explain Maths; it's Easier to Explain how Hard it is to Explain How to Document a Spreadsheet: an Exercise with Cash-Flow and Loans Gliders, Hasslers, and the Toadsucker: Writing and Explaining a Structured Excel Life Game Poplog, continuations, Eliza, AI education, and Prolog AI Phone Home (cartoon) The Spreadsheet Parts Repository for Excel and Google Spreadsheets (with cartoon) Filtering the Inauguration (cartoon) Intractability> (cartoon) Scenes from a New Depression: Number 27 (cartoon) Happy New Year (cartoon) The Compressibility of Useful Information The Incompressibility of Useless Information Choosing Easily Distinguished Colours with ColorBrewer Category Theory Interactive Demonstration and Text Adventure Binary Holographic Reduced Representations in SWI-Prolog Category Theory and the Interesting Truths Finding the Best Metaphors will be the Work of a Generation Which Spreadsheet Components Would You Like to See? Three Men in a Bar Found a Spreadsheet Society Entrapping Minnows in the Jar with PL/1 ((What ((is) with (all)) of (the) ()s?) Hmmm?) Spreadsheet Components, Google Spreadsheets, and Code Reuse Earth Falls Toward The Sun And Everybody Dies - A science-fiction plot-generator in Excel Other
|
||||
[ Artificial Intelligence Society
]
[ Belgium, Netherlands,
Poland...
computing ... some jokes
]
[ MS-DOS,
bureaucracies, APL, ... some quotes
]
[ Fortran, breweries, ants, ... some
verses
]
[ Links
]
[ Matt Carroll's
Merovingian page
]
[ Dougal Lee's
Richard Head and the Bomb at SPC
]