|
[ Dr Dobbs Blog | New things | 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 | Dialogues and quotes | Transhumanism | Publications | Free software ]
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 . In my latest projects, I worked with Andrew Moore and Sebastian Straube of the Oxford Pain Research Group as described in my Dr Dobbs blog posting Trials and tribulations: measuring drug efficacy in clinical trials, plotting graphs in Java with gnuplot, and reading Excel with JExcelAPI. I also helped my friend Graham Stark of Virtual Worlds port a Gnat Ada program to Windows as part of an economic simulation for the Office of the Scottish Charities Regulator. 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 TheoryInspiration 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, and I'm 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. 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). PrologHere is a program that generates plots for SF stories. That's one of the programs I used for teaching Prolog. 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. Here are an automatic tester for Prolog; the GRIPS pre-processor for translating functional definitions into Prolog; and my thoughts on Why Use Prolog?. Free software in other languages is on my free software page. Artificial IntelligenceI used to teach AI at Oxford. In teaching my students, I liked the whole-agent approach, and have built complete agents, in their own microworlds, to illustrate classical AI, and to demonstrate the difference between this and the "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 representationsHere's an SWI-Prolog implementation of holographic reduced representations. Here are some suggestions about the use of category theory for elucidating what holographic reduced representations are really about. WritingI write a regular blog spot for Dr Dobbs Codetalk. (Sometimes I draw cartoons.) From November 2004 to July 2006, I wrote their AI Newsletter. 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. 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. 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. 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. |
NEW!Free download of Excelsior 1.3 for Windows, from the Spreadsheet Parts Repository Excelsior page. Installing the Gnat Ada AWS Web development framework on Windows XP.
Dr Dobbs blogA 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 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
]