This week I will be mainly attending DjangoCon Europe. Hallo Amsterdam!
I’ve just learned about Python Generator Expressions. List comprehension for big/complex lists that avoid the memory hit.
Available from Python 2.4.
How the add on apps stack up after about a month with the HTC Desire:
- Dolphin browser – very recptive for touch screen Android devices
- SoundCloud – bringing fresh sounds to your mobile
- Profile Timer Free – I missed timed profiles from my last Nokia phone and this app hits the spot.
- K-9 Mail – already mentioned this IMAP email client in a previous post.
- Last.fm – if you’re a scrobbling addict you’ll understand
I’m due to attend DjangoCon Europe conference about the Python web framework Django in June. I’m very excited about the chance to learn more about this flexible framework and meet more Django/Python developers.
Luckily it didn’t take me too long to realise that the built in email client on my new Android phone did not support IMAP quite like it might have suggested.
The first major issue I noticed was that is did not detect my Sent folder correctly and created it’s own version. This I’ve seen before in other email clients as my Sent box lives under the INBOX. prefix. Unfortunately the built-in email client had no way of setting alternative locations for key folders.
Okay I thought to myself, I’ll just moved these messages myself – a pain but doable. Oh no, this was not to be the case. Even though I moved the messages and they appeared to be in the correct folder on the phone, these messages never appeared on the server. To make matters worse this new Sent folder was only stored locally on the phone.
In comes K-9 Mail to the rescue. With good web reviews and ratings, as well as being open source, I could be onto a winner. So far so good. I’ll keep you posted if K-9 can’t feed my email addiction.
Other features that I’d already begun to miss were being able to flag and archive messages easily, which K-9 also supports.
Ask the Experts about how to go about Dealing with dirty data
- Google Refine – CSV clean up; output into other formats
- AntiWord – Word formats to plain text converter
- FMT (formatting)
- Beautiful soup (python) – scrapper
- Scrapperwiki – remember this can be useful – can be used like a remote data store
- Python unicodedata.normalize – to format data into normal form C – flatten aceented characters
- Mozilla has auto detect character encoding tools
For the second year I have attended Dev8D, the JISC funded developer conference. An excellent opportunity to network with other developers in Higher Education and to learn about new technologies.
Below are some highlights of the sessions and talks I attended on day 1.
- written in Java
- had a stable API since 2001
- many recent API and plugin development improvements
- direct database querying is now licensed
- entity relationship diagram is published
- lots of existing plugins, including text/SMS services
- plugin exposure can be targeted to specific users
- supports plugins not written in alternative languages
- uses SOAP but a Newcastle chap has created a REST API
- CourseSites.com offers 5 free courses (supports subset of OpenID like providers)
- granular security policies for web service API – down to the per function level
General VLE tit bits
Look into further
- OCELOT community
- SCORM stands for Sharable Content Object Reference Model
- IMS LTI (Learning Tools Interoperability) standard uses SOAP
- feed aggregator
- HE produced using a sustainable approach
- Format X – future formats
- can still target handsets – smart/feature phone
- very inclusive
- long term support, University of Oxford has committed 2.5 FTE to project
- Free Microsoft professional tools for students.
- pluralisation (2 kinds in Russian)
- sort order (in Spanish ll is one letter not double l)
- affects many areas: sales, UI design, legal, marketing, publisher, …
- early research required to discover any cultural content guidelines
- Output formats include: CSV, latex, PDF, and WordPress posts
- Can incorporate testing output (cucumber or was that water??)
- Can automate screen shots – part of implementation of the test
- Python command line tool
- union catalogue
- could be institutional records, …
- use EAD (Encoded Archival Description – XML)
- provides searches/indexes of the archives
- uses CQL (Contextual Query Language)
- project using Linked Data
- related to COPAC data
Look up related projects
- feed aggregator
- Python >= 2.6 < 3
- Django 1.2
- PostgreSQL but others DB could be used
- mobile web vs native
- could be just used as an aggregation service not for mobile web
- produced by University of Oxford
- nearing version 1.0
- akin to Java based MyMobile Bristol application developed by ILRT, University of Bristol during the same period
- Geodata including Open Street Map
- nearest real time bus info (Oxford specific)
- contacts via LDAP
- library search
- maps – well targeted for feature (non smart) phones
- url shortener
- QR codes (3D barcodes)
- batch processing
- easy to override blocks of templates and media
- easy to plug in different data providers
- installer will ask most setting questions
Some quick notes about the lightening talks I attended.
Archiving Tweets with Twapper Keeper
Why archive tweets?
- Twitters search limits results by number (1500) or time, approx 7 days
- You may want to capture an events output and ensure this data is not lost
Linked data in the web
- model your stuff
- identity with cool URIs
- link your html together
- link to machine friendly formats
- use RDF to make your database structure available on the web
- an endnote alternative
- last.fm for researchers papers
- startup working with several partner universities
- Export groups:
- open ‘anonymised’ data due March 2010
- user data due April 2010
Collaborative tools project
- LifeRay – portal builder
- Network Thinking
- JISC – People Project – people recommendations
Mistakes I have made building web applications
By Juliette Culver, Open University
- Not dealing with character encoding from the start
- Not establishing which web browsers you support
- Bad choices about 3rd party code (not using them when I should have)
- Under estimating time required for legal and acquiring domain names
- Not dotting i’s and cross t’s
- Admin and stats most often get the extra change requests
- Asking permission from non techies for time for refactoring, accessibility, web security – add non as these elements are essential, a no techie will always say no
- Not colour contrast testing on design work
- Putting off usability testing
- Underestimating the problem of spam, see Mollum
- Not protecting programming time – turn off other messenging for example/block off programming time from meetings, see makers schedule article
- Stop expecting anyone to appreciate what you do
Comments from audience
- Under estimating the time it takes to go from prototype to production
- Processing is a Java related language for graphics
- 3D – OPENGL less buggy than the built in
I attended the Ruby on Rails code lab and the following lightening talks:
- Cloud Computing – University of Southampton
- Interacting with the public data store (http://data.gov.uk)
- Web security – Ben Charlton, University of Kent
- Stay the hell out of pear_lib
- Symbian apps get started
- iPhone – Spotlight Kid
- Genetic algorithms
- Manufacturing for the masses – RepRap
- Stay out of core code at all costs, extend using plugins
- Check out OWASP top 10 tips web security tips
- Don’t save back up config files in the web root, for instance config.php.bak will be readable
- Symbian apps are easy to make
- RepRap rocks!
- Django handles configuring paths better than Ruby on Rails
Manufacturing for the masses, RepRap notes
A fantastic 3D printer that can create plastic mouldings.
- can print 50% of own parts (in 2.5 days)
- most non plastic parts are widely available
- costs approx €350
- future aims to be able to shred and recycle your own plastic bottles or use starch based sources
Some commercial outlets, such as Bits from bites, make t machines that don’t replicate themselves, but can replicate parts for a RepRap machine.
I attended the first half of the Pipes lab and following up by catching some of the lightening talks.
Yahoo Pipes notes
- will mash up various data formats; e.g. RSS1, RSS2, atom
- will normalise out from multiple input formats
- can output as XML, JSON, stub of PHP, image/media version of feed, etc.
- each pipe has a unique URI
- uses a GUI interface, with flow chart style objects, to create new feeds
- requires a Yahoo account
- pipes can be claimed or cloned, NB: only an owner can only delete a pipe
- could a useful tool for useful for examining feeds
Sources of data
- Yahoo searches/queries
- existing pipes
- Don’t seem to be able to export the structure of the feed mash up
- A third party hosted service
The open source version, Deri pipes, can be locally hosted.
Bear in mind if using search RSS results these feeds may be paginated or limited to n number of output
- example uses uses search term – url builder – fetch feed – output
Can compound your feeds, i.e. call a search feed for each search result of another feed – see loop function
Private input – protects for instance API keys from cloned pipes
- remember there can be many levels of caching – at source, in yahoo pipes, in your own application
I attending lightening talks about WordPress, Teaching programming to non programmers and building Android applications.
Android phone application notes
- Use Eclipse IDE (plugin may be necessary)
- Install Android SDK, includes
- command line tool
- demo code
- Uses a locked version of Linux
- API demos is good demo code to look at