Skip to content
Skip to navigation




All entries


On Racket Support in Emacs Org-Mode

Earlier I blogged about Epresent, which is basically a piece of code for making Org-Mode suitable for preparing presentation slides. There are times when I can’t resist mentioning the innovative Racket programming language in a presentation. In those situations I tend to want to have syntax-highlighted Scheme code on my slides, and also to evaluate the code snippets and insert the results next to the code listing. This is apparently the sort of thing one can do with Org-Mode Babel, for a variety of languages.

Read more...

Written on Thu Sep 08 20:35:15 2011 UTC.
Tagged as Babel, Emacs, Epresent, Racket, Scheme, presentations, software.



Presenting with Emacs

Text rendering in Emacs has been looking mighty good since 23.1, and this opens up possibilities to do even more in Emacs. For example, I recently came across something called epresent.el on GitHub, by Eric Schulte et al. The epresent.el Emacs Lisp file leverages Org-Mode to implement a simple presentation mode for Emacs. Using Org-Mode is, at least for me, faster than struggling with something like OpenOffice.org Impress.

Read more...

Written on Wed Feb 23 18:18:37 2011 UTC.
Edited on Fri Feb 10 20:59:57 2012 UTC: Changed link to point to latest code on GitHub.
Tagged as Emacs, Epresent, presentations, software.



Let Us Have More C++ Languages

C++ is a good language in that it is widely supported and has a large ecosystem around it. As a result, it has a large number of libraries, including extensive cross-platform frameworks (such as Qt). There are also entire operating systems written in C++, of which Symbian is an example. All of this provides ample motivation to use C++ (or at least its libraries) from time to time.

Read more...

Written on Fri Jan 07 16:33:02 2011 UTC.
Tagged as C++, CoffeeScript, IDE, JavaScript, programming languages, source-to-source translation.



Mixing Hand-Written, Generating, and Generated Code with Koog

Some days ago I released a little code generation utility that I have been using for well over a year in cranking out repetitive C++ code. Koog is—for lack of a better established term—a mixed-code generator. It is similar to other tools of its kind (such as Cog), but the only one that I know of that uses the Scheme language for specifying what code to generate.

Read more...

Written on Tue Sep 28 17:58:24 2010 UTC.
Tagged as C, C++, HIIT, Scheme, Symbian, code generation, software.



ContextLogger2 Technical Report Published

I wrote a technical report about the ContextLogger2 software that I’ve been working on at HIIT of late. The direct URL and other publication details can be found from this page. The entire series of electronically published HIIT technical reports is available from here.

Written on Sat Aug 28 15:53:34 2010 UTC.
Edited on Mon Sep 20 22:41:32 2010 UTC.
Tagged as HIIT, S60, Symbian, publications, research, software.



On Patching S60 SDKs for GCCE 4 Compatibility

I’ve tried GCCE version 4 before for building Symbian software, but have been somewhat put off by all the warnings it produces, mostly due to incompatibilities with the header files in the existing S60 SDKs. Well, I finally managed to get a working S60 application built with GCCE 4 without any warnings. Mind you, this was just one application, and not built with the full Symbian toolchain, but still.

Read more...

Written on Sun Aug 01 21:45:29 2010 UTC.
Tagged as C, C++, GCC, GnuPoc, S60, SDK, Symbian.



Scanning for ABLD Errors and Warnings

Symbian’s ABLD build system tends to produce a lot of output, especially when run with the verbose flag (-v), as I like to do to see the compiler invocations. Also, ABLD likes to run to “completion” despite individual build steps failing. The end result is that it takes some effort to look for the errors and warnings in the output.

Read more...

Written on Fri Jul 30 18:54:01 2010 UTC.
Edited on Sat Aug 07 21:09:32 2010 UTC.
Tagged as C, C++, GnuPoc, Ruby, Symbian, build systems.



Deleting Hidden Untrusted S60 Themes How-To

Earlier I wrote about a problem with restoring data to my Nokia E71 after a firmware upgrade. Well, there was also another problem. Once again, I started getting the “Untrusted software found on memory card. To install, go to Application manager.” complaint upon my Nokia E71 booting or otherwise mounting the memory card. Application Manager showed no applications marked as “Not installed”, and reinstalling the applications I tend to have installed didn’t fix the problem.

Read more...

Written on Sat Nov 28 16:39:52 2009 UTC.
Tagged as S60, Symbian, software installation.



A Summary of the History of Lua

The other day I gave a presentation on the history of the programming language Lua, in a HOPL conference inspired seminar course at TKK. If you asked a presentation expert, you’d probably be told that the slides have too many words in them, but perhaps that will make them easier to follow without the accompanying talk. In any case, the presentation slides have been posted on the web.

Written on Sun Nov 22 05:32:59 2009 UTC.
Tagged as Lua, presentations.



Nokia’s Products Are Error (Message) Free

So I upgrade the firmware of my Nokia E71 from v200 something to v300 something.

Read more...

