Moral Code, Actual Code and Becoming Management - Ought You?
I’ve just read a very interesting blog post by Charity Majors, which tackles the question:
On Gender, Sex and a Spectrum of Influences
The issue of transgender rights has come to the fore quite prominently in recent times, in part no doubt due to the clampdown on such rights by the Trump administration. Bans on serving in the military and a plethora of bathroom bills across the US have ensured a fiery reaction. It is unsurprising then that the number of articles and editorials on the nature of trans has increased in scientific publications, such as Nature and Scientific American. These articles have posited scientific evidence and facts that are likely to be well received by the transgender community. However, in a recent Quillette article, Colin Wright counters with an accusation that this movement could be dubbed ‘The New Evolution Deniers’. His analysis is explored here, where the question as to whether these articles claimed that biological sex should be considered a spectrum is scrutinised. This question is important because clarity is needed as to whether a trend exists, in these scientific publications, in moving away from a binary definition of biological sex.
Why Religion As a Belief May Not Hold Water
The clock is ticking down in the run up to Ireland’s blasphemy referendum on October 26th. Few commentators think that the references to blasphemy should remain in the Irish constitution. However, John Waters featured in The Times, proposing that they should be kept in place to safeguard respect and belief [1]. His argument is confused on two grounds.
There Is No Place Quite Like Hell
So I recently came across a headline somewhere outlining that Pope Francis said that hell did not exist. Given a recent uptick in my interest in philosophy, it struck me as an interesting article to dive into. Of course, anytime you really want to find an article you recently swiped past, the forces of the universe will conspire against you to make sure that you never succeed in finding it. So I resorted to the only thing that can consistently mitigate the forces of the universe - Google. A quick Internet search later and we were back in business. And I had got something altogether different.
On Sam Harris, Jordan Peterson and Douglas Murray at Dublin's 3Arena. And Why...
An event that caused plenty of controversy in some quarters went down in front of quite a full house of eight and half thousand in the 3Arena on Saturday 14th of July. Here, a few of the Intellectual Dark Web’s (IDW) leading actors interlocked for the first time in Dublin. Jordan Peterson is a Canadian clinical psychologist and a professor of psychology at the University of Toronto. He became infamous in 2016 for announcing his objection to the Canadian government’s Bill C-16 and said he would not use the preferred gender pronouns of students and faculty. This, along with his disdain for what he describes as the radical left, make him a divisive figure to say the least. Sam Harris is an American philosopher, neuroscientist, and author of the Waking Up podcast. He is a strong critic of religion and posits that science can provide the answers to improving human well-being and society. Douglas Murray is a British author, journalist and political commentator. He is a particularly strong critic of recent European migration policy and advocated the case for Britain to vote “leave” during the Brexit referendum.
Peterson Vs Harris, and the Facts of (Moral) Life
This breakout article accompanies the summary of the Intellectual Dark Web event in Dublin on Saturday July 14th - On Sam Harris, Jordan Peterson and Douglas Murray at Dublin’s 3Arena. As that article frames much of the conversation below you are encouraged to start there first.
Morning Moments from UXDX Conf 2016
The RDS was looking stunning for the arrival of UXDX Conf on the Dublin scene. By genius or by co-incidence the organisers had picked a day on which the schools were off, making for a pleasant low-traffic commute. As you would expect, the registration process was smooth ( and exhibited good UX :) and the coffee kicked the cobwebs off any latent sleepiness hanging around. Here are some moments from the first half of the day, far from a comprehensive roundup. Any talks excluded were simply victims of resourcing constraints, whilst trying to write this up on the day.
Fixing a VirtualBox 4 to 5 Upgrade by Reinstalling Guest Host Additions
This upgrade did not go quite as smoothly as expected but after a bit of shouting at the computer we got there. The issues may have been specific to the state of my virtual machine image and possibly won’t affect other people upgrading. Anyway in my case, after I upgraded to VirtualBox 5 and began to use my image with it, I realized Copy & Paste between the host and the guest would not work.
My Embarrassing First Steps with the Javascript fetch() API
Spoiler: If you are more interested in the destination than the journey then skip to the last code example in this article. So after a decade of the dollar, the great $ symbol that is ubiquitously associated with jQuery (and mostly AJAX), we’re finally moving on. Moving on to what promises to be a leaner, more modern API in the shape of fetch(). My motivation came from this post about waiting for multiple async calls in Redux. I’d been using jQuery (or a layer on top of jQuery such as Backbone) to talk to remote servers since James Blunt hit the charts with “You’re Beautiful”. And since moving to React it didn’t seem to make much sense to pull in all of jQuery just to make a few simple remote calls - so trusting in Dan Abramov (has he ever put a foot wrong?!) I decided to polyfill in fetch() and friends, and embrace the simplicity of this new standard. Trouble is, it’s not as straightforward to get started as you might think it is.
I've Got 409 Problems but the Status Header Ain't One
A correction… During last night’s talk on the JS Application Reloader gem, I mentioned that when the gem’s back end code detects a reload of the application is required it sends a HTTP 409 to the client. But to use the Chewbacca defence, “That does not make sense!” A 409 indicates a conflict.
The Purity of the Potato
Pity the potato. It’s National Potato Day, yet our once budding superstar’s been trending downwards ever since huntergathers began dragging their knuckles to the dining table. A carb allergy has infected the nation leaving the humble potato about as popular as a water tax at a car wash. How did the potato turn from staple diet of the people to an episode of Man v Spud? It just wanted to be your spuddy buddy. Leave aside the fact that this vegetable can conjure up more pun potential than Buzzfeed can whip up kitten stories…
Batshift Crazy - Basic Binary Number Representation in Javascript
In today’s Dublin Code Kata, we revisited a bit of classic Comp Sci - integer vs binary representation of numbers! And I learned that converting integers to binary numbers isn’t all that hard in Javascript :)
Rails Girls Revolution
Your first day programming is always going to be a challenging one. It’s hard enough to learn a new language to speak to another human, never mind trying to unravel the mother tongue of a machine. Probably the best way to tackle this challenge is with a sense of mischief, fun and divilment, and a raft of like-minded people. These ingredients made for the perfect recipe that was Rails Girls Dublin, an informal mini-conference like event, that took place at the NDRC in Digital Hub on Friday and Saturday.
Geekslam 1 - NoSQL vs RDBMS
Geeks are ending 2012 with a serious bang, after a year that has been so jam packed with tech events that it’s bloody hard to unearth an evening not already occuppied by some tech occasion. Following hot on the heels of the usual post summer conference season, you’d think that Javascripters, Pythonistas, PHPers, Rubyists, .NETers, Nodies, Erlangers (a title that would make for an awesome Cork meetup!) and Objective-C types would waving the white flag and catching up on some zzz’s ahead of Christmas. But no! They’re still kicking ass. Two examples from just this week were Geekslam and the Global Day of Code Retreat.
Search Engine Friendly Redirects for Custom Domains on OpenShift using a .htaccess file
OpenShift provides an easy way to host your Ruby based blogs (built on Sinatra or Jekyll) or Wordpress site, without incurring expense. Being content heavy, these kind of apps should really not have duplicate content on different domains out there on that crazy ass Internet. Them spiders just won’t like you as much!
SpreeConf 2012 Day 1 with an Incredible Ecommerce Community
It’s great to hear a conference open with the quote, “Open Source projects are partly about technology and massively about community” [David Brady, Ruby Rogues #51]. This was how Chris Mar introduced Spree Commerce to us, setting the tone for the two days of E-commerce, Ruby and Javascript related action at the Guinness Storehouse in Dublin. It went down as an event which showed the best of Spree, the hospitality of the Irish and the folly of missing this event!
Where Ruby leads, others follow...
In response to the question and comments on a recent linked in post discussing the suitability of various web platforms, including Ruby on Rails…
Bundler installing gems into the wrong directory - mea culpa
So I spent an hour and a half last night unfairly swearing at the spork gem; and blaming it for everything from world hunger to banking crises! This is because somehow when installing spork I had managed to change the location that bundler installs gems into - strangely enough into a directory called ./spork under my project directory. And I figured the blame landed at the door of the spork gem. Here’s what happened just so that you don’t get caught out.
Machinist 2 and the undefined method for Sham:Module error
This ain’t no Sham marriage! Machinist 2 has done away with the Sham module. But, at time of writing, this isn’t immediately obvious from the installation guide. So if you try to horseshoe your Machinist 1 (Sham-based) tests into Machinist 2 then you’ll find you get an error like
Push and pull data between your local MongoDB and Heroku or MongoHQ
Heroku do a great job of providing a free way to host MongoDB. The only slight issue I had was syncing data between my machine and my Heroku apps - in the way I was used to with their Taps plugin which works for Postgres databases. But here’s how to do it for MongoDB. Note, I was using it with a Rails 3 and Ruby 1.9.2 app.
Getting Pyzeemote running on MeeGo
Pyzeemote allows a Zeemote controller to communicate with a running application over D-Bus. We’re going to get it running on MeeGo today. All in all, getting this working will involve the following components
Installing Ruby on Rails on MeeGo with SQLite
This post will go through installing Ruby on Rails 2.3.2 on MeeGo - though it should likely work for any version of Rails, including Rails 3 (though the actual Rails commands at the end of this guide will be a little different). Firstly go through the Installing Ruby and Rubygems on MeeGo guide to get at least Ruby 1.8.7 on your system and then carry out the following steps.
Installing Ruby and Rubygems on Meego
Thanks to some great people on the Meego mailing lists I can happily show you how to get recent versions of Ruby and Rubygems running on your beloved MeeGo. The steps I present here are simply extracted from the guide at http://wiki.meego.com/Quality/QA-tools/TDriver
Supressing hrefs in image hyperlinks when deleting resources using jquery
This week we’re trying to delete a resource using jquery within a Rails 2.3 app. First thing to note when using Rails is that if you set :method => :delete like below you will get a whole bunch of obtrusive prototype library javascript injected into the hyperlinks onclick() event. This can clash with your jquery code so you can’t use :method => :delete alongside jquery. And it doesn’t make any sense to do it this way. The number one reason that someone (err… yes, me!) will get into this mess is that they’ve been using the image_tag and link_to helper’s and just forgotten that all this extra prototype code will be generated. So this is not so good for what we want…
Will there be a red carpet for Nokia at The Appys?
Just heard about this new awards ceremony The Appys! It will hand out the accolades to what it judges to be best mobile applications out there for a range of devices. As a long time Maemo fan and now MeeGo fan I’ll be interested to see many apps are submitted for Nokia and its Ovi store.
How to localize model names in ActiveRecord associations via config locales with Ruby on Rails
Argghhh!!! I went bananas for a little while getting my head around this. What are we trying to achieve? Well, say let’s we have a model called Consultant which has a many-to-many relationship with Company though a Contract association. The Contract model is basically sitting on topic of a simple join in the database which has consultant_id and and company_id fields.
Getting readline to work with Ruby Version Manager (RVM) on Linux Mint KDE
I couldn’t get readline to be picked up using the ‘rvm package install readline’ command. So instead I had to install the readline development headers as a Debian package
Accessing your encrypted home directory in Ubuntu
This process details accessing an home directory, which was encrypted using the “encrypted ~/Private directory” technique, that has been with us since Ubuntu 8.10 (Intrepid Ibex) and available as an install option.
Beginning Optimization in MySQL
The first place to start be to run your query using EXPLAIN in order to see what MySQL execution plan. Simply put EXPLAIN in front of your SELECT statement and check the output. Initially, you might think that its output doesn’t give hard figures and as a result is pretty awkward to understand. But you’ll soon see that it really helps you understand your queries and how they interact with things like indexes. The first page of this article by Ian Gilfillan is a great explanation of explain (bit of a mouthful that!).
Ruby Bindings for Qt: Building QtRuby on MeeGo and creating an RPM
MeeGo is great. What could make it even better? More Ruby :-) So what better way to achieve this than by getting the Ruby bindings for Qt up and running on MeeGo. So here’s a Work In Progress guide…
Enabling mod rewrite on Apache
To see if mod rewrite is enabled just create a simple php page with the following content
Awesome Linux Media Center using XBMC
One of things I have been doing lately is rediscovering my music - inspired by talking to the some of the Amarok guys at Akademy this year! So I decided to go on a search for an Open Source Media Center solution and up popped XBMC. Now this project isn’t related to Amarok but that doesn’t stop it being way too cool for school! I’ve being tinkering with it for just a few days and it just works like a dream.
Simply adding a Linux Partition via fstab
Just add something like the following to /etc/fstab…
Hello Planet KDE! Ruby makes an appearance in Grantlee
So this will be the first time theirishpenguin makes it onto Planet KDE! And no better time - blogging straight from the KDE community feast that is Akademy! It’s been a superb week, in the stunning city of Tampere in Finland. It’s Day 6 of the event, a day which has been quite a Ruby-tinted one. First up, I had the pleasure of hacking on Grantlee, a Django-inspired string templating engine in Qt, with Stephen Kelly; adding Ruby support to the code generator example it ships with. Also, after talking to Cornelius Schumacher from OpenSUSE I learned that Ruby’s splashed all over the place - even helping power the OpenSUSE Build Service which allows packages to be easily built for any distro. Cool, eh?
Developing a simple Match Schedule N900 App for the group stage of World Cup 2010 via Qt on Rails
Today we’re going to take a quick look at how to create a N900 app by taking a simple existing Ruby on Rails application and turning it into a Maemo app using Qt on Rails. The main thrust of this blog post is to show how you would tweak the skeleton app generated by the Qt on Rails framework into something that might be useful in the real world. The Match Schedule app is very basic and only shows the upcoming fixtures for the day. But most iPhone apps are simple thin wrappers around a data layer anyway; and this is really only a proof of concept app, so I’d don’t feel to guilty about my humble achievement.
Deploying your Qt on Rails apps on the N900 (Maemo)
Qt on Rails is a framework to let you turn your Rails sites in desktop applications and harness the power of Ruby! It’s not at production level yet but it’s certainly possible to have a good play with it and a bit of a hack! If you’re not familiar with Qt on Rails then a good place to start is this blog post covering the v0.1 release. Also, check out the github repo for more info on installing Qt on Rails on your desktop and building an application with it. Here we show you how to deploy Qt on Rails based apps on your N900. One of the goals of Qt on Rails is to provide an easy way for you to develop apps faster for Maemo and, down the road, hopefully MeeGo too!
Qt on Rails v0.1 released. But is this Ruby-based Qt and KDE app framework doomed?
Ruby has changed the way developers build web applications. Since popularised by the Rails framework, programmers no longer stumble around in the dark with disparate web forms; instead they are able to clearly focus on the business problem and expose a well-modelled domain in a easily testable manner. Traditionally used in data-heavy domains, today’s web apps now encroach on the desktop’s home turf of rich highly-functional applications - something years ago thought impossible. And most surprisingly, through clever use of patterns and conventions, they’ve arguably become the easier of the two to develop. Given this, could desktop developers learn from the web app approach? This is in part the motivation behind Qt on Rails - let’s use a conventions-based approach to building desktop applications and clients. Let’s harness the ease and expressiveness of the Ruby language. And let’s have a clean consistent domain model underneath the hood with a comprehensive suite of tests to boot. A grand idea; but right now, it’s on course to fail…
Getting started with PostgreSQL when developing Rails applications
If you’re familiar with MySQL and trying out PostgreSQL for the first time while doing some Ruby on Rails development, things can initially seem quite unfamiliar. A great first article to look at is available on the OLM on Rails site at Switching Rails to PostgreSQL. Also at this early stage in your PG career you’ll need to know how to change things like user passwords so check the Examples section of the PostgreSQL Alter User docs.
Doing Raw MongoDB Queries when using MongoMapper with Rails
Even though, you’re using MongoMapper with Ruby and Rails, you may sometimes want to do queries using the Mongo database itself. Here’s how I do it (note: there may be a better way, please post a comment).
Using git-svn to connect to a Subversion repository via Git
This is quite simple on Linux. Here’s how…
Lifting the lid on Open Jam!
Open Jam was an Ubuntu Ireland lead event which invited all members of the Open Source community to come along to Enterprise Ireland’s Dublin offices at East Point on Saturday the 27th of March. And come along they surely did, really show-casing the diversity of groups we have here in Ireland - users of Open Source software, developers, admins and advocates. The timing of Open Jam was to coincide with the Ubuntu Global Jam - where contributors to the Ubuntu project focus on finding, prioritising and fixing bugs as well improving documentation, artwork and more. The ‘Open’ in Open Jam was to extend that spirit to everyone - independent of their area of interest or skillset - to collaborate, learn and share.
Hooking up a laptop to a projector using Nvidia Twinview on Kubuntu
UPDATE 1
As far as it can be confusing as to whether Nvidia Twinview is changing the underlying resolution of your display. Here’s some tips that may help
Getting Google Calendar to work with KDE's KOrganizer, Kontact and KMail (on Kubuntu 9.10 Karmic Koala)
Woah! That’s a lot of K’s in the title! But it’s all in the name of getting your calender talking to your desktop so it’s for a good kause (sorry!)
A Ruby Module that mixes in Class Methods (static) and Instance Methods
Ho ho, this one can catch you out more than once so it’s high time to write a blog post to cover this off. Turns out it’s a commonly used pattern to the rescue. Thanks to eoin on #ruby.ie for pointing to the solution on RailsTips.org.
ossdev-ireland: A new Irish Open Source Developers Group
ossdev-ireland is a group set up to act as a melting pot for the various different Open Source groups in Ireland.
Qt Programming Tips
This is a little more of an unusual blog post. It’s going to simply house a slowly growing list of Qt tips over time. Here goes
Santa's got Gems baby! Ruby Ireland Christmas Meetup 2009
Ho ho ho! The month’s Ruby Ireland meetup sprag right out of the traps with early adopters showing up at 6pm in the lobby area of the Trinity Capital Hotel, Wed Dec 16th. Easing into the evening with a 4 euro pint and talk of Android phones - seemingly the top item of everyone’s Christmas shopping list - the latest crop of gems in the Ruby world was in hot debate, gemcutter in particular.
Generate Rails Migrations from your PostgreSQL or MySQL database
- Create a new empty Rails project called schemer
Getting Contact Form Emailing working with CForms in Wordpress
“Oh thou horrid little hard-coded piece of Javascript.” That’s our take on the jumping through hoops required to get this little plugin emailing this week. Here’s why…
Installing Ruby On Rails on Windows
There were a couple of great outcomes from the first Free Ruby Lesson we ran in the Havana cafe on Dublin’s Georges St last Monday. The first was getting everyone hacking with the Rails stack and some practical examples in double quick time. The second was managing to get RoR installed on Windows Vista as the lesson rumbled on in the background. Here’s how Rails conquered Vista.
Offline Documentation for Rails (and other Ruby gems)
I used to pretty much always install gems with the –no-ri –no-rdoc options to speed up installation. Recently however, I’ve found myself needing to get access to documentation whilst on the move. So just in case you don’t know how that works, here’s the deal.
Understanding how Ruby stores objects in memory - the Ruby Heap
Ruby has it’s own heap management which actually consists of several ‘Ruby Heaps’ to manage objects created during the execution of a Ruby program; this is separate from the System Heap for your Operating System. Each individual Ruby Heap contains Slots, with each Slot able to one reference one object.
Bleak House - A Tool for measuring Objects in Memory for a Ruby Program
Bleak House is a tool that tells us
- How many Slots there are in total at a point in time in a Ruby program
- How many Slots in total are filled
- How many Slots in total are empty (free)
- How many Filled Slots can be attributed to a particular line of code
Getting Drupal 7 (development snapshot) running on Ubuntu
Notes before starting
-
At time of writing, only experimental snapshots of Drupal were available with the actual Drupal 7 release being some way off. The Drupal 5.x or Drupal 6.x series is recommended if you want to use Drupal in production
-
This guide was written against Ubuntu 8.04
-
This guide assumes
-
You have apache, mysql and php happily installed on your machine
-
That you are serving websites out of /var/www/
-
That that sites under /var/www/ are accessible in your browser via http://localhost/
-
Audacity Tip of the Day - How Not to Lose Data!
One issue when editing audio, is copy and pasting a section of a track from one open Audacity project to another. To save space audacity does not copy the underlying track completely to the new project, rather it links to it. This means that your second project (the one you are pasting into) is not completely self-contained as it depends on external files. This can be a quickfire way for the unsuspecting podcaster to lose a whole bunch of data (yes, me!). This problem is particularly nasty as you don’t realise something has gone wrong until you close and reopen the project - finding that a long stretch of audio containing your beautiful voice is missing. To avoid this, adhere to the following workflow when copy and pasting from one project to another.
Open Letter to the Irish Government on Open Source Driven Innovation
“Recent years show that openness and collaboration is essential to the generation of innovation in the software sector. Technology increasingly means software. In Ireland, we can see that the production of hardware technology in many, but not all, cases is providing ever diminishing returns. Here we outline some key policy recommendations that are crucial to the fulfilling the vision of making the Irish Smart Economy a reality for the software industry through the adoption and encouragement of Open Source technologies.”
Simple straight up caching for pages served by Heroku
So you’ve got an app that’s ticking along nicely; being served up a good steak in a 5 star restaurant - but you’d like to boost it’s performance with some caching. For those who develop their apps on the Heroku platform, a great way to do this is to cache a dynamic page using Varnish. This means that your page is served up super fast without hitting Rails/Sinatra/whatever. And best of all it requires no extra gems or anything, just a well placed one-liner in your controller.
Packaging Ruby Apps for Ubuntu: Dissecting an existing Ruby Ubuntu Package
One of the best ways to learn about how a Ubuntu package is put together is reverse engineer the package into it’s constituent components. We are going to take a look at how to do this for the chef application and it’s related libchef library is packaged as a Debian package.
Bringing Back the Spirit of the Amateur Programmer
In a blog post this month, Richard Dale (the man behind Qt/KDE’s Smoke bindings) eloquently phrased a noble goal,
HOWTO: Add a secondary hard drive for Windows via VirtualBox 2.1.4 OSE
Sometimes one disk just isn’t enough. In fact most times! Here’s how to add an E Drive to your Windows Guest OS
- In VirtualBox, go to the File->Virtual Media Manager
A Breath of Fresh Air - The Well Grounded Rubyist
After a tough day in the office you want to catch up on the news, so you look at the ticker on a TV channel or tune in your car radio. Other days you’ll want to sit down with a meaty broadsheet and really take in the detail of what lies behind the headlines. This is a book about Ruby which which triumphs at walking the line between these two styles. The Well Grounded Rubyist aims to appeal to a developer that has been exposed to some Ruby coding and take their knowledge to the next level. And it succeeds brilliantly.
Optimising Apache serving Ruby on Rails via Passenger
An unusual blog post this in that I have such little value to add other than pointing you at two great links. The first is a wonderfully useful post on tweaking Phusion Passenger when running some Rails apps on a 256MB Slicehost VPS and the other link is a no-nonsense explanation of tweaking Apache config options to cut down on your swap memory usage. Thanks so much to these folks!
VirtualBox and Running a Virtual Ubuntu Image within an Ubuntu Host
“What?” you say, “that’s a lot of Ubuntu going on! Why would you want to do such a thing?” The answer - for testing applications, replicating environments or perhaps running a few servers on one box.
Blackout Ireland - Not Condoning Piracy but Criticizing Coporate Internet Censorship
One of the key points of the Blackout Ireland campaign is that letting individual companies control the Internet is not acceptable. (Link to external article no longer available).
Blackout Ireland Campaign Begins - No to Irish Internet Censorship
The battle for control of the Internet has begun within Ireland. In the red corner, Eircom has sided with the Big Four record companies - Sony-BMG, Universal and Warner and EMI - who are seeking to control the Irish Internet using coporate censorship and civil law techniques. In the blue corner, the Blackout Ireland campaign is looking to highlight the dangers of this censorship and has used social networking tools such as Twitter and Facebook to build support to protest this decision. A similar campaign was succesful in New Zealand, will it work again here?
Phusion Passenger Configuration File Location - passenger.conf
This was not easy for me to find! My beloved Ruby on Rails apps just sitting there untweaked! Google and even the Passenger website didn’t specify where the config file may be found. And eventually it made a startling difference to my apps performance - possibly given that I’m trying to host a few sites at once - so it would be nice if it was easier to learn about how to setup the config file when new to Passenger,
5 Apache Troubleshooting Tips for Friday
1) When you browse all your hosted sites and they’re all down then there’s a good chance Apache is too. Do a ‘sudo /etc/init.d/apache2 restart’ and pay special attention to see if the ‘fail’ message appears. Not sure if you get as good an indication that the server is ‘ok’ if you just do the more graceful ‘sudo /etc/init.d/apache2 restart’
Site Outage - 19th Feb 2009
Hi folks! The (hardworking) Irish Penguin has just been resolving some issues that led to a site outage last night due to a server migration that almost went smoothly! Apologies if it led to any inconvenience. All it takes is one little misplaced command!
Bug of the Day: nil.include error with create time zone conversion attribute
(Note: Old article title was ‘Bug of the Day: nil.include error with create_time_zone_conversion_attribute’)
Hackin on Gruff - A Brief Overview of Gem Development with Ruby
Ah such is the life. Chillin’ in Havana (the bar, unfortunately not the city), hackin’ away on Gruff of all things. This is the my first attempt at development on a gem and it has to be said is surprisingly satisfying. Getting gems to build is a doddle. Here’s a great link that shows how it’s done in moments. Also a handy thing to know is how to suck the code out of your OS’s gems directory and unpack them to under your app’s vendor/gems directory - all courtesy of VendorEverything. You can create the vendor/gems directory manually if it doesn’t already exist.
Did Vista contribute to Dell's Limerick closure?
Chris Mellor’s recent article on Channelregister.co.uk concerning Dell’s Limerick manufacturing exodus covered various reasons for Dell’s decision. Many of these break no new ground - it is simply the economics of the situation Dell finds itself in. But there were some subtleties that he unearthed that haven’t been stated by many commentators. Firstly, had there been sufficient demand for the notebooks that Dell were producing, then it would have taken both the Irish and Polish plants to satisfy that demand. The downturn clearly put a dramatic dent in the purchasing of notebooks but even before that Dell had been overtaken by HP as the world’s biggest supplier; and both Dell and HP were suffering at the hands of Apple. In June 2008, Jordan Golson reported in The Industry Standard that at Apple notebook sales were up 61% since Q1 ‘07. It seems that the Leopards and Tigers that populate Steve Jobs virtual zoo of operating systems were propelling Macbook sales to new heights while Vista was dragging Windows Notebook sales to down to Davy Jones locker.
Uninstalling Gems from ~/.gem in your Home Directory
"It's installed Gem but not as we know it"
– Bones, if he was a Ruby Developer –
Better to be Oriented than an Object
Bit of a mixed bag of thoughts going into this post. Originally it was motivated by a couple of interesting points that I came across a bunch of ideas on programming by Kristian Dupont but then it turned into one of those link hopping sessions where you end up click through a wealth of interesting material.
Installing Drupal on Ubuntu (Gutsy) in a few easy steps
Drupal is a great solution if you’re looking for a CMS system. In order to sneakily install LAMP with the minimum of fuss, I usually just install mod php and mod mysql (the apache related modules for php and mysql respectively) and that triggers pretty much everything else to be pulled automatically! So, from the command line…
3 Cheers for OSS Barcamp Dublin!
Another exciting event has just been announced for Dublin next year with an Open Source Software Barcamp planned for Dublin March 28th next year. And you could be one of the speakers! The idea behind a barcamp is to have a casual relaxed atmosphere where the attendees can help drive the schedule - like a conference done in the spirit of Digg. For more info check out Laura Czajkowski’s blog post and if you want to keep up to date with further details you can track things on ossbarcamp on twitter.
File downloads over the command line via CURL
This could be a pretty obvious one to a lot of people but it’s just so handy. This will download a file from example.com to your local directory
Troubleshooting fcgi and the dreaded undefined method `require_gem' error
It happens to the best of us. We’ve coded our app go to deploy it and encounter some dispatch.fcgi issue. Today was the turn of
Recording Sound in Kubuntu 8.10 (running KDE 4.1)
Exciting times ahoy! This weeks mystery was to get sound recording with the minimum of fuss. We’re not sure what soundcard is running inside the Dell Inspiron 1520 which was our test laptop but it seems to report itself as an HDA Intel SigmaTel STAC9205 in the system settings. Anyway, the first thing to do was to apt install audacity which can then be used for testing the recording functionality. Not being sure if the laptops builtin in mic had been detected correctly, we jacked in an external microphone into the mic socket.
Getting Ruby Plasmoids up and running in KDE 4.1 (on Kubuntu)
NOTE: THIS ARTICLE IS NOT YET COMPLETE. IF YOU FOLLOW IT THEN YOU WILL GO A LONG WAY BUT THE PLASMOID IS NOT YET DISPLAYING. SEE THE ‘Run your applet’ SECTION NEAR THE END OF THIS ARTICLE BEFORE PROCEEDING.
A Little Help on Importing Gmail Contacts using Ruby on Rails
We came across a fabulous article on getting your RoR app to pull contacts from your Gmail account at Atlantic Domain Solutions called “Import Gmail Contacts using Ruby on Rails” (link http://rorblog.techcfl.com/2008/04/18/import-gmail-contacts-using-ruby-on-rails is no longer available). Kudos to Atlantic Domain Solutions! This is a really great article. The only slight issue is that it omitted a couple of details which may confuse the newbie - in particular, where does all the code in points 1, 2 and 3 go and how do the code snippets relate to each other.
Just Diff the Internet
Woke up this morning and found myself dead… Well, more to the point, my Internet connection dead. So being a Nymphobyte - someone feverously attracted to a reliable high bandwidth connection - there was little else to do than ponder the state of broadband in Ireland. Options are limited in the land currently home to the so called ‘Pariahs’ of Europe. Just make our broadband better and we’ll vote Yes! to Lisbon II and even Lisbon III ‘The Search for Spock’. Until then, you’re better off sending your packets of data back and forth via carrier pigeon rather than trying to connect via the empty promises of the current providers.
Quick Example of Serialisation via to_json in Ruby On Rails
Ruby On Rails provides a few neat ways to serialise/deserialise objects to JSON. Out of the box you get the following approaches
Mercurial, Python and a Packet of Crisps
Came across this exciting bit of news on the ol wireless just recently that rails is moving from SVN to Git. Exciting times indeed as more and more developers are realising the merits of distributed source control to manage an ever expanding code base. This Irish Penguin’s been in the fortunate position of working a lot with Mercurial, an alternative to Git, for the last few weeks and these types of tools are just a great way to work.
Getting the Huawei E870 to work on Kubuntu (and Mobile Internet from O2)
It’s a shiny express card and it promises Internet free from cables, plugs and sockets but will it work on your pretty Kubuntu laptop? Let’s hope so. This guide worked for me and hopefully it’ll work for you too!
Simple 'Through Associations' in Ruby on Rails
This little article shows one way to model many-to-many relationships using a join table.
EU Commission unDRMines European Multimedia Sector
The ever confusing term ‘Intellectual Property’ gets another run out today as the EU attempts to shoot itself in the foot, yet again on crucial IT issues. This time the European Union wants to embark on a plan to encumber its multimedia sector in a cocoon of red tape through the introduction of DRM. And goes to the absurd length of stating that it is doing so in the interests of consumers. What the …???
Uninitialized Constant GemRunner Error When Using Ruby Gem
Here’s the problem…
New KDE Theme - Castle at Night
After initially being a little disappointed with Kubuntu’s default theme, The Irish Penguin new he’d have to roll his own.
Shock Horror! 18000 Pints of the Finest Irish Guiness Stolen (+ Some Bad Beer)
It’s coming up to Christmas and it’s the time to be merry - especially if you are a certain thief, who has made off with 450 kegs of festive beer, including 180 kegs of the black stuff, from Ireland’s premier brewery!
K-k-kubuntu 7.10 on a Dell Inspiron 1520
Ahhh… Another day, another distro. The harddrive partitions around here are a bit like the Wizard of Oz; every day a new one joins the merry troupe. Todays turn was the KDE spin on Ubuntu Gutsy. So armed with the standard Kubuntu CD, which serves as a live distro and an install CD in one, we set on the path to enlightment (or should that be KDE - always good to end the week on a bad pun).
Microsoft to Release Windows XP as Upgrade to Vista in 2010
An anonymous source at Microsoft’s Redmond headquarters revealed today how the software giant plans to release Windows XP as the successor to the ill-fated Vista operating system in the next decade.
The Quick European Fox Jumps Over the Lazy Dog
Breaking with the blogging tradition of incredibly obvious (and search engine indexable) article titles, I think it’s fitting to have a subtle, more European perhaps, heading for this post. To cut to the chase, it deals with the great transatlantic dog fight between possibly the world’s biggest monopoly and the Eurocrats - that is Microsoft vs European Competition Commission.
Kissed a QT and now I've caught Mono
The Irish Penguin branches out to a new platform this week as Mono, the Linux-y version .NET of is tackled. What wonders await…
Judge to SCO - You Don't Own Unix!
And so the biggest legal saga to face Linux over the last few years was that of SCO trying to sue people for copyright infringement, saying that it owned the rights to UNIX. This has dragged Novell, IBM and more into the courts to fight for the right to party. Well today that party was in full swing as the judge in the case, Dale Kimball, has ruled in Novell’s favour saying that it is Novell, and not SCO, who own the UNIX and Unixware rights.
YouTube Vs Hollywood: Transformers Movie Shootout!
And the results are in, YouTube 2 - 0 Hollywood! Mr Bay you have been beaten…
Momentumless Linux and the Death of Open Source - A Developer's Response
A couple of blog and news posts on the Internet this week seemed to make the headlines with death knells for Linux and Open Source for a multitude of reasons, both chronic (less anti-Microsoft sentiment about) and recent (GPL 3). But on reading, I couldn’t help but feel that both posts sounded wrong, utterly utterly wrong in fact. No disrespect intended to the authors of course.
Transformers - The Worst Movie Ever!
Robots in disguise? No. Michael Bay - film maker in disguise. He has taken a cult classic and turned it into a steaming pile of utter junk of the “Yeeh hawww! God bless America variety.” Certainly, he should never be allowed near a movie studio ever again. Here’s why…..
QObject, QMake and Sadness - 'Undefined reference to vtable'
Mmmm… Bit of a longwinded title there! Basically, I could not shake off the following error recently, when writing a class Browser which inherited from QObject. Apparently, the answer is that sometimes you simply have to delete your Makefiles and regenerate them using QMake (KDevelop automatically creates Makefiles from me if none are found), in order to get over this error.
QDomDocument is not a QObject
Aha! Here’s one that caught me out for a while. I was writing a class that inherited from QDomDocument and was more than a bit puzzled when I got the error
The Linux Kernel - An Overview from IBM
Good things come in small packages packages. But great things are scabable!
.NET - Develop in Visual Studio, Deploy on Linux
Recently, a new product has hit the market for those folks who would like to develop in .NET, and in particular Visual Studio, but prefer to run their application on Linux.
The PHP Header() Trap
This is just a quick tip for young players - new to the PHP game. The rather sexy header() function can be used to redirect the user from one page to another. But an important point about this function is that you cannot send ANY html or empty lines or spaces (or anything) to the client browser prior to calling the header() function.
Unexpected Javascript Postbacks?
This has been driving me bananas for hours. If you’re finding that your javascript function is causing your page to post back to itself unexpectedly, then ensure that it returns false at the end of the function. Also void(0) can be your friend.
Surviving Migration from ASMX to WCF Webservices
Just when you thought you’d gotten the hang of the good ol’ fashioned .NET webservices (the ASMX variety) those Redmond boys went and changed everything with the release of WCF! The benefits of WCF webservices are that they’re considerably more flexible but the transition can be a lot steeper than you’d expect. Here’s a nice little guide by Dominick Baier on some of the day-to-day areas of the API that can catch you out unawares…
Viva Le Gaelic Penguin!
Phew! After much fiddling and tweaking I finally managed to get my header image together for this site. All the while I had the song “The Irish Rover” bouncing round in my head - which probably didn’t help matters!
GPL V3 - Its True Purpose
Recently, I read some interesting commentary on the Microsoft-Novell pact in an Linux Insider article entitled GPLv3 Could Be Risky Business which concluded with the following statement.
XML Document Creation in Javascript - Cross Platform
This is an absolutely super guide which basically gives you some neat code in order to work with XML documents across multiple platforms in the sadistic language of the web - Javascript.
Microsoft Not So Sure on Taking on World…
Under pressure arising from comments made by Microsoft’s Horacio Gutierrez and Brad Smith in an Fortune magazine article earlier this week saying that Open Source software contains 235 Micrsoft patents, the company has released a statement that it does not intend to resort to litigation in an effort to halt the growth of Open Source software. So why would they highlight an issue and then when asked to state specifically which are the patents in question they respond, “We’re not going to have a discussion publicly with that level of detail.”
Microsoft Vs The World
Microsoft is allegedly preparing it’s army of lawyers (more than 800 strong according to one commentator) to issue an almighty patent onslaught on Open Source software. It lists 235 patents which it says are being violated by Open Source software projects. Microsoft CEO Steve Balmer says that it is in the “name of honour” that he must fight the Open Source community. The battle lines are being drawn in what could prove to be the ultimate shakeup of the U.S. software patent system. As Microsoft comes under increased pressure from Open Source software it is making lawyers, not software developers, the front-line soldiers in the fight to maintain the apparent monopoly. It looks like we’re entering interesting times.
Installing the Netgear WG511v2 (China) Wireless Card on Linux
These instructions are intended to be used to install a Netgear WG511 v2 (China) on a Linux machine that dual boots with Windows. I take no responsibility for anything bad that might happen if you follow this guide (I try to avoid responsibility at every turn).
Javascript Tip Of The Day: “When Is A Width Not A Width?”
This is a bit of a gotcha for young players in the Javascript game. You have a web page with a DIV which you fill dynamically with, let’s say, 5 IMG elements. How do you get the width of the DIV? You can try
Linux Community Must Help Dell Sell Linux
The announcement that many people wanted to hear is imminent. Early rumours abound on various sites but possibly by the time you are reading this, Dell will have already made the official announcement that they are to ship Dell PC’s with the Linux operating system - Ubuntu. This is the major breakthrough that Linux as a desktop OS has been waiting for. Now all Linux communities -be it Open Source, Free Software, Linux for home or business that is your cup of tea - must help Dell sell this dream.
The Frogface Project Website Launched
We’ve tried to start this before and never quite finished it. You (edit: used to be able, this link is no longer available!) can check out the site at http://www.frogface.org This time things went smoothly, however I had to struggle through my hangover on Saturday while I polished off the final details. A big kudos to Veedles who did a smashing job creating the images and logo for the site - and now that she is the queen of web design is gonna spruce the site up even more over the coming weeks!
Elephant Dream - Art House Animation Extraordinaire
Here’s a superb 12 minute animation which features crisp industrial post-modern backdrops puncuated by expressively crafted chararcters; all done in Blender - an open source 3D modelling on the verge of the big time. It’s a hefty download so you’ll want a broadband connection, but it’s worth the wait. Just sit back and simply enjoy these wonderful graphics by visiting the download section at http://orange.blender.org
Object Orientation and Javascript
Javascript is muck; don’t let anyone tell you otherwise. But it’s also unavoidable. My latest effort to write better JS code is to use inheritance when creating classes and objects. So before I forget, I’m posting these links - as they’re pretty handy. Sounds like a lot of hassle for a bit of inheritance though!
Linux Sound Problem: Nvidia nForce 430 and Asus M2NPV-VM
This is just a quick post covering a sound problem I encountered when running OpenSuse 10.2 with Nvidia nForce 430 and Asus M2NPV-VM. The solution that worked for me is to open the /etc/modprobe.conf.local file and make sure it includes the options line below…
Installing the SMART Package Manager on OpenSuse 10.2 Linux
Easy installing of software is the make-or-break aspect of any operating system. This is no different with Linux. Far and away, in my humble opinion, the best tool for this (on an rpm based system) is SMART. This quick post just overviews the steps I took to get it installed on my machine, as some of the instructions deviated from the SMART on Suse wiki.
Use the Force to Fix Evil Vista’s Bootloader
Hmmm… Those lovely folks at Microsoft are at it again. This time trying to break my lovely Linux system by killing my bootloader - the clever bit of software which lets you choose whether to boot into Linux or Windows. Cheers guys! You’re real sweet!
Help Improve Computer User Interfaces…
Here’s a quick survey which you can fill in to help the OpenUsability project, which studies how you use a computer. The less you know the better as this study is especially interested in getting a broad cross section of the public to respond. It only takes a few minutes so why not give it a quick go!
Bumblebee in Mobile Phone Horror
To date mobile phones have been blamed for brain tumours, low sperm counts and making kids even more annoying on bus trips, but here is the latest to add to the list - serial bee killer…
Blair Government Throws UK Programmer to the Dogs of US Justice
Gary McKinnon is a computer programmer who likes UFOs and rainy Sundays. Curiousity got the better of him so he went searching online for UFO conspiracy theorys and photos believing that the evidence to date suggests that US was hiding something Roswell style et al. Not exactly a profile of a notorious threat to national US security yet. His curiosity brought him to various US military networks which he then found were remarkably easy to access given that apparently the username and password were the same in several cases and security was incredibly lax. He managed to find some folders containing pictures of nice shiny UFO-like things and got excited as his dream of seeing became a reality. Heart pumping he clicking on one of the files. As them image began to slowly come up on his screen his dream was cut short - one of the administrators had noticed him in the system and promptly cut him out…
EMI Heralds a Revolution in Online Music
At last the fight against anti-consumer record labels crippling music purchased online is looking to be at an end. EMI have decided to make their songs sold on iTunes free of DRM (Digital Rights Management) - a technology which prevented users playing back their music on any device of their choice. This is probably one of the most important changes that could have happened in the delivery of online music and is set to transform the industry and reduce piracy. As EMI boss Eric Nicoli said,
AJAX - More than just a Toilet Cleaner - Not!
Just to warn non-geeks, this is actually an article about programmin stuff so don’t get too excited about replacing Toilet Duck just yet! This is just a rant…
Slaps on the Backs All Round
A big congratulations goes to Sun Microsystems, who have finally open sourced Java - under the GPL, if you don’t mind. This is the move that will finally stop me criticising them so I’ll shut up now. In addition, they’ve very kindly given me permission to use their Joint Copyright Agreement for my Frogface project (just thought I’d plug that one again!) which is ticking along nicely on www.sourceforge.net/projects/frogface
Money Can’t Buy You Love, And Gift Cards Can’t Buy You An Apple
You would think that if you or your friends lined Apple Computer’s coffers buy purchasing a load of Apple gift cards off them that the least they could do is let you easily trade in those gift cards for a purchase. Well, maybe not. Here’s another story that shows how customer friendly the big Apple is.
Frogface - Open Source Dive Log Project Launched
After spending a good bit of time scuba diving the shores of Asia and Australia, it was time to combine some geek powers with underwater prowess - and Frogface was born! - a free software scuba dive log.