Ruby Tuesday 01 // Hello World!

Ruby Tuesday is an ongoing series of blog posts in which I share my experiences of learning a completely new and unfamiliar language, Ruby on Rails, for my final University Honours Project. View all Ruby Tuesday posts here.

Jumping into a completely new language can be extremely be daunting; it’s always a frightening feeling to jump into an unknown territory, a place that’s out of someone’s comfort zone. This is exactly what I’m going through and in this series of blog posts (posted either weekly or biweekly on Tuesdays) you can follow my experiences of learning a new language, Ruby, and how I cope with it. 

Every Computing Science Student at the University of Aberdeen goes through the CS4526 course, or more commonly known as the Honours Project*. In this course (one of the final two courses of our degree, the other being Professional Topics in Computing) we undertake a project under the supervision of a teaching staff in the department. In my case: Bruce Scharlau. The Honours Project I’m working on is an Audience Mapping Tool, cloud based of course! Working closely with a client, The Polka Dot Factory based in Edinburgh, the requirements were set and brainstorming began. 

I soon met my first major hurdle; deciding what language I should use. Ruby, Java, Django, PHP? There’s an endless choice of languages and frameworks to build web apps these days, but I decided to narrow my choices down to Java and Ruby for the main Business Logic. Java seemed extremely enticing; 3+ years of learning the language and I feel quite comfortable tackling Java problems. Using Spring Roo and the Spring Framework allows for lightweight development with fast results while being able to use 100% Java knowledge. On the Ruby side we have Ruby on Rails and the hundreds of gems that are available. I spent last weekend playing around with both languages, weighing the pro’s and con’s of each. After todays meeting with Bruce, I’ve decided on my final technologies.

Technology Choices:

  • MySQL
  • SimpleGeo
  • Twitter API
  • Ruby on Rails
  • Google Maps
  • Heroku & Git

After having installed Ruby, a bunch of gems and looked through a lot of documentation, it’s time for my first Ruby app! As per usual, let’s write a Hello World app. I’m currently using Smultron as my editor for Ruby files. 

[Image no longer available]

That’s it! That’s a simple Hello World app written in Ruby. To run it, I’ll need to type the following into Terminal.

[Image no longer available]

That’s my first attempt at coding Ruby, and after having read through many of the tutorials available online I can safely say that I will definitely enjoy learning this new language. My main reason for choosing Ruby over Java was because of the vast array of great tutorials, gems, frameworks, quick deployment and the generally great community on the web. 

Bellow are some links to the tutorials and books I’m currently working through and my aim for next week is to set up the basic components of my application; i.e. understand how I’ll link Twitter data into SimpleGeo and join that together with Google Maps in order to display it in a web app written in Ruby on Rails. Ambitious, but I’m excited – do wish me luck!

Further Links:

*N.B. Some students may take a Joint Honours Computing Project instead, coded CS4525. The main difference being that they are undergoing a Joint Degree Program, or sometimes known as a Double Degree!

Ignoring Social Media? A quick guide to starting your companies online presence.

Over the past couple years, online presence, interactive new media, social networking and location aware advertising has changed the way many businesses communicate with their customers.  Buzz words and brand names such as microblogging, venue mayorships, virtual badges and pins, twitter, Facebook and foursquare can however be intimidating to average Jo running a hair salon business. Here are 5 easy and simple steps to establish your online presence and insuring you make the best of it.

Choosing your platform and claiming your name

With the choice of hundreds of social networks these days, choosing the right platform for your business is essential. It’s nearly impossible to participate in the hundreds of platforms that are available, so think about which of the available tools you think your business needs to succeed with its online presence. To start your online presence, get yourself a company blog! It’s the quickest and easiest tool you can use and although it may sound dull and boring at first, you’ll quickly realise it can be an essential part of your strategy. Don’t bore your readers with press releases and blog posts about your staff, inform your readers with rich content and media that may be of interest to them! I’ll talk more about content later on. WordPress and Squarespace are some of the popular choices as they are easy to set up and very customisable. Remember to always have simple yet powerful names on all services. http://www.johairdressingaberdeenscotland.com would be too difficult for someone to remember! 

Remember to try as many channels as possible. Let customers become fans via aFacebook fan page. Allow them to follow short and quick updates via a (verified)Twitter profile. Share pictures with them on instagram. Do you have a public figure your customers look up to within the company? Give them a dailybooth page.

Unbeknown to yourself, you may already have online presence. Customers may already be checking into your shop through foursquare and Gowalla, so claiming your business is a great start. On foursquare, you have the ability to claim your venue and once you do you get insight information and statistics on your clientele, edit details and offer specials. 

Clear goals lead to success

Simply signing up for social media services and blaring out information won’t work. You need to focus on the why. Think about your goals, the reasons why you believe social media can be effective for your company. You may want to attract new customers, build relationships and bonds with existing ones or simply find out data about your clientele. Understanding your goals will allow you to focus in depth on exactly the things that drive your company. 

Content is key

No matter what platform you use, weather it may be videos, blog posts or promotional offers on foursquare, content of good quality will always stand out and drive traffic. If you’re a hair salon, why not have a blog with video tutorials and styling tips, a monthly Q&A, weekly digests of the news summed up in one place. Have compelling foursquare offers such as your 5th checkin awards the customer with a 30% discount. Let your customers be fans on a Facebook fan page and integrate the Facebook like button on your website. If your company has a public spokesperson or someone your customers relate to, give them a personal Dailybooth, twitter and fan pages. People love to know insight information on someone, so allowing them to follow you will grow your customer relationship greatly. Take for example Kevin Rose, founder of Digg and angel investor to Twitter, Foursquare, Gowalla, Dailybooth and many more services, Kevin Rose is now a well known internet personality. He writes blog posts on company websites as well as personal ones on his own blog. His personal Twitter page is filled with insider knowledge, personal life ramblings and community conversation and through this he’s achieved to gain over 1 million Twitter followers. 

