Archive for the ‘meaningful labor’ Category

Life as we know it, edition 4 has just been published.  Once a month  Fairly regularly, Peter and I along with a host of collaborating authors put together a little journal primarily because we think storytelling is important.

For the first time it includes an article by yours truly, snappily entitled “Twitter and The Great Unwashed: how “normal” people ruined The Internet for the rest of us.

A brief intro here, I’ll publish the (slightly ranty, a bit geeky) article in full here in a few weeks.

Once upon a time, everything was simpler

A friendship was a construct based on shared memories and experience. The web was one of many, and it hung between idle walls. A tablet was something that came in a packet of 16 and the internet was the demesne of nuclear scientists and the military.

The Commodore and Atari era eluded me, too young and more interested in working out how to stand on my bike while stationary and climbing the horse chestnut tree. A green screened Amstrad was my first computer. It was used for accounts, not mine, and writing. Two front-loaded disks and a distinct lack of entertainment ensued. To play a game it had to be ‘loaded’, not by disk, not by air… a different experience to the application store process of today. A few hours of typing left you with a glitchy but functional circa 1990 version of Donkey Kong without splashing out on the original Nintendo… which eventually was bought.

The darling of 2010, Angry Birds, this was not. There was no point and click, and drag and fling. This took effort and you earned reward. Auto-save did not exist.

So, please read the journal at your leisure; and please like it on Facebook or follow on Twitter.

The football season has started, the summer warm-ups have begun in rugby, the cricket tests … well, cricket never really stops, does it?

I’m happy about this. I went out to watch my team’s opening day fixture, I’ve made some preliminary plans to make my first trip to North London on a match day.

I’ve an issue with being a dedicated sports fan: I despise idol-worship. Being an Arsenal fan, I feel the disappointment and the happiness of a win as much as your average armchair fan. However, the thought of getting a player’s name emblazoned on my replica shirt (which I got for free with my last broadband package, go figure!) sits very uneasy with me. Not least because next season they could be gone to some other club.

Things changed in April 2010.

As for the previous four full seasons, I’d been at nearly every Belfast Giants game since mid-September. Originally as a duty – I was helping out a friend who ran the video team – and latterly while working but more and more enjoying the game, and the atmosphere. The Giants were all set for the quarter final game; possibly their last of the season. A home-and-away double header against the Newcastle Vipers, a team now extinct after they folded this summer. Belfast emerged victorious, whitewashing the Newcastle team 10-3 over the two-legged fixture. A swift advance then, to the Easter weekend finals.

Penalties decided the Giants v Nottingham Panthers semi-final after 65 minutes (60 regular + 5 minutes of sudden death) – a gritty affair with one of the Panthers players sent packing a few minutes early.

Before the final I experienced something I’d never really been through before: My team, in front of me, in a position to achieve glory or insignificance.

I was toting a HD video camera; not an unusual task at the time, but this was a little different. This was to capture the fans, not the game. The game passed by with a normal level of interest, a cheer when Brandon and George scored for the giants in the 22nd and 32nd minutes, a groan when Max Birbraer made it 2-2 with two goals before the final period began. Tension for twenty minutes until the end of regulation and five minutes of bouncing heels through sudden death overtime.

Words really don’t do justice to the nail-biting edge of the penalty shots. I was trying to hold a camera steady and hoping for a glimpse of steel from Stephen Murphy in the Giants net. I wanted to see the fans around me roar when Cheverie, Walsh and Szwez took their turns, but all three missed the net. Thankfully Murphy had the steel, he stopped all four of Cardiff’s attempts. Evan Cheverie took the fourth shot and scored sending the team and the fans crazy with the win.

So. The new years begins in a fortnight with a double header pre-season friendly in Belfast hosting the Nottingham Panthers. Not your average pre-season. The Panthers are hated rivals (as much as can-be in a non-native sport market) and it should be a decent show.

Usually I would be promoting our webcast but we won’t be broadcasting this particular game. Check it out some time though, and if you’ve never been or seen, hit me up for a free view and I’ll send one your way.

More info:

I want to get away from this current site, it doesn’t show off anything of my professional work nor does the site itself actually resemble or build on anything I’ve made (apart, obviously, from WordPress site implementations).

How to go about this?

Well, I’ve identified the steps I need to go through to migrate the site from WordPress to a Ruby based site, either Rails or Sinatra (just to try my hand something a little different). Actually if heroku get it sorted in time I may throw together a Node.js application — they can be fun.