Written on Sun Nov 08 17:12:30 2009 UTC.
Edited on Sat Nov 28 16:39:52 2009 UTC.
Tagged as PIM, S60, Scheme, Symbian, software, vCalendar.



Please Remove the Battery to Continue

Application closed: Autolock KERN-EXEC 3

Read more...

Written on Mon Apr 27 20:16:35 2009 UTC.
Tagged as S60, Symbian, fun.



Look, S60 Software Installation with No Hands

S60 3rd Edition has been out for quite a while by now, and for me, the one thing that has all but killed the pleasure of developing native software for the platform has been the humiliating wait—dismiss dialog—wait—dismiss dialog—wait—dismiss dialog—wait procedure during installation of the software being tested and developed. For one-off installations the installation procedure is no problem, but when you’re a developer it gets old real fast.

Read more...

Written on Sat Jan 17 09:50:53 2009 UTC.
Tagged as C++, PlatSec, Python, S60, Symbian, software, software installation.



Another PyS60 Extension with a take_photo Function

Earlier releases of the Miso PyS60 extension had a take_photo function, for taking photos (without a viewfinder). This functionality (and more) has since then been integrated to PyS60 itself in the form of the built-in camera module.

Read more...

Written on Fri Jan 09 00:07:49 2009 UTC.
Tagged as C++, Python, S60, Symbian, camera, software.



Accessing OBEX Pushed Messages with Python for S60

Early last year at HIIT I hacked the Python for S60 inbox module to have it support querying for the content and metadata of messages in the device Inbox that have been sent via Bluetooth OBEX Push. (The built-in inbox module apparently only supports accessing SMS messages.) I changed the name of the hacked module to pyinbox, to avoid conflicts with the built-in Inbox access module.

Read more...

Written on Fri Jan 02 17:55:22 2009 UTC.
Tagged as Bluetooth, C++, Python, S60, Symbian, software.



pyaosocket aka aosocketnativenew Released Standalone

In the PDIS project at HIIT we developed a socket library for Python for S60. The library consisted of both a native extension and quite a bit of Python code. The native extension was called aosocketnativenew, and became somewhat well known as an extension supporting non-interactive Bluetooth discovery.

Read more...

Written on Sat Nov 29 11:51:56 2008 UTC.
Tagged as Bluetooth, C++, Python, S60, Symbian, sockets, software.



Passing on Keyword Arguments in PLT Scheme

I am a big fan of Python’s keyword argument facility, and especially its support for *args and **kwargs function parameter declarations. *args and **kwargs capture any explicitly undeclared positional and keyword arguments, respectively, and this facility in many cases allows one to avoid repeating function interfaces. This is both less typing and more future proof, and makes it easier to see the parameters that directly concern a function. Contrast this with Java, which not only has no keyword arguments, and no support for *args style declarations, but which also forces you to repeat caught exception declarations in function signatures.

Read more...

Written on Sat Nov 15 09:57:26 2008 UTC.
Tagged as Python, Scheme, keyword arguments, macro systems.



Finding Out the Best-Before Date of a SIS File

There are a few Symbian software authors who occasionally write a piece of Symbian code, possibly with no intention of ever touching the code again, package it up as a SIS file, and then “fire and forget” that SIS file to some web site in case someone should find it useful. Or forget until such time that someone complains about the SIS file having been expired.

Read more...

Written on Thu Oct 16 00:49:02 2008 UTC.
Tagged as PlatSec, Symbian, software installation.



SMS Exporter v1.09 Released

The certificate used to sign v1.08 had expired, so created a longer lived one with openssl, and signed with that. Added the backup registration file while at it, as it had been missing from previous 3rd edition releases.

Written on Fri Aug 08 23:25:34 2008 UTC.
Tagged as S60, Symbian, software.



Faster Menu Navigation by Crashing the Icon Server

Some operations on the Nokia E61 are painfully slow. For instance navigating the applications menu can be time consuming, especially if the folders being opened have many items in them. The other day I managed—by (un)installing some SIS files—to get the icon server of the device to crash (it produced a panic). This resulted in an iconless applications menu, with only application names visible, but otherwise seemed to have no adverse effect. And navigating the menu had become much faster, with no folder taking more than a fraction of a second to open.

Read more...

Written on Wed Jul 09 18:16:10 2008 UTC.
Tagged as S60, icons.



S60 SDK API Plug-in Installation for GnuPoc

The SDK API Plug-in package for S60 SDKs has quite a few interesting APIs, such as the Browser Launcher API and the New File Service Client API.

Read more...

Written on Thu May 29 15:45:54 2008 UTC.
Tagged as GnuPoc, S60, Symbian.



C Socket Code in Ruby

When designing socket code to be implemented in C, it may well make sense to first sketch out the design in Ruby. The Socket class provides thin wrappings for just about all of the relevant C standard library functions. There also is the fcntl module, and select in Kernel. The socket code can thus be just about the same in Ruby as it would be in C, but trying out different designs for say managing sessions in a server is much less tedious in Ruby.

Read more...

Written on Sun Jan 20 15:38:00 2008 UTC.
Tagged as C, Ruby, prototyping, sockets.