Python on a Symbian-based Nokia S60 smartphone PDF Print E-mail
News - Web Development
Written by Tim Black   
Monday, 31 December 2007 13:07

Over Thanksgiving I wrote a little program in JavaScript for my Dad, who is a charter pilot who needs an easy way to record several time values with the press of one button on his smart phone:

  • engine start
  • takeoff
  • landing
  • engine shutdown

It works great, except Opera doesn't allow files opened from the local filesystem to store cookies, and Dad doesn't always have web access when he needs to record a time value.  (Maybe I should try an Opera Widget...)  So, in the spirit of the Do-It-Yourself books he's got on his bookshelf, over Christmas Dad asked me what language I'd recommend he use to write a program for his phone.

If I knew how to use Google Gears on the Nokia S60, maybe I'd recommend it.  But I don't and I wonder if Gears is still too new.  So after a little research, here's what I came up with:

It looks to me like C++ is the default language to use on Symbian, and Java is a close second.  However, I wouldn't use either myself, because the syntax of both C++ and Java (see Executive Summary, short code comparison and long code comparison) (and development process--you have to compile for your particular operating system before you run) is more complex than Python's (and I already use Python), and Python works on Symbian.  It is my impression that Python programs are also more portable to other operating systems than are C++ programs.  For these reasons, it looks like Symbian development is moving toward using Python and Ruby.  There are several Python libraries available that you can "import" into your Python code to create the application's GUI features (title, menu, central content including buttons, text boxes, pictures, etc.).  They work by providing a Python interface to Symbian's software development kits - SDKs (see S60 SDKs) including Symbian's graphical user interface (GUI) libraries and other available functionality (contacts, calendar, filesystem, phone, etc.).

I'd also consider using an integrated development environment (IDE) specifically designed for creating GUI programs on Symbian, because an IDE can give you a layout editor that lets you create the program by dragging and dropping GUI widgets (buttons, text boxes, etc.) into your program and then writing code to respond to widget events (mouse clicks, character presses, etc.).  One Symbian C++ IDE is Carbide, a set of extensions to the Eclipse IDE.  It appears there isn't a Symbian GUI IDE yet for Python or Ruby.

So to summarize, here's what I would use, in the order they would need to be installed on your computer:

Python interpreter
Use the latest version of Python 2.5, unless you find that the other tools below are only compatible with an earlier version of Python, in which case, install the earlier version.

SDK  A package containing a Python interface to a Symbian SDK and related tools:
PyS60 (seems to be the
best & most current)  Python for S60 seems to be an older version of the same, see its helpful wiki
Python for UIQ (out of date)

Simple:  IDLE, which comes with Python & is included in PyS60
More full-featured: 
Boa Constructor (requires wxPython) (I recommend installing TortoiseCVS first to install the most recent version of Boa Constructor)

