Five examples why every tablet needs a camera

There are a lot of people who think camera’s in tablets are a bad idea. “Nobody should be allowed to take pictures with a large tablet in front of their face.”

But if you can think outside of the traditional camera box for a moment, and start to think what’s possible if you combine a really portable computer with a decent camera, you’ll soon see interesting new possibilities.

Just a couple examples:

  • Camscanner - turns your tablet or smartphone into a scanner. You take a picture of your notes using camscanner, it enhances the contrast and readability, and truns (more...)

Time to toss out the laptop?

While converting my old wordpress blogposts to markdown i read some of my old posts. For example, here is what i wrote when Apple launched the iPhone in 2007:

In a couple of years mobile phones will be powerful enough to replace laptops for most common computing usages. You won’t need a separate laptop. You walk around with your mobile phone, in the office or at home you put it in a docking station, attach a keyboard and a bigger display, and you have all the computing power you need.

Some news this last week indicates we’re getting close (more...)

Moving from WordPress to Jekyll

Work in progress

I’m a slow mover here, far behind the hype-curve, but this blog is currently being moved to jekyll. The following are some notes and links from this process.

Reasons to migrate:

  • Cheaper hosting - this blog is currently hosted on DreamHost. By migrating to a static site using Jekyll, cheaper options become available, for example Amazon S3 or Github.
  • Learn something new -10 years ago this blog started on Moveable Type, which also generated static html pages. In 10 years we’ve gone from full dynamic back to static, mostely thanks to javascript. The dynamic parts in many (more...)

Need to look into SVG views and fragements

Mostly a reminder to myself, as this looks interesting for my SVG presentation tool.

I’m currently creating a Prezi/Html5/SVG/onionskinning/blackboard kind of presentation tool, and it seems like SVG has native support for some of the code i’ve been writing: SVG fragement identifiers and SVG view element.

The linking i’ve currently implemented using the html5 history api. Views are currently implemented using javascript arrays containing references to SVG group elements, where i modify the viewport of the svg element to match a specific rectangle. Seems like i can rewrite that code.

Refreshing iOS Home Screen web applications

In iOS Safari you can add web applications to the Home Screen (Add to Home Screen). When you open the web application by selecting the icon placed on you Home Screen, Safari will try to use cached resources to display the web application. To control this caching you need to understand the Html 5 application cache.

Html 5 apps can specify which resources can be cached on the client to enable offline usage of the web application. You do this using the cache manifest file. This is a text file, served with the mime-type text/cache-manifest. The filename usually has the (more...)

Oracle database coding evil, PostgreSQL business logic useful

Every time you mention doing data centric business logic in an Oracle database using pl/sql, the first reaction you’ll get from java/jee developers is that it’s evil. Code and business logic should be placed in the java based middleware.

PostgreSQL 9.2 was just released, and one of the new features is json and javascript support in the database. And somehow, developers find this an interesting feature:

Combined with the new PL/V8 Javascript and PL/Coffee database programming extensions, and the optional HStore key-value store, users can now utilize PostgreSQL like a “NoSQL” document database.

I agree that it’s (more...)

Install New Relic addon for Play 2 Framework on Heroku

Enable new relic on your app, either using the web interface, or in your terminal:

heroku addons:add newrelic:standard

The documentation is here.

Download and unzip the new relic zipfile into play 2 app lib folder.

Add the lib folder and it’s content to your git repository.

$ git add lib
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: lib/newrelic/newrelic-api.jar
# new file: lib/newrelic/newrelic.jar
# new file: lib/newrelic/newrelic.yml

To enable the new relic java agent change the Procfile in the root (more...)

Haiku Deck, if you agree that bullet points are evil

Recently, a number of books have been published that aim to improve the quality of your presentations: Beyond Bullet Points, Presentation Zen, Slide:ology and Resonate.

Unfortunately, presentation software hasn’t really improved to help you create presentations in the way suggested by these books. Their core functionality is stil focussed on writing bullet points and presenting these to your audience.

Haiku Deck is the first presentation software I’ve seen that is really focussed on helping you create visual support for your presentation. Slides consist of a title, maybe some supporting text, but most importantly, an image to illustrate the (more...)

Twitter is infrastructure

At least for me it’s turning into infrastructure more and more lately. And i guess this is true for more people. And twitter doesn’t like it, so that’s why they announced their API changes. But people don’t like it, because Twitter is infrastructure…

I hardly use the twitter app or their website. Mostly i use it in Zite, to find interesting articles to read, and to promote articles i like. And also in instapaper and Pocket.

Twitter is the infrastructure that enables these apps to display great content. Replacing twitter with Google+ or app.net shouldn’t be too hard…

Formatting XML documents with Gedit and Tidy

In “Manage External Tools” add the following script to format xml documents using tidy:

#!/bin/sh
cat > /tmp/tidyxml.conf <<EOS
add-xml-decl:yes
add-xml-pi:yes
alt-text:Image
break-before-br:no
doctype:AUTO
drop-empty-paras:no
drop-font-tags:yes
fix-bad-comments:yes
hide-endtags:no
char-encoding:raw
indent:yes
indent-spaces:2
input-xml:yes
output-xml:yes
quiet:yes
tidy-mark:no
uppercase-attributes:no
uppercase-tags:no
word-2000:no
wrap:100
wrap-asp:yes
wrap-attributes:yes
wrap-jste:yes
wrap-php:yes
write-back:yes
EOS
tidy -config /tmp/tidyxml.conf

Gedit manage external tools screenshot