These aren’t necessarily in the right order at but I will approach them all independently and hope to blog through the process.

  1. Extract the current site’s data into a manageable format
  2. Design a data structure for a new site
  3. Migrate the data from Step 1
  4. Create or choose a blogging solution
  5. Implement Step 4

I’ve already made a start on a site design, I’ve got my data saved and have chosen a method of parsing it, which will form the next blog post.

Last week saw the launch of TOTU: Tales of the Unexpected, a Summer Madness and Exodus project. The site was developed by me with visual identity design by Connie & Craig, the super-talented folks over at beautiful end product.

“TOTU is an opportunity for everyday people to express a part of their lives, a snapshot of faith, or quite simply, an encounter of God – and that’s always worth talking about”

I hope you enjoy watching the videos and maybe feel inspired to share.

So, the site is now live. Enjoy!

Today I huffduffed for the first time. I’ve planned to for a while…

The word Huffduffer derives from a technology called Huff-Duff [HF/DF] that was used to triangulate the position of radio transmissions. Huffduffing on the web is a way of pin-pointing interesting MP3 files.

Jeremy Keith spoke to Refresh Belfast in December and while I gave up on producing the video because it was so dark in the venue I simply forgot that I’d taken a HQ line out of the sound desk with the recording.

So here in all it’s glory is “Jeremy Keith talking about Huffduffer on Huffduffer about Huffduffer.”

Enjoy.

*** Please note – this will probably not work (at all) (for more than a day of light use) without Cron use. And isn’t at all authorised by Dreamhost!! ***

For a recent client project I’ve used a Dreamhost unlimited account, which for value compared with the resources available and the fact that you don’t have to do any building or setting up of the server environment makes it an easy win for a site that’s not going to have a huge amount of traffic or a large amount of processing.

Post-launch I got to work putting together a basic search engine and here’s a quick run through of the steps it took to get a very simple Sphinx instance working on Dreamhost, and a few hurdles thrown in the way by various googled articles.

Development Environment

Using the guide from FG install Sphinx locally:

curl -O http://sphinxsearch.com/downloads/sphinx-0.9.8-rc2.tar.gz
tar zxvf sphinx-0.9.8-rc2.tar.gz
cd sphinx-0.9.8-rc2
./configure
make
sudo make install

then install the TS plugin into your application

script/plugin install git://github.com/freelancing-god/thinking-sphinx.git

Any problems with that, check out the FG page linked.

Getting a basic search going

Following tutorials such as the Sphinx Railscast will get you there pretty quick.

In your searchable model you need to define an index


class Page < ActiveRecord::Base
  define_index do
    indexes :title
    indexes :long
    indexes :short
  end ...

Run the indexer and start the Sphinx instance:


rake thinking_sphinx:index
rake thinking_sphinx:start

After this you'll be able to search on your object. So using script/console

@searched_pages = Page.search("query")

will return what you're looking for!

Setting up Dreamhost

First things first you need to install Sphinx in your local area, as posted by Hugh Evans:

cd ~/
mkdir -p local
wget http://sphinxsearch.com/downloads/sphinx-0.9.8.1.tar.gz
tar -xzf sphinx-0.9.8.1.tar.gz
cd sphinx-0.9.8.1/
./configure --prefix=$HOME/local/ --exec-prefix=$HOME/local/
make
make install

then set up the PATHs

echo "export PATH="$PATH:~/local/bin"" >> ~/.bash_profile
source ~/.bash_profile

You can choose to set up a CRON task at this point too, but I'm not going into that.

Also at this point in the there's talk of using Sphinx being anti TOS in DH's eyes... but we'll see does the process get killed or not!

Configuring Sphinx for DH

Create a file called sphinx.yml in the RAILS_ROOT/config/ folder.

Because Dreamhost uses an externally referenced MySQL server instead of localhost you need to set up the sql_* parameters:


  sql_host: "mysql.YOURDOMAIN"
  sql_port: 3306
  sql_user: "USER"
  sql_password: "PASSWORD"
  sql_database: "DATABASE"

And because you installed Sphinx in your local area:


  bin_path: '/home/YOURUSERNAME/local/bin'

Finally, after setting whatever memory/fine tuning settings you wish/require set up the locations for the Sphinx files:


  config_file: "/home/YOURUSERNAME/DOMAIN.co.uk/shared/production.sphinx.conf"
  searchd_log_file: "/home/YOURUSERNAME/DOMAIN.co.uk/shared/log/searchd.log"
  query_log_file: "/home/YOURUSERNAME/DOMAIN.co.uk/shared/log/searchd.query.log"
  pid_file: "/home/YOURUSERNAME/DOMAIN.co.uk/shared/log/searchd.production.pid"
  searchd_file_path: "/home/YOURUSERNAME/DOMAIN.co.uk/shared/db/sphinx"

That should be you ready to start deploying.

Deploying

Using Git + Capistrano for deployment (and Passenger for the http server) my deploy.rb's namespace area looks like this:


namespace :deploy do
  task :restart do
    after_symlink
    restart_sphinx
    run "touch #{deploy_to}/current/tmp/restart.txt"
  end

  task :start do
    # nothing  (this avoids the 'spin' script issue)
  end

  desc "Re-establish symlinks"
  task :after_symlink do
    run <<-CMD
      rm -fr #{release_path}/db/sphinx &&
      ln -nfs #{shared_path}/db/sphinx #{release_path}/db/sphinx
    CMD
  end

  desc "Stop the sphinx server"
  task :stop_sphinx , :roles => :app do
    run "cd #{current_path} && rake thinking_sphinx:stop RAILS_ENV=production"
  end

  desc "Start the sphinx server"
  task :start_sphinx, :roles => :app do
    run "cd #{current_path} && rake thinking_sphinx:configure RAILS_ENV=production && rake thinking_sphinx:index RAILS_ENV=production && rake thinking_sphinx:start RAILS_ENV=production"
  end

  desc "Restart the sphinx server"
  task :restart_sphinx, :roles => :app do
    stop_sphinx
    start_sphinx
  end

end

There's probably a neater way to do this, but basically this makes sure Sphinx's indexes and conf files live in the shared deployment folder.

I recommend you try all this in a staging area first, obviously... and you can use Dreamhost's control panel to set up a staging subdomain with a new database in whatever fashion you prefer.

Any problems with this script flag them up, please! This is as much for my future reference as you googlies out there.

I’ve had huge amounts of pain getting WordPress set up locally over the last few weeks on my old machine and when it struck again with my new development environment it definitely time to write down the required steps to get a great LAMP/Rails setup prepared (for me)!

Leopard has PHP and Apache fairly up to date, and probably MySQL as well, but I decided to get MySQL up to scratch using the Universal Binary along with a few command line instructions available here (guide and links to downloads).

I didn’t use this script myself, and at a year old it may have a few imperfections, but HiveLogic have a fairly well rounded Ruby/Rails install going on.

Finally, WordPress to go on your LAMP stack will be a lot less painful using this guide for Tech Recipes.

Any suggestions additions or replacements for this list? Drop a comment!

Stumbled across this fella on Twitter today, noticed he worked at Slide (who make successful/annoying Facebook Apps). None the less (I joke) he writes a blog at http://www.unethicalblogger.com/ and has recently been writing a series of ‘ProTips’ on using Git Repos for his work colleagues.

I think it might prove useful: http://www.unethicalblogger.com/blog_categories/git will be taking a read in my spare time.

Final Cut Express seems by default (or maybe I did it) set the default Render frame rate to 50% to speed up the NLE previewing process.

These render files however are the same ones that are used to put together the ‘finished product’ if you don’t use one of the Quicktime Conversion options.

If your output (to DVD or whatever) is choppy and you think the frame rate is possibly messed up the easy way to check is to pause your Quicktime movie, then use the left and right keys to move through frames. If each pair of frames is the same then you have not got a full output. To resolve it, go to your User Preferences screen, click Render Control and select 100% from the Frame Rate drop down.

I did fix this problem several months ago, but seeing as I am waiting for something to render I thought it was an opportune moment to write it down.

—–

Update: pssst don’t forget to try deinterlacing if your video looks rubbish ;)

Hi All

This Saturday evening Live from the Odyssey Arena in Belfast, Northern Ireland, HiDavid Ltd and giantslive.com are proud to present to you the Belfast Giants in action for the first time this season as they face the Cardiff Devils.

The Elite League kicks off it’s new season this weekend and you can check out all the action from Belfast this year live on the web. It is our intention to broadcast all of the games from home ice this season live and for free, so tune in on Saturday about 6.45 to giantslive.com (the website will be live Friday morning).

Also available this year we will be selling DVDs of each match-up, ready and available to buy at the next home game and who knows maybe there’ll be a ‘season ticket’ DVD offer for those who wish to buy all games.

Watch here -> http://www.giantslive.com