Essential background reference material
Introduction to Programming:  Beginner's Guide to Python
Introduction to Python syntax:  Dive into Python
Python Tutorial
Python Library Reference -- (ActivePython's had nicer formatting at one point)
Python Quick Reference Guide

If one exists, it's a good idea to use a book as a guide to how to program on the S60 in your chosen language.  The only one I can find for Python is Mobile Python, and it looks to be exactly what you would want.  I might start with the author's tutorial instead.

Other stuff
Code snippets
Here are some tools for making it easier to test your Python code on the phone:  http://people.csail.mit.edu/kapu/symbian/python.html

Last Updated on Tuesday, 01 January 2008 13:49
Sovereign Grace Singles PDF Print E-mail
News - Web Development
Written by Tim Black   
Tuesday, 09 October 2007 08:42

Sovereign Grace Singles is sgs_thumbnail.pngthe only singles website for conservative Reformed singles, and they need your help.  They need to gain more members in order to remain viable.  Currently there are 700 members on the site, from the PCA, OPC, URC, and other conservative Reformed denominations.  These denominations are the only "pond" in which I'd recommend our singles to fish.

There are a lot of singles out there who don't know about Sovereign Grace Singles who should, and would benefit from being members of the site.  I'm putting together an analysis of the numbers of members of conservative Reformed denominations here, and if you would like to help in any of the following ways, please contact Tim Black.

Ways you can help

  • Serve as a country expert in identifying which denominations are conservative in each country listed in our analysis.
  • Distribute SGS fliers at your church or through the channels of your denomination, presbytery, classis, singles organizations (think RUF!) or mission agencies.

Country Experts

Rev. J. Stafford Carson - Ireland
Dr. Henry Krabbendam - Netherlands, South Africa, Uganda
Rev. Philip Tachin - Nigeria

Results of the analysis

According to our current estimates, there are at least 385,000 conservative Reformed church members worldwide.  We could potentially bring in 1,926 total members from the US, 8,618 worldwide in English-speaking countries, and 18,709 in all languages.  This could result in many marriages; it could also result in many side-effects and spin-off projects that would further the interdenominational unity and cooperation of the Reformed community worldwide.

Global expansion project

Given this analysis, we hope to pursue the following goals to expand the reach of SGS:

  1. Aim SGS at other English-speaking countries.  Focus on countries containing the greatest numbers of conservative Reformed members:  Canada, UK, Australia, India, New Zealand, Nigeria, Zambia, Zimbabwe.  Identify conservative denominations and use contact info from Bauswein & Vischer's The Reformed Family Worldwide to contact them.  Ask them to email SGS to receive an email they can forward throughout their denomination if they wish.
  2. Provide SGS site in multiple languages.  Install new software that’s already translated.  Focus on: Germany, Indonesia, South Korea, Netherlands, Philippines, Switzerland.
  3. Develop & use new promotional materials & Internet promotion tools/means recommended by a web marketing agency.
  4. Identify & utilize new avenues to promote SGS.  Use Always Reformed’s connections in denominations & schools.
    1. Colleges & seminaries - internal student newsletters like WTS’s “Brute Facts”
    2. RUF ministers
    3. Missionaries
    4. Singles organizations
    5. Presbyteries
Last Updated on Tuesday, 04 December 2007 12:30
What I did on my summer vacation PDF Print E-mail
User Rating: / 1
News - Life
Written by Tim Black   
Saturday, 06 October 2007 08:19
You might enjoy hearing a bit about one of our vacations this summer.  In August we enjoyed camping with Mom & Dad Blackpumice.jpg on their property in the desert in Prineville, OR for two nights, driving to Paulina Lake (lots of fish were jumping!) & to the top of Paulina Peak (from which you can see a looong ways), canoeing on beautiful Hosmer Lake (there were lots of fish in a shallow section) and camping there for the rest of the week (there was a great view of Mt. Bachelor), picking up huge rocks made of pumice at the obsidian flow, going for a bike ride around Elk Lake, seeing hawks and osprey hunting, vultures eating (but they flew away when we stopped to look at them), and elk along the side of the road on the way home (by Davison Road near Crescent City, CA).  Beforehand our OPC congregation in Eureka, CA had asked me to preach on our way home, so we had a good visit with the congregation (they asked me to teach SS at the last minute; thankfully I had a lesson and a few handouts prepared), and with the family that gave us a place to stay Saturday night.  They asked me back to preach the very next Sunday since their pulpit supply coordinatorship had just changed hands and they didn't have a preacher scheduled.  Safe travel the whole way, which was a blessing.  Google says the trip was about 1404 miles total.  Mom & Dad had an old tire blow out on their trailer on the way home, but were able to continue after installing the spare tire.  So you can drool over vacationing in Oregon someday with us I've uploaded the beautiful pictures Dad took here.
Last Updated on Monday, 08 October 2007 11:26
Did Judas lose his salvation? PDF Print E-mail
User Rating: / 4
News - Theology
Written by Tim Black   
Wednesday, 03 October 2007 17:10

Did Judas lose his salvation?

If Jesus “lost” none that were His, except Judas, doesn’t that mean we can lose our salvation?

A friend of a friend asked this and some related questions regarding John 17:12, which reads, “While I was with them, I kept them in your name, which you have given me. I have guarded them, and not one of them has been lost except the son of destruction, that the Scripture might be fulfilled.”

I wrote the following to my friend in response.

Last Updated on Wednesday, 03 October 2007 17:12
Labeling Books with Library of Congress Call Numbers PDF Print E-mail
User Rating: / 9
News - Theology
Written by Tim Black   
Thursday, 06 September 2007 08:05

I have a personal library of about 2,000 books. In the last 5 years I’ve often found myself thinking, “I remember reading about this topic in book X, and I’d like to footnote its discussion, and I know I own the book...now where is that book?” I look in the likely spots on my bookshelves without finding it, then tediously scan every bookshelf and pile of books, only to end up not finding the book. Frustrating.

When I worked under the Cataloger in the library at Westminster Theological Seminary, I found the solution. It was time to give up on constantly re-creating my own system of categories for ordering the books on my shelves and do what all academic libraries do: label the books with Library of Congress Call Numbers. It’s the best academic book categorization system in the world, period. Why invent my own categories when I can access the combined wisdom of many thousands of trained academic librarians? And the automation tools exist to make it relatively easy. What doesn’t exist is a description of the process for transforming bookshelves that hide your books from you into a refined, accessible personal library.

So, in the hope it will help you as much as it did me, I now unveil the process I use for labeling my books:

- Download Readerware ($40 or so) from www.readerware.com & install the program.
- Buy a CueCat ($5 or so--a cheap bar code scanner; it doesn't matter whether you get the "modified" or "unmodified" kind; both kinds work fine) from eBay, and plug it in to your computer (the keyboard port).
- Configure Readerware to store Library of Congress Call Numbers.
- - First, rename the c:\Program Files\Readerware\scrapers\userexit_loc.py file to "userexit.py".
- - Second, under "Edit - > Preferences," under the "User Columns" tab, set "Column 1" to "active," and give that column the title "LOC Call No" or something similar.
- - Third, under the "Views" tab of this same window, you may want to define a "view" which displays only the following columns:  Author, Title, ISBN, User1.  That will make labeling the books go faster later.
- Scan the barcodes from all your books into a plain text file (Windows Notepad works perfectly).  For the sake of this explanation let's call the file "scanned_books.txt".
- - If a book doesn't have a barcode, enter its ISBN or LCCN instead, each entry on its own separate line (press return after each ISBN).  (Note that a LCCN is a Library of Congress CATALOG Number, and is NOT a Library of Congress CALL Number!  You want to label your books with the CALL number, not the CATALOG number.)
- - If a book doesn't have any such numbers, use Readerware's online search forms to find the book online (I find Amazon and the Library of Congress to be the two best places to search in this manner--Amazon has nicely-formatted titles, and the Library of Congress has the call numbers which you are seeking).  (In Readerware, do this by using the menu entry named "Web - > Basic Search and Import...")  Once you find a web page which describes this book, click on the small icon which is directly to the left of the URL in the URL bar at the top of your browser window, and drag that icon to the "Bull's eye" which is found at the top right of the Readerware window.  Readerware will then automatically download the information for this book into its database.
- - If you can't find the book's Library of Congress Call Number in the above ways, you can often find it in our library catalog at www.wts.edu.  You have to enter it manually, but this is better than having no call number at all.
- After scanning the barcodes (or entering ISBNs & LCCNs), go online and run Readerware's "Web - > Autocatalog" menu item.  In the "ISBN/LCCN Input" screen, click on the "Load List" button, and select the "scanned_books.txt" file.  Continue clicking "Next" and Readerware will automatically download the information you're looking for.
- Once all book information is entered correctly into Readerware, export the book information by clicking on "File - > Export" and selecting the "CSV" option.
- Open the CSV file which you just created.  Open it in Microsoft Excel (or any other standard spreadsheet program.)
- - If the file does not open and display properly, try adjusting the settings for how it interprets the CSV file, or try exporting the file from Readerware as a "TAB-delimited" file instead of a "CSV" file.
- - Buy a package of Avery return address labels.  I use Avery # 8167, 1/2" X 1 3/4".
- - Buy a roll of clear packing tape (2" wide is good.)
- - Sort the spreadsheet data alphabetically by book TITLE.  If you don't sort by title now so that the labels are printed out alphabetized by title, later on it will be much harder to find the right label for the right book once the labels are printed out!
- - Use Excel's special function for printing out labels.  (I don't use Excel; I use OpenOffice, which is free and works very well.  So I can only give general instructions here which may not be precisely accurate.)
- - - Tell Excel that you are using Avery # 8167 labels (or the number of whatever other Avery labels you are using), and it will automatically format the size and margins of the labels for you.
- - - Tell Excel which columns of data you want it to print on each label, and place that data in the locations where you want it to appear on each label.
- - - - I prefer to place the Library of Congress Call Number at the top of the label, and the title of the book at the bottom of the label.
- - - Print the labels.
- Stick the labels on the books.
- - I find that it works well to put the label vertically on all books regardless of whether they have skinny or wide spines, and to put them all about the same distance from the bottom edge of the spine. This makes it easier to scan across multiple labels on the shelf.
- - If a book has a cover to which the label may not continue to stick for many years into the future (if the book's cover is dusty, rough cloth, or otherwise not very easy to stick to), then after putting the label on the book, I cover the label with clear tape to hold it on more securely.

That's all!  I hope this idea is helpful to you!  Once you use Readerware to label your books in this way, you can use it again in the future to find a book on the shelf by searching for its title or author (or other details) in Readerware, just like an electronic library catalog.  You can also update the information about any book stored in Readerware, or add new books.  You can record who borrows books and when those books are due to be returned in Readerware, too.

The main benefits for me of using Readerware in this way is that I now have a well-thought out method for organizing my books into logical categories (the Library of Congress has already done that thinking for me!), and I also have an easy way to find books quickly on the shelf when I need them.

You can also use Readerware in an identical fashion to label your books with their Dewey Decimal System numbers, and to organize them on the shelves using the Dewey Decimal System.  So far as I understand, though, most academic libraries prefer the Library of Congress System, so that's what I've decided to use.

You may find that the academic footnoting/bibliography software called EndNote or Nota Bene could provide similar functionality.

Last Updated on Tuesday, 28 December 2010 15:01
<< Start < Prev 11 12 13 14 15 16 17 Next > End >>

Page 12 of 17