Remember to always keep content fresh. Try and write something different in your blog every now and again as well as keeping some regular formats going. If you’re an oil company, don’t bore the average user with a press release. Why not give them articles on the chemistry of oils, the history of facts and youtube videos of experiments. Make sure your content is different from your competitors. It doesn’t have to be of a different style necessarily, but at least different in quality; make sure yours is the best out there.

Manage your networks

With so many platforms, tools and networks available for you to use, managing them all can become quite a hassle. So called SMM tools, or social media management tools, ease the burden and stress by allowing you add various services together into one place. This allows for quick overviews of statistics, updates, comments, etc. 

TweetDeck is a good start as it’s free and relatively easy to use. It allows you to connect various social media profile such as Twitter, LinkedIn, Foursquare, Google Buzz, Facebook and MySpace. With an easy to use dashboard, TweetDeck is perfect for you to manage your social media profiles.

Sprout Social takes things up a level. With features such as brand monitoring, a social media dashboard and data mining on customers, Sprout Social is the perfect tool to turn your social connections into loyal customers. Starting at just $9/month, it’s relatively cheap too. 

Engage121 is a software application that allows users to monitor and respond to social media conversations across an ever-expanding variety of social networks, blogs, microblogs, as well as traditional media. Engage121 works on the principle of using four modules to address specific aspects of the social media communications process; explore, listen, speak and evaluate.

CoTweet is an excellent tool for small businesses or divisions of larger businesses that spread social media duties among team members and have a customer-service approach to engagement. CoTweet’s unique feature is its OnDuty status, which allows you to note who is responsible for which social stream. Not only does this organise your SMM experience, it also you to receive emails when something needs to be acted on, freeing him or her up to go to meetings or take calls while remaining aware of social media activity.

These are just some of the many tools and services available that will hopefully make life a bit easier. A simple google search for SMM tools will show you a huge variety of applications, some that may be more beneficial than others for your business so finding the correct tool will make managing your social streams much simpler.

Think outside the box

Stay on top of the game at all times. Think of ways to separate yourself from your competition and grab the competitive advantage that’ll differentiate you from all others. Coming up with clever marketing ideas and interesting content can spread like wildfire in the days of the viral web, so thinking outside the box is key to success. Write blog posts no one else would’ve though of, make tutorial videos that have never been seen and come up with promotions that people just can’t refuse. 

Why MySpace & Last.fm shouldn’t be scared of iTunes Ping, unless Apple fix it

A much debated topic in recent days has uprisen following Jobs’ announcement of iTunes 10 and its social music network dubbed Ping. When Steve took the stage September 1st 2010, I tweeted my thoughts on iTunes Ping, praising Apple for finally doing what Last.fm had been missing all these years: adding status updates a la Twitter, letting users and artists share content, hype and thoughts. I spoke too soon…

A quick download and install later, I was introduced to iTunes 10. I’ve had a week to digest the user interface of iTunes’ tenth instalment and although I was heavily disappointed by the updated grey scaled theme, I understand fully why Apple have taken such an approach, a choice they’ve made several times before (menu bars and the apple logo are all greyed out in the latest OS X releases). Colours grab one’s attention easily, so by greying out unimportant icons the user can be thought to more easily navigate the content they care about. UI dislikes aside, my biggest letdown is Apple’s take on a social music network.

So why create a social music network?  Remember, Apple already tackled the recommendations aspect in iTunes 8, allowing users to find similar songs both in their library and in the iTunes store through their Genious feature. Well, that’s only half the business. Most humans want to interact with other humans, regardless of a digital firewall. That’s where iTunes Ping should shine right? At least that’s the idea of Ping, showing you what your friends are “talking about, listening to, and downloading”. Unfortunately, it’s simply done it wrong. 

Unlike Last.fm, Ping has no way of recommending relevant people to you. Their recommended Artists and People seem to be a completely random mix of mainstream populars and staff picks. 

Unlike MySpace, Ping has very limited networking features. No importing of contacts, no direct messaging, no external API. The list goes on…

Unlike Twitter, Ping only allows artists to post any type of content, whether it be photos, pictures or text. The end user can only share albums and likes onto their stream, but even that feature is overestimated as it can only exclusively be used within the iTunes store, not with your purchased or imported music in your library.

Ping, why can’t I see what my friends are listening to? Why can’t I share a song specifically to just one user? Why can’t I share an album that’s not available in the iTunes store? Why can’t I import facebook/twitter contacts? The list of disappointments could go on endless, so I’ll quickly finish of with a few recommendations I believe could vastly improve the user experience of iTunes Ping.

  • Let me see what my friends are listening to. I thought this was the entire point of a social music network!
  • Allow status updates and other social networking features. Expand your commenting system and allow for simply features that most other social network have.
  • Recommend me people who have similar music taste, not random people I don’t care about.
  • Open up a Like and Share API. Artists can already sell iTunes music on their personal websites, so why not let users Like and Share albums straight from a bands website, rather than just through Ping?
  • Don’t focus on commerce. I know you’re running a business, but the it’s oh so obvious that your focus is on milking consumers rather than giving them a social music discovery tool

What do you think? Leave your comments below! I’m curious as to where Apple are taking this. I see a potentially huge social network, but only if they execute well.