you may (or most likely may not) have noticed i've had a few problems with twitpic and twitxr of late. not that either of the services aren't admirable and thoroughly decent but for my purposes neither quite hit the mark. twitpic's xml feed changed since they switched to new servers (basically destroying my uberFeed call no matter how much fiddling i did to fix) and twitxr seems to have an issue with the shortening of urls when posted to your linked twitter account (if you post in the region of 120chars + url) - this was all much to the annoyance of some of my followers who were quick to pick me up on the fact that my boring snapshots had failed - nice one Dean / Tim / Rob!
if you want a job doing, do it yourself - the old adage runs true, at least this way i'd have full control over the output and not be reliant on a third party who might change their setup without warning and subsequently break my code.
the snapping of a scene and sending it to twitter with my mobile phone has so far quenched my prattling needs so that method needed to be followed with the new system. first off i needed an account i could access with coldfusion and being an avid google fanboy i set one up. after a bit of poking around it would seem CF7 doesn't directly support google's pop3 implementation over SSL but after some in depth research (we all know what that means) i found a nice stub of code which when placed before the cfpop tag utilises the underlying java to enable it:
<!--- set some java properties to enable ssl use with gmail --->
<cfset javaSystem = createObject("java", "java.lang.System") />
<cfset jProps = javaSystem.getProperties() />
<cfset jProps.setProperty("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory") />
<cfset jProps.setproperty("mail.pop3.port",995) />
<cfset jProps.setProperty("mail.pop3.socketFactory.port", 995) />
the cfpop tag did its thing and looping over the data produced some fine header information about what was sitting in the box. it's at this point we really should consider security, you don't afterall want spammers emailing you obscene material only to find your autoEmail process has published it under your name for all the world to see. the best way to deal with it i concluded would be to only process emails that came from a reputable source ie me :) so a quick check before processing that the current email record's 'from' was from me did the trick.
using a second cfpop tag to get at the current message via it's uniqueId (uid) provided some more data to work with including checking for an extension of 'jpg' on the extracted attachment (not foolproof of course but enough for a single user). at this point we can be fairly confident the message isn't bogus and the real processing can begin:
<cfset thisTimeStamp = #dateFormat(Now(),'DDMMYY')# & #timeFormat(Now(),'HHMMSS')#>
<cfset thisFile = "posted_" & thisTimeStamp & ".jpg">
<cffile action="rename" source="#expandPath('./')#images\#email.attachments#" destination="#thisFile#">
<cfset thisPath = expandPath('./') & "images\" & thisFile>
<cfset thisUrl = siteUrl & "?post=" & thisTimeStamp>
<cfset thisSubject = email.subject>
<cfset thisSubjectLen = len(thisSubject)>
this little lot just renames the attachment to something unique (dateTime) and gives us the url which we'll ultimately be sending visitors to (that page is just one that's waiting for a post= url parameter to display the pic). please note #siteUrl# is a global variable and #email.xx# variables were provided by the cfpop query. now, why do you think we've set #thisSubjectLen#? because, frankly it matters if we want to update twitter with our new status since it has a 140chars limit - you'll see it later on.
now we move into the final exciting stages and API (application programming interface) goodness.
this was very simple but pleasing chunk of code for setting up the final status ready for sending to twitter:
<cfhttp method="Get" url="http://is.gd/api.php?longurl=#thisUrl#" result="shortUrl">
<cfset shortUrl = trim(shortUrl.fileContent)>
<cfset shortUrlLen = len(shortUrl)>
<cfif shortUrlLen thisSubjectLen GT 137>
<cfset status = left(thisSubject,thisSubjectLen-shortUrlLen-4) & " - " & shortUrl>
<cfelse>
<cfset status = thisSubject & " - " & shortUrl>
</cfif>
firstly a 'cfhttp get' to http://is.gd (url shortening service's API - i use the term loosely in this instance) and pass it our created url, then grab the newly shortened url from the fileContent returned and tack it onto the end of the email's subject. you may notice a basic calculation in there for making sure the subject and the hypen sandwiched by spaces + the url doesn't go over the 140 limit - something twitxr would be wise implement!
finally the status package is sent to twitter via it's own API and BAM! the job is complete!
<cfhttp url="http://twitter.com/statuses/update.xml" method="post" username="#twitterUser#" password="#twitterPass#"
<cfhttpparam name="status" value="#status#" type="formfield" />
</cfhttp>
i'd recommend setting up a test twitter account before you go live with this bit since you're likely to irritate any followers with test status updates.
don't forget to add your cf template to the cfschedule for processing every so often, if you don't the script won't ever check that bulging pop3 box of yours.
summing up
in short we've done all the following:
- checked a pop3 account for messages
- looped over each message check it's from a trusted source
- extracted a jpg attachment and created a url to it
- shortened the url
- appended the shortened url to the email's subject
- sent the status update to twitter
Thursday, 2 April 2009
Tuesday, 24 March 2009
cfhttp and cookies
following on from my work on Luke's uberFeed i had looked a bit deeper into the cfhttp tag and found some pretty cool stuff. i knew this was all theoretically possible but had never really had the reason or impetus to use it - and a man can't spend his entire day coding when there is tea to drink and biscuits to eat!
i'd written a script to enable some of our less technical (perhaps is should say 'more artistic') staff members to update a corporate news site with a bunch of repeated logos saving them having to faff around with HTML. it's been working well and everyone is happy with the setup - everyone that is except me (same old same old). once the artists have submitted their dazzling creations the auto-generated HTML copy gets sent my way and i manually cut n paste it into another form on the live on the corporate site. now, as any self respecting code hacker would know the word there that irk's me is 'manually' so in my quest for efficiency i needed to zap this job, i mean, you know it took me about thirty seconds - that's thirty seconds tea and biscuit time that i don't want to waste.
the magical CFHTTP will let you do http 'GET' requests which as we know can be useful but it can also do 'POST' requests meaning that you can (i like this bit...) pretend to be a browser. aside from playing with your scrollbar pretending to be a browser isn't all that exciting until you look at this:
<cfhttp
method="post"
url="http://www.somewebsite.com/someForm"
result="postIt">
<cfhttpparam name="whatDoYouLike" type="formField" value="i like tea and biscuits"></cfhttp>
that tiny amount of code will behave just like your browser would, it will head to the website, slap an "i like tea and biscuits" into a field called 'whatDoYouLike' and the remote website won't bat an eyelid. that's been somewhat simplified for the purposes of my lazy blogging technique but from that you should be able to customise it for your own needs.
i've neglected thus far to mention security, if you're dealing with a form you could well have a layer of security (read login form) in front of it which you're faux browser is going to hit long before it finds the biscuit box. in my case the problem was the server was expecting a cookie (haha, as i type i kid you not - i hadn't previously planned this whole cookie/biscuit thing!) now with that CFHTTPPARAM you can also send other types of vars including the 'cookie' type.
great! i'll do that then - but what's the name of this cookie and what's it's value? hmmm...
<cfset thisCookie = ListGetAt(getCookie.responseHeader["Set-Cookie"],1,";")>
<cfset thisCookie = #replace(thisCookie,'someKeyName','')#>
prior to this bit of code i had setup a simple CFHTTP named 'getCookie' just to get a reponse back from the remote server, the resulting response includes various useful variables one of which is structured header data (responseHeader) which contained a name/value pair called 'Set-Cookie' - this was the crumb i was looking for. all you need to do is get at it's value with the listGetAt() function and then strip out the useful key (with the replace() function) all ready for the return trip to the server.
<cfhttpparam name="someKeyName" type="cookie" value="#thisCookie#">
<cfhttpparam name="username" type="FormField" value="CookieMonster">
<cfhttpparam name="password" type="FormField" value="b1scu1t54me">
so, the overall idea being you firstly 'GET' your cookie value coming from the server, then 'POST' it back in response (just like enabling cookies in your browser) and finally in any subsequent CFHTTP's use that cookie variable to prove you are indeed the cookie monster. i've not had much time to finalise the code but it's getting me through security and dumping the HTML in the following form - just need to let it utilise global variables and the HTML generator should be sorted.
kettle on, where's my stash?
i'd written a script to enable some of our less technical (perhaps is should say 'more artistic') staff members to update a corporate news site with a bunch of repeated logos saving them having to faff around with HTML. it's been working well and everyone is happy with the setup - everyone that is except me (same old same old). once the artists have submitted their dazzling creations the auto-generated HTML copy gets sent my way and i manually cut n paste it into another form on the live on the corporate site. now, as any self respecting code hacker would know the word there that irk's me is 'manually' so in my quest for efficiency i needed to zap this job, i mean, you know it took me about thirty seconds - that's thirty seconds tea and biscuit time that i don't want to waste.
the magical CFHTTP will let you do http 'GET' requests which as we know can be useful but it can also do 'POST' requests meaning that you can (i like this bit...) pretend to be a browser. aside from playing with your scrollbar pretending to be a browser isn't all that exciting until you look at this:
<cfhttp
method="post"
url="http://www.somewebsite.com/someForm"
result="postIt">
<cfhttpparam name="whatDoYouLike" type="formField" value="i like tea and biscuits"></cfhttp>
that tiny amount of code will behave just like your browser would, it will head to the website, slap an "i like tea and biscuits" into a field called 'whatDoYouLike' and the remote website won't bat an eyelid. that's been somewhat simplified for the purposes of my lazy blogging technique but from that you should be able to customise it for your own needs.
i've neglected thus far to mention security, if you're dealing with a form you could well have a layer of security (read login form) in front of it which you're faux browser is going to hit long before it finds the biscuit box. in my case the problem was the server was expecting a cookie (haha, as i type i kid you not - i hadn't previously planned this whole cookie/biscuit thing!) now with that CFHTTPPARAM you can also send other types of vars including the 'cookie' type.
great! i'll do that then - but what's the name of this cookie and what's it's value? hmmm...
<cfset thisCookie = ListGetAt(getCookie.responseHeader["Set-Cookie"],1,";")>
<cfset thisCookie = #replace(thisCookie,'someKeyName','')#>
prior to this bit of code i had setup a simple CFHTTP named 'getCookie' just to get a reponse back from the remote server, the resulting response includes various useful variables one of which is structured header data (responseHeader) which contained a name/value pair called 'Set-Cookie' - this was the crumb i was looking for. all you need to do is get at it's value with the listGetAt() function and then strip out the useful key (with the replace() function) all ready for the return trip to the server.
<cfhttpparam name="someKeyName" type="cookie" value="#thisCookie#">
<cfhttpparam name="username" type="FormField" value="CookieMonster">
<cfhttpparam name="password" type="FormField" value="b1scu1t54me">
so, the overall idea being you firstly 'GET' your cookie value coming from the server, then 'POST' it back in response (just like enabling cookies in your browser) and finally in any subsequent CFHTTP's use that cookie variable to prove you are indeed the cookie monster. i've not had much time to finalise the code but it's getting me through security and dumping the HTML in the following form - just need to let it utilise global variables and the HTML generator should be sorted.
kettle on, where's my stash?
Tuesday, 17 March 2009
Luke's uberFeed
with this itchy rash of web 2.0 sites out thee i've found i have a host of sites that im updating (twitter being the most regular, i really do like micro-bloggin') and it's all been a bit disjointed. now for the the more techi amongst you, why would you want multiple feeds coming in from one person? just fills your newsreader with junk. it's also kinda annoying having to point people in the right direction whenever something get's updated, eg:
a new crop of photos have gone online and i give my old man a call: "hey dad, want to see my new photos?", "sure son, are they on that twithead thing you gave me?", "uhhh, no - they're on picasa, you know the photo-sharing place", "nope, don't recall - do you have a link?".
something had to be done.
RSS to the rescue
you might have seen the little orange rss buttons floating around the web?! basically they provide a link to the raw data of a webpage and are usually consumed by another electronic service somewhere to re-produce the headline, link and brief description of the original article. so, in a nutshell, im able to grab these rss feeds from the sites i post to (blog, twitter, youtube, picasa etc) mix them all together and chuck them back out in date order and in the format i decide.
technical challenges (management speak for "pains in the arse")
only bother reading on if you're a web techie... (if not just go to Luke's uberFeed you'll get the idea.
feeds can be slightly different to one another which means some intervention would be required to make them all play nice. for instance, an atom feed is different to an rss feed - to be honest im not sure of all the differences - something about harvard doing one and someone doing something else, and.. well i don't really care, all i know is if it's structured - i can get at it :-) which is what i did. coldfusion offers some excellent xml functions and with a little bit of messing you can soon pull the fields you need out.
simply put if you create an object by calling a url with cfhttp, then parse it with xmlParse you can then get at the data fairly easily:
something like:
<cfhttp url="http://lukenukum.blogspot.com/feeds/posts/default?alt=rss" method="get">
<cfset doc = xmlParse(cfhttp.fileContent) />
<cfoutput>#doc.rss.channel.item[1].title.xmlText#</cfoutput>
will bring you back my latest blog post title (swap the 1 for 2 to get the second title etc). you can then adapt this to get the url and description, it's not rocket science but it's a handy thing to know. all well and good, this enabled me to produce a pretty list and then repeat the process for my other feeds - all similarly tagged (albeit slightly differently) in the XML.
but how to get them mingled with each other so that they form a nice time line? a faux query of course. creating a query object from scratch means that once you have it you can query it just like you would say an SQL database, so using something like the following (ideally in a loop over your XML object):
<cfset thisCell = QuerySetCell(thisRss, "title", doc.rss.channel.item[1].title.XmlText) />
<cfset thisCell = QuerySetCell(thisRss, "published", doc.rss.channel.item[1].pubDate.XmlText) />
it populate that query object (thisRss) which you can then treat just as you would a database query (ie - select title from thisRss order by published) - magic. theres a whole bunch of other stuff going behind the scenes including date formatting and a fix for twitter which clears @[twittername] replies from tweets - they now get filtered out along with other bits of ugly HTML via some regular expressions.
tbh, im getting a bit bored of typing now, suffice to say im fairly happy with Luke's uberFeed (oh, and there's an rss spawn of it here). i know friendfeed is a very similar and far superior option *but* it's all a bit too much... i just don't need more than a link and brief description of something i posted.
i guess the only question that remains is why you'd want to efficiently bring together a bunch of prattle... good question, good question :-/
keep it real campers.
a new crop of photos have gone online and i give my old man a call: "hey dad, want to see my new photos?", "sure son, are they on that twithead thing you gave me?", "uhhh, no - they're on picasa, you know the photo-sharing place", "nope, don't recall - do you have a link?".
something had to be done.
RSS to the rescue
you might have seen the little orange rss buttons floating around the web?! basically they provide a link to the raw data of a webpage and are usually consumed by another electronic service somewhere to re-produce the headline, link and brief description of the original article. so, in a nutshell, im able to grab these rss feeds from the sites i post to (blog, twitter, youtube, picasa etc) mix them all together and chuck them back out in date order and in the format i decide.
technical challenges (management speak for "pains in the arse")
only bother reading on if you're a web techie... (if not just go to Luke's uberFeed you'll get the idea.
feeds can be slightly different to one another which means some intervention would be required to make them all play nice. for instance, an atom feed is different to an rss feed - to be honest im not sure of all the differences - something about harvard doing one and someone doing something else, and.. well i don't really care, all i know is if it's structured - i can get at it :-) which is what i did. coldfusion offers some excellent xml functions and with a little bit of messing you can soon pull the fields you need out.
simply put if you create an object by calling a url with cfhttp, then parse it with xmlParse you can then get at the data fairly easily:
something like:
<cfhttp url="http://lukenukum.blogspot.com/feeds/posts/default?alt=rss" method="get">
<cfset doc = xmlParse(cfhttp.fileContent) />
<cfoutput>#doc.rss.channel.item[1].title.xmlText#</cfoutput>
will bring you back my latest blog post title (swap the 1 for 2 to get the second title etc). you can then adapt this to get the url and description, it's not rocket science but it's a handy thing to know. all well and good, this enabled me to produce a pretty list and then repeat the process for my other feeds - all similarly tagged (albeit slightly differently) in the XML.
but how to get them mingled with each other so that they form a nice time line? a faux query of course. creating a query object from scratch means that once you have it you can query it just like you would say an SQL database, so using something like the following (ideally in a loop over your XML object):
<cfset thisCell = QuerySetCell(thisRss, "title", doc.rss.channel.item[1].title.XmlText) />
<cfset thisCell = QuerySetCell(thisRss, "published", doc.rss.channel.item[1].pubDate.XmlText) />
it populate that query object (thisRss) which you can then treat just as you would a database query (ie - select title from thisRss order by published) - magic. theres a whole bunch of other stuff going behind the scenes including date formatting and a fix for twitter which clears @[twittername] replies from tweets - they now get filtered out along with other bits of ugly HTML via some regular expressions.
tbh, im getting a bit bored of typing now, suffice to say im fairly happy with Luke's uberFeed (oh, and there's an rss spawn of it here). i know friendfeed is a very similar and far superior option *but* it's all a bit too much... i just don't need more than a link and brief description of something i posted.
i guess the only question that remains is why you'd want to efficiently bring together a bunch of prattle... good question, good question :-/
keep it real campers.
Labels:
coldfusion,
feed,
rss,
sql,
xml
Monday, 16 March 2009
fancy learning some new words?
ever in a conversation when the other person throws in a word you've heard a few times but don't know the meaning of? me too. it's easy to ignore but once you start looking for these words they're everywhere - tv, radio, books...
i don't like having to pretend i know a word, it's just plain wrong... so, i've decided to do something about it. every word i hear that i don't know the meaning of i do some quick research and then log it on twitter (in laymen's terms). this serves two purposes: firstly it keeps track of all the words (im the kinda person who will forget them a second and third time...) and secondly why not share the words with others?
you may well know the meaning of the word but if you're like me and fancy enhancing your vocab occasionally, why not follow: http://twitter.com/newWord/ i've put up the ones i've so far stumbled across.
i don't like having to pretend i know a word, it's just plain wrong... so, i've decided to do something about it. every word i hear that i don't know the meaning of i do some quick research and then log it on twitter (in laymen's terms). this serves two purposes: firstly it keeps track of all the words (im the kinda person who will forget them a second and third time...) and secondly why not share the words with others?
you may well know the meaning of the word but if you're like me and fancy enhancing your vocab occasionally, why not follow: http://twitter.com/newWord/ i've put up the ones i've so far stumbled across.
Saturday, 14 February 2009
NYC Rocked
well if you had been keeping up to date with my twittering you'd not need to read this! im not going to bore you all with the time we had in New York but it was fabulous... i'd even go so far as to say i'd live there if the time/job was right! it's got so much and even though im a country boy at heart i could definitely do a stint there. hard to explain what the feeling of the place is, but whatever it is, it's got it.
Manhatten looking South with Empire State Building in the centre.

Grand Central Station, what a space!

Business District, the Twin Trade Towers used to stand behind this scene.

see the full album here.
Grand Central Station, what a space!
Business District, the Twin Trade Towers used to stand behind this scene.
see the full album here.
Labels:
grand central station,
holiday,
manhatten,
new york city,
NYC,
photos,
trip
Thursday, 5 February 2009
quickest route to updating twitter status with a Sony Ericsson K850i
twittering from my standard 'candy bar' mobile phone is still a bit clunky. the quickest method i've found is by sms text, even though twitter bangs on about not being about to send you texts remember you can still send texts to it! unfortunately for me though the UK network 3 seems to charge 25p for a text post which is quite a scandal but what can you do when you're stuck in a contract?! the cheapest way for me to tweet is to use my data allowance and use the web, this is not perfect as you have to open a browser, sign-in and then finally tweet. i've tried Twim but it seems slow to load the app and to load the recent messages, i wasn't overly impressed but will give it another shot in a different location [edit: tried it, still too slow, zapped it from my apps].
still, they say a picture speaks a thousand words and i think i've found the best solution for sending a picture which will also obviously include a tweet. note, im hoping you've already got a unique email address from twitpic to enable picture attachments to tweets (if you haven't go get one now and save the email address they give you in the contacts on your phone).
normally if you take a photo with the K850i the send button that's made available immediately afterward only allows you to send via MMS or blog - this isn't good enough as they've hidden the 'send via email' selection presumably to persuade you to pay for an MMS if they can, those dirty dawgs. the problem is i've found myself taking a picture, closing the camera application, opening the photos list, searching for the photo and then having to send via email, this isn't great but there is a work around which isn't intuitive but perfectly functional once you've done it a couple of times.
firstly i'd advise setting the camera up to take the smaller 640x480 resolution images, this serves two purposes:
a) it saves you having to resize each big picture before you send and
b) saves the time it takes to process the picture in 'photoDJ' which is a step you need to go through.
so... you're set, picture the scene, there you are walking along your favourite road and suddenly a martian aircraft crash-lands in front of you, GO!
1) pull the K850imNotGreatAtTwittering out rapidly from your pocket
2) press the little photo activator button on the top of the phone
3) take the picture
4) press the 'options' button (not the send button!)
5) select 'edit in photoDJ'
6) press the 'select' button
7) select 'send'
8) select 'as email'
9) fill the 'to' with your twitpic email (should be a shortcut by now)
10) fill the 'subject' with your tweet
11) press 'cont.' button
12) press 'send'
and you're done. it's not perfect granted but because you're using the default camera and the default email i think that's the quickest method to getting that photo and update to twitter. i've posted in just under 30 seconds from start to finish... not bad but im keen to hear of anyone else who has a better method or knows of a client that would be faster.
still, they say a picture speaks a thousand words and i think i've found the best solution for sending a picture which will also obviously include a tweet. note, im hoping you've already got a unique email address from twitpic to enable picture attachments to tweets (if you haven't go get one now and save the email address they give you in the contacts on your phone).
normally if you take a photo with the K850i the send button that's made available immediately afterward only allows you to send via MMS or blog - this isn't good enough as they've hidden the 'send via email' selection presumably to persuade you to pay for an MMS if they can, those dirty dawgs. the problem is i've found myself taking a picture, closing the camera application, opening the photos list, searching for the photo and then having to send via email, this isn't great but there is a work around which isn't intuitive but perfectly functional once you've done it a couple of times.
firstly i'd advise setting the camera up to take the smaller 640x480 resolution images, this serves two purposes:
a) it saves you having to resize each big picture before you send and
b) saves the time it takes to process the picture in 'photoDJ' which is a step you need to go through.
so... you're set, picture the scene, there you are walking along your favourite road and suddenly a martian aircraft crash-lands in front of you, GO!
1) pull the K850imNotGreatAtTwittering out rapidly from your pocket
2) press the little photo activator button on the top of the phone
3) take the picture
4) press the 'options' button (not the send button!)
5) select 'edit in photoDJ'
6) press the 'select' button
7) select 'send'
8) select 'as email'
9) fill the 'to' with your twitpic email (should be a shortcut by now)
10) fill the 'subject' with your tweet
11) press 'cont.' button
12) press 'send'
and you're done. it's not perfect granted but because you're using the default camera and the default email i think that's the quickest method to getting that photo and update to twitter. i've posted in just under 30 seconds from start to finish... not bad but im keen to hear of anyone else who has a better method or knows of a client that would be faster.
Tuesday, 3 February 2009
Some pics of the snow
was glad i took the camera out yesterday morning, managed to get a few nice snaps on the cycle to work before the clouds closed in again:
top of Boscombe

Boscombe looking west to Bournemouth

Looking east from Bournemouth

Boscombe Pier

Bournemouth beach

Bournemouth Pier

and i took this because in a small way i feel a bit sorry of the hated ugly beast that is the old Imax building:

see all the snaps in higher rez here.
top of Boscombe
Boscombe looking west to Bournemouth
Looking east from Bournemouth
Boscombe Pier
Bournemouth beach
Bournemouth Pier
and i took this because in a small way i feel a bit sorry of the hated ugly beast that is the old Imax building:
Labels:
boscombe,
bournemouth,
IMAX,
pier,
snow
Monday, 2 February 2009
twitter? wassat?
twitter? everyone is twittering on about it and yet it's been around for ages (well, ok, but it's all relative isn't it?!). now, im not claiming to have been an avid twitterer - oh no, far from it but two recent media jabs into my digital veins have prompted me to dust off the old twitter account and give it another shot (oh how fickle and trendy i've become!)
you may recall the story about the plane that came down into the River Hudson a couple of weeks ago actually broke on twitter which probably wasn't a first... but seemed to be the first *really* big story to have hit the headlines in this way. this along with Stephen Fry's keenness for the service has made me feel the time was right to twit-back-on.
what is it? basically it's simple, you make small (often regular) posts (aka tweets) to the twitter site - stuff like "sampling a new ale at the Winchester, so join me already!" (adding American twist is obligatory) and other people can 'follow you' ie - read the posts. you can 'follow' other people's posts and the result is a list of what each has been up to. you can also reply to each other's posts direct if you so choose and in this way you sort of create a semi-conversation-that's-public - i suppose you'd (ok, i'd) call it.
sounds sort of pointless and just a fat-free slacker's blog post which i guess it is, but the fact that you keep people up to date with what you're doing in snippets is quite a nice one. quicker than emailing, blogging and phone calls it would make a nice job of letting the folks know what you were doing whilst a long way from home. i think the fact the posts have to be so short (only 140 characters infact) forces you to make a concise entry that isn't a great chore and, as the article above points out, it sure is a fast way to break a story if you're in the right place at the right time!
you can also do some other nifty things with twitter if you're so inclined, eg - use your posts to keep your facebook status up to date, add a feed to keep things fresh on your main blog (look to the right!) and you can do it all via text message if you wish - handy.
in a strange way you almost feel 'close' to those who you are following, much more so than a standard blog write-up, the fact i know where Stephen Fry is on a particular night of the week is, dare i say quite exciting! anyway, i'm rambling to much, it's probably just another fad... but lets just tweet all the above:
[ now using twitter again, it's like terrific, follow me http://twitter.com/lukenukum, ps - it wont last ]
you may recall the story about the plane that came down into the River Hudson a couple of weeks ago actually broke on twitter which probably wasn't a first... but seemed to be the first *really* big story to have hit the headlines in this way. this along with Stephen Fry's keenness for the service has made me feel the time was right to twit-back-on.
what is it? basically it's simple, you make small (often regular) posts (aka tweets) to the twitter site - stuff like "sampling a new ale at the Winchester, so join me already!" (adding American twist is obligatory) and other people can 'follow you' ie - read the posts. you can 'follow' other people's posts and the result is a list of what each has been up to. you can also reply to each other's posts direct if you so choose and in this way you sort of create a semi-conversation-that's-public - i suppose you'd (ok, i'd) call it.
sounds sort of pointless and just a fat-free slacker's blog post which i guess it is, but the fact that you keep people up to date with what you're doing in snippets is quite a nice one. quicker than emailing, blogging and phone calls it would make a nice job of letting the folks know what you were doing whilst a long way from home. i think the fact the posts have to be so short (only 140 characters infact) forces you to make a concise entry that isn't a great chore and, as the article above points out, it sure is a fast way to break a story if you're in the right place at the right time!
you can also do some other nifty things with twitter if you're so inclined, eg - use your posts to keep your facebook status up to date, add a feed to keep things fresh on your main blog (look to the right!) and you can do it all via text message if you wish - handy.
in a strange way you almost feel 'close' to those who you are following, much more so than a standard blog write-up, the fact i know where Stephen Fry is on a particular night of the week is, dare i say quite exciting! anyway, i'm rambling to much, it's probably just another fad... but lets just tweet all the above:
[ now using twitter again, it's like terrific, follow me http://twitter.com/lukenukum, ps - it wont last ]
Tuesday, 20 January 2009
decoration's what ya need
hello folks, it's with hands-a-white and face-a-speckled i greet you today. not the most exciting of news but news non-the-less. we've been focusing our efforts on painting and decorating the bedroom all weekend and have continued into the evenings this week and i have to say the hard work is proving to be very satisfying indeed.
i think the fact that this time round we've done a proper job and not cut corners or done any quick fixes im feeling a real sense of achievement, dare i say pride in the work. the walls have gone from the rather over-powering and strangely gloomy light violet to the homebase cheesily named 'contemporary' which to mere mortals like you and i would be considered 'cream'.
the ceiling has been a challenge primarily due to a particularly stubborn large brown damp stain that didn't shift after three coats of white emulsion [please feel free to yawn at this point] a tip from a friends mother (obviously well versed in such events) recommended sealant on it to prevent the stain penetrating to the new paint... low and behold this certainly appears to have done the trick - i suggest you jot that tip down, sealing the ceiling is inevitable and we will all have at least one heavenly stain problem at some point in our lives.
moving swiftly onto the glossing; often the most irksome of painting tasks, you must be patient and methodical - not so slow as to let the previous strokes dry but not so quick as to risk glossing that which should not be glossed, it's and art in itself but definitely worth the effort - so don't skimp and think that left over emulsion will do!
we're nearly there and tonight will be the final touches before the new carpet goes down tomorrow. i have to say, im rather excited about it all - i shall add a finished picture later in the week (you lucky guys).
Before:

Currently:

update 22/01/09
carpet down, just need to get some new curtains now!
Finally:
i think the fact that this time round we've done a proper job and not cut corners or done any quick fixes im feeling a real sense of achievement, dare i say pride in the work. the walls have gone from the rather over-powering and strangely gloomy light violet to the homebase cheesily named 'contemporary' which to mere mortals like you and i would be considered 'cream'.
the ceiling has been a challenge primarily due to a particularly stubborn large brown damp stain that didn't shift after three coats of white emulsion [please feel free to yawn at this point] a tip from a friends mother (obviously well versed in such events) recommended sealant on it to prevent the stain penetrating to the new paint... low and behold this certainly appears to have done the trick - i suggest you jot that tip down, sealing the ceiling is inevitable and we will all have at least one heavenly stain problem at some point in our lives.
moving swiftly onto the glossing; often the most irksome of painting tasks, you must be patient and methodical - not so slow as to let the previous strokes dry but not so quick as to risk glossing that which should not be glossed, it's and art in itself but definitely worth the effort - so don't skimp and think that left over emulsion will do!
we're nearly there and tonight will be the final touches before the new carpet goes down tomorrow. i have to say, im rather excited about it all - i shall add a finished picture later in the week (you lucky guys).
Before:
Currently:
update 22/01/09
carpet down, just need to get some new curtains now!
Finally:
Tuesday, 11 November 2008
Chinese Democracy at last!
i've not been this excited since i was born. seriously. the word is out (i might have been late hearing it but that doesn't matter now)... Guns N' Roses first album for 13 years (that's not a typo) titled 'Chinese Democracy' is due out 24th November 2008, fan-bloody-tastic.
a lot of people never liked GnR and just saw them as another big-hair metal band from the 80s this my friends is so wrong. ever since the release of the classic edgy Appetite For Destruction album which instantly set them apart from the other tripe that was around at the time, they've written some incredible tunes many of which are to be found on the epic (and i mean epic) Use Your Illusion I and II. for all those who say Axl is the 'problem' with Guns N' Roses you're incorrect, im not in anyway saying the original members weren't as important, im just saying that Axl was (is) the driving force behind the band and to my mind one of the best writers the rock world has ever seen - there's so much more to Guns than people think, i urge you - take the time to listen to the lyrics, analyse the arrangements, feel the quality of the recordings - it's always the complete package and i've got my fingers well and truly crossed for the latest product!
it takes a lifetime to realise how good some bands are and it's only years later i've come to realise that Axl Rose is one of the few people who had already given me answers to questions i didn't know someday i'd need to ask. thank you.
some of the great lines that just speak for themselves:
just because you're winnin'
don't mean you're the lucky ones (breakdown)
and the streets don't change but maybe the name
i ain't got time for the game (patience)
coz nothin' lasts forever
and we both know hearts can change (november rain)
old at heart but i musn't hesitate
if i'm to find my own way out (estranged)
sometimes we get so tired of waiting
for a way to spend our time (coma)
yeah you got to make a living
with what you bring yourself to sell (bad apples)
it don't matter how we make it
'coz it always ends the same (you could be mine)
i make the fire
but i miss the firefight (it's so easy)
read Rolling Stone's review of the new album here.
a lot of people never liked GnR and just saw them as another big-hair metal band from the 80s this my friends is so wrong. ever since the release of the classic edgy Appetite For Destruction album which instantly set them apart from the other tripe that was around at the time, they've written some incredible tunes many of which are to be found on the epic (and i mean epic) Use Your Illusion I and II. for all those who say Axl is the 'problem' with Guns N' Roses you're incorrect, im not in anyway saying the original members weren't as important, im just saying that Axl was (is) the driving force behind the band and to my mind one of the best writers the rock world has ever seen - there's so much more to Guns than people think, i urge you - take the time to listen to the lyrics, analyse the arrangements, feel the quality of the recordings - it's always the complete package and i've got my fingers well and truly crossed for the latest product!
it takes a lifetime to realise how good some bands are and it's only years later i've come to realise that Axl Rose is one of the few people who had already given me answers to questions i didn't know someday i'd need to ask. thank you.
some of the great lines that just speak for themselves:
just because you're winnin'
don't mean you're the lucky ones (breakdown)
and the streets don't change but maybe the name
i ain't got time for the game (patience)
coz nothin' lasts forever
and we both know hearts can change (november rain)
old at heart but i musn't hesitate
if i'm to find my own way out (estranged)
sometimes we get so tired of waiting
for a way to spend our time (coma)
yeah you got to make a living
with what you bring yourself to sell (bad apples)
it don't matter how we make it
'coz it always ends the same (you could be mine)
i make the fire
but i miss the firefight (it's so easy)
read Rolling Stone's review of the new album here.
Labels:
chinese,
democracy,
guns n roses
Subscribe to:
Posts (Atom)