Lambda on the Move

A (non-)personal blog about programming, Symbian, and little else.
newest · all · tags · dates · titles · feedRSS feed · author

Opening Racket Modules in Emacs

In recent past, I've adopted Greg Hendershott's racket-mode for Emacs, added keyword completion, hover help, documentation lookup, customized syntax highlighting and indentation and such for my personal tastes, but one thing I haven't really looked at so far is code navigation support for Racket. What seemed like an easy place to start was implementing a function for loading a Racket source file by its module path, as would appear within a require form.


Written on Sunday, 6 July 2014, 17:57:57 UTC.
Tagged as Emacs, IDE, Lisp, Racket.

Dictionary-Enabled Racket Support for Emacs

For the last month or so I've found Racket programming even more enjoyable than before. The reason for this is a tool named Ractionary (short for Racket Dictionary Generator), which I wrote for extracting information about Racket language names. Said information can easily be used for setting up some Racket language awareness for Emacs.


Written on Friday, 23 August 2013, 22:26:43 UTC.
Tagged as BLDL, Emacs, IDE, programming languages, Racket, Ractionary, Rascal, software.

Another PIM Data Exporter

My little SMS Exporter utility app has probably been downloaded quite a few times by virtue of it having been available for many years. Now it's time to introduce another PIM data exporter application: Anyxporter. This new application is capable of exporting contact data, and supports both MeeGo Harmattan and (some versions of) Symbian.


Written on Thursday, 22 August 2013, 16:16:20 UTC.
Tagged as Anyxporter, BLDL, contacts, Harmattan, Lua, PIM, Qt, Racket, S60, SMS Exporter, software, Symbian, XML.

SMS Exporter v1.10 Released

I was recently motivated to install some Symbian SDKs again, after quite a long break from Symbian programming. So here, an updated release of SMS Exporter for Symbian.


Written on Tuesday, 21 May 2013, 22:47:44 UTC.
Tagged as S60, SMS Exporter, software, Symbian.

Times Are Hard for Racketeers, too

APIs dealing with dates and times must be hard to get right. I'm not aware of any programming language whose standard library for dealing with times is both intuitive and comprehensive. Racket has built-in libraries that are second to none, but even it presently leaves something to be desired when it comes to support for handling dates and times.


Written on Sunday, 6 January 2013, 01:21:31 UTC.
Tagged as APIs, Emacs, Lisp, Racket, Scheme.

Rascal Mode for Emacs Released

During the last year or so I've written some program transformations in the Rascal programming language. I find it beneficial to have an Emacs mode for any language I make significant use of. Not finding an existing one for Rascal, I proceeded to put one together myself. See Emacs Mode for Rascal (on GitHub) for the code.


Written on Monday, 8 October 2012, 22:38:07 UTC.
Tagged as BLDL, Emacs, Lisp, programming languages, Rascal, software.

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.


Written on Thursday, 8 September 2011, 20:35:15 UTC.
Tagged as Emacs, Epresent, Org, presentations, Racket, Scheme, 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 Impress.


Written on Wednesday, 23 February 2011, 18:18:37 UTC.
Tagged as Emacs, Epresent, Org, 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.


Written on Friday, 7 January 2011, 16:33:02 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.


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

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 Saturday, 28 August 2010, 15:53:34 UTC.
Tagged as HIIT, publications, research, S60, software, Symbian.

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.


Written on Sunday, 1 August 2010, 21:45:29 UTC.
Tagged as C, C++, GCCE 4, 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.


Written on Friday, 30 July 2010, 18:54:01 UTC.
Tagged as build systems, C, C++, GnuPoc, Ruby, Symbian.

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.


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

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 Sunday, 22 November 2009, 05:32:59 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.


Written on Sunday, 8 November 2009, 17:12:30 UTC.
Tagged as PIM, Racket, S60, Scheme, software, Symbian, vCalendar.

Please Remove the Battery to Continue

Application closed: Autolock KERN-EXEC 3


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

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.


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

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.


Written on Friday, 9 January 2009, 00:07:49 UTC.
Tagged as C++, camera, Python, S60, software, Symbian.

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.


Written on Friday, 2 January 2009, 17:55:22 UTC.
Tagged as Bluetooth, C++, Python, S60, software, Symbian.

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.


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

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.


Written on Saturday, 15 November 2008, 09:57:26 UTC.
Tagged as keyword arguments, macro systems, Python, Racket, Scheme.

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.


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

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 Friday, 8 August 2008, 23:25:34 UTC.
Tagged as S60, SMS Exporter, software, Symbian.

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.


Written on Wednesday, 9 July 2008, 18:16:10 UTC.
Tagged as icons, S60, Symbian.

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.


Written on Thursday, 29 May 2008, 15:45:54 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.


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