News for the ‘geeky’ Category

Packard Bell Mustek Bearpaw scanner on Ubuntu/Mint

I am quite sure that nobody cares about this except for me, unless they happen to have a similar scanner to mine. I've had to do this process about 5 times now on different installs. I can guarantee that it works for Fedora, Debian, Ubuntu and Mint. I thought i'd share it because i'll probably need it again and someone else might find it helpful.

First you need xsane to be able to scan things at all.

sudo apt-get install xsane

Plug in your scanner by USB. Attempt to scan by typing scanimage. It won't work, but you need to see the error message.

scanimage
[gt68xx] Couldn't open firmware file (`/usr/share/sane/gt68xx/PS1Dfw.usb'): No such file or directory
scanimage: open of device gt68xx:libusb:004:002 failed: Invalid argument

See that PS1Dfw.usb? You need to get that file from http://meier-geinitz.de/sane/gt68xx-backend/ but be aware that your computer might ask for a different file such as ps1fw.usb or ps1fw.usb. Whichever it is, find it on the page and click it to download.

Assuming it's gone into your Downloads folder, move it to the right place.

sudo mv ~/Downloads/PS1Dfw.usb /usr/share/sane/gt68xx

Now try the scanimage command again. With any luck your scanner will burst into life and a whole load of crazy gobbledegook will splurge into your terminal window. This is the picture your scanner is seeing, trying to be displayed as text! Don't be afraid to Ctrl-C to stop it once you see it working. Or you can just wait for it to finish.

You can also do this to ensure that your scanner is configured correctly:

scanimage -L
device `gt68xx:libusb:004:002' is a Mustek Bearpaw 1200 CU Plus flatbed scanner

Now to actually scan something! Open up The Gimp and click File -> Create -> XSane -> gt68xx:libusb:004:002

It comes up with this super ugly XSane interface, where you can make a preview, choose the scan area, fiddle with the colour settings and DPI settings, and scan an image.

XSane scanning an image on Linux Mint

When it's done, it'll come back to The Gimp ready for you to edit the scanned image.

Protip: If you lose one or more of the XSane windows, you can get them back again by going to the Window menu of XSane and ticking on the ones you need.

Posted: July 10th, 2010
Categories: computer, geeky, linux, unimportant, useful
Comments: View Comments.

Gowalla pins

As of Monday, 5th July, these are the 38 pins currently available on Gowalla, grouped by category. I just made this because it's sometimes hard to see what all the pins are at a glance.

If you're curious about Gowalla, see my other introductory post: Gowalla tips.

Installing Gowalla

I Installed Gowalla I Installed Gowalla

Checking in

Wanderer Wanderer Check in at 5 different Spots to receive the Wanderer Pin.
Sightseer Sightseer Check in at 10 different Spots to receive the Sightseer Pin.
Ranger Ranger Check in at 25 different Spots to receive the Ranger Pin.
Discoverer Discoverer Check in at 50 different Spots to earn the Discoverer Pin.
Explorer Explorer Check in at 100 different Spots to receive the Explorer Pin.
Wayfarer Wayfarer Check in at 250 different Spots to receive the Wayfarer Pin.
Voyager Voyager Check in at 500 different Spots to receive the Voyager Pin.
Epic Voyager Epic Voyager Check in at 1,000 different spots to receive the Epic Voyager Pin!

(more…)

Posted: July 5th, 2010
Categories: geeky, gowalla, interesting, unimportant
Comments: View Comments.

don't you just love an awesomesauce #tupperwarebox

This weekend the world went mad for Tupperware Boxes.

Key output:

Some rather bizarre songs:

My dog's favourite thing is my #tupperwarebox, it's full of treats and nom, she behaves so well when it's around, I think I'll tie it on.

I've got a massive #tupperwarebox it's got a special lid that clicks and locks

Come on and let's rock! Everybody let's rock! Everybody in the whole cell block was dancing to the #tupperwarebox!

How I love my little #tupperwarebox! You can a-store my cheese, you can a-sit on my knees, feels like a picnic right here at home…

A quiz: "Which #tupperwarebox would you be?"

A twitter retweeter bot: @tupperwarebot – the cool thing about this was i learnt how to use Yahoo Pipes and made a pipe that finds relevant tweets and manipulates the stream to become retweets with the hashtag #tupperwarebox

A Justin Bieber in a #tupperwarebox which gained the @tupperwarebot a lot of Justin Bieber fans!

Justin Bieber in a #tupperwarebox on Twitpic

This is actually quite disturbing when i found there is a rumour that Justin Bieber got stuck in a toy box at age 7 and suffers from claustrophobia. But anyway, the fans seem to like it. They appreciate the randomness of it and came up with the hashtag #justininatupperwarebox!

Finally, there is a Facebook group: Tupperware Box! If you are a fan of Tupperware and/or pure random nonsense, please don't hesitate to join! :D

Tupperware Box on Facebook
Posted: April 12th, 2010
Categories: amusing, family, friends, geeky, meme, promotions, random, social, unimportant
Comments: View Comments.

A quick way to resize images in Linux

Quite often i find myself wanting to resize a whole directory of images. Rather than opening them all in the gimp, i do it through the command line. I seem to do this often enough that it's worth recording here, for my own reference as well as for anybody else who would find it useful.

First of all, you need imagemagick.

sudo apt-get install imagemagick

Change directory to where the images are and create a subdirectory for the resized versions.

cd ~/Photos/2010/04/05
mkdir resized

My phone likes to put spaces in file names which really confuses things, so i convert them to underscores. You can skip this step if your filenames contain no spaces.

for image in *.jpg; do mv "$image" `echo $image | tr ' ' '_'`; done

Now for the clever bit: i run convert command on the image files, resizing them to 1024px and saving with a quality of 80%.

for image in *.jpg; do convert $image -resize 1024 -quality 80 resized/$image; done

Lovely wonderful linux! :D

One thing to note: it always resizes along the top edge, which may not be the longest edge. If you have a portrait file which is 1536×2048 it comes out at 1024×1365 (not 768×1024 as you might have expected).

The resize option can take a percentage, so if you know all your images are the same size then you could just send a 50% to reduce to half size.

for image in *.jpg; do convert $image -resize 50% -quality 80 resized/$image; done

Imagemagick is super-incredible-awesome so there probably is a way to deal with differently sized images at different orientations. If anybody knows, please add it in the comments! :)

Posted: April 5th, 2010
Categories: computer, geeky, linux, photos
Comments: View Comments.

My software apprenticeship

I have recently had the privilege of being accepted as an apprentice to software craftsman and philosopher Enrique Comba Riepenhausen. This is part of Eden Development adopting a craftsmanship approach to software creation.

I am very excited at this new development in my career. It's going to be hard work because i have a lot to learn, but i am pleased to have made the commitment and to know that i have someone who is playing a very active part in my personal and professional development. Funnily enough, the more i learn, the more i realise how little i really know. The first task that i have been set as part of my apprenticeship is really showing me that.

Eden Development has given me a blog to talk about my progress during my apprenticeship. So i have decided that my apprenticeship blog will become the place that i talk about my technical and coding interests, leaving this blog to be more personal. So if you are interested in me from a technical point of view, please follow edendevelopment.co.uk/blogs/aimee.

There are actually now five apprentices at Eden Development. If you are interested in software craftsmanship it is well worth looking at the Eden staff blogs aggregation to read all our thoughts and experiences on our own journeys.

Posted: December 15th, 2009
Categories: apprenticeship, geeky, software crafting, work
Comments: View Comments.

The Lord's Prayer, for coders

The following comes from a funny (and slightly weird) conversation i had on a walk with a colleague this afternoon. This is literally the way we often talk when we go out for our walks around the fields of Barton Farm! One day we're probably going to have a day when we only speak in Ruby!

@heaven = Heaven.instance
@father = God.trinity[0]
@earth = Universe.galaxies.find_by_name("Milky Way").solar_system.planets[2]
 
@father.open_connection do
  @father.current_location.should == @heaven
  @father.name.should be_hallowed
 
  kingdom = mock_model(Kingdom)
  Kingdom.stub!(:new_for).with(@father).and_return(kingdom)
  kingdom.should_receive(:come!).and_return(true)
  @earth.should be_like(@heaven)
 
  @earth.current_population.each do |person|
    person.should_receive(:bread).daily
    @father.should_forgive(person) && person.should_forgive(:others)
    @father.should_not lead(person).into(:temptation)
    @father.should deliver(person).from(:evil)
  end
 
  while true do
    [Kingdom, Power, Glory].collect do |klass|
      klass.all.should be_attributed_to(@father)
    end
  end
end

Shame i haven't updated for such a long time. I was unable to log into my blog for a while, and even when i fixed it i couldn't think of anything to write to make a suitable come-back! Hopefully this satisfies! :)

Posted: October 21st, 2009
Categories: amusing, geeky
Comments: View Comments.

A website in a day

Sometimes it's excellent fun to work with somebody to produce a website in a day. With no requirement for ongoing support, just get it up and running, instant gratification. In a way, it says, "Look what we can do when we set our minds to it!"

New site for the Winchester Web Scene
winchesterwebscene.co.uk

Yesterday, @sydlawrence phoned me to ask if i'd like to help make a new site for the Winchester Web Scene. Without a second thought, i said, "DEFINITELY!" We got together at 3pm today at the Bridge Patisserie. We drank lots of coffee, went on to the Bishop on the Bridge, then went back to Syd's house and ate pizza. We got the whole site designed, coded, integrating with Twitter, Flickr, Google Maps, Gravatar and Campaign Monitor for email subscriptions, with a blog plus comments, events list and RSS feeds … in about 5 hours.

It was nice that two Winchester web companies, Marmalade on Toast and Eden Development were able to combine talent to work on a fun social project together. The two of us had a great time making it!

The site gives a far greater prominence to the Winchester Web Scene than the old Ning site did. Still in its first few hours of existence, the site has already had 71 unique visitors. The future of the Winchester Web Scene is looking very bright!

The next event is a barbeque at the Hyde Tavern on the 6th July from 7pm. If you live near Winchester and are interested in anything to do with the web, you're very welcome to come along! :)

Posted: June 20th, 2009
Categories: friends, geeky, social, web 2.x, winchester, winchesterweb
Comments: View Comments.

A quick look at Hobo

Having just installed Rails on Ubuntu tonight, and reminded myself how utterly horrible the Rails scaffold looks (it's supposed to!) i thought i might have a look at Hobo.

Hobo builds upon Rails, brings in a few plugins, makes it even faster to do things, and looks pretty good right from the start.

(more…)

Posted: June 12th, 2009
Categories: geeky, interesting, ruby on rails
Comments: View Comments.

Rails on Ubuntu in 14 minutes

I recently installed Ubuntu Jaunty Jackalope and hadn't yet got around to putting Rails on to it.

Installing Ruby and Gems and Rails and getting them all to work nicely together can be a pain, so i'm happy to say i managed to go from nothing to Rails installed and working in 14 minutes this time! Thanks very much to Installing Ruby on Rails on Debian/Ubuntu for most of the tips. Here's how it panned out for me:

(more…)

Posted: June 12th, 2009
Categories: geeky, linux, ruby on rails, ubuntu
Comments: View Comments.

CouchDB and data storage

Alexander Lang has written a great article about why CouchDB is not compatible with ActiveRecord, and why you should not try to coerce CouchDB into mimicking a relational database. It really is a very different thing altogether: The case of ActiveRecord vs. CouchDB

In my experience of CouchDB i first tried out ActiveCouch because of my familiarity with ActiveRecord. I soon came across problems because it was trying to make CouchDB something that it is not. As i exclaimed at the time, "LOL. ActiveRecord this is not!"

I had far more success with couchrest which is a much closer CouchDB wrapper, enabling CouchDB to be used as it's intended: as a RESTful interface with map/reduce views.

Domain-Driven Design

Recently i have been reading Domain-Driven Design by Eric Evans. Through reading it my understanding of Rails – and web programming – has completely turned around. My thinking used to be entirely database-centric. I saw Rails as little more than an easy access into the database. For ages i didn't even realise that you could have models that weren't connected to a database table!

Now my thinking has changed and i consider the primary focus to be the domain model. I think about the classes and the design patterns that apply to them. I consider how they fit together, how they communicate with each other, and the boundaries between the core domain and subdomains. In my mind, the database has gone from being the most important thing to being just a method of persistence for the data in the domain model.

When you think of things this way round you are less likely to get hung up on the differences between ActiveRecord and CouchDB. You work out your domain, design the classes and then think about the most appropriate database platform to support your model.

Update: I've just come across a useful article that provides three methods to achieve a has_many relational structure in CouchDB. CouchDB "Joins" by Christopher Lenz.

Posted: April 10th, 2009
Categories: books, couchdb, geeky, ruby on rails
Comments: View Comments.