Sunday, May 24, 2009

Tech Events Of the week: geekcamp

30th of May, is geekcamp.

Geekcamp is an unconference, targeted at techies, and geeks. It will be a full day of tech talk. No entrepreneur, no marketing, just tech. Which is refreshing really.

It will be held in Intregricity HQ at Center Point, Bandar Utama.  3

Like most unconference it will be free.

Sunday, May 17, 2009

Public Wifi in KL: FAIL

I am in Lowyat with Ubuntu loco for preparation of the launch party.

So while I wait, I try to use the public wifi. Which is from 2 provider. The first is, klwireless, the other is from time.net.

The thing is, klwireless fail, totally. Partially my fault, because I forget my password, and my security question. But there is no way of reregister a account, without a new phone. So until I get a new phone, I can't use klwireless anymore.
And time.net fail because it don't provide service anymore.

And starbucks around the area, don't provide own wireless anymore.

What I found interesting is, if somebody is serious providing wireless in KL. They should make it free, and why on earth do i want to register for the first place. Sickening, sickening

Friday, May 15, 2009

Leaving Jurassic Park aka Scope International

Today will be my last day at work.

Finally I'm able to say, good bye to the Dinosaurs in my work. Tech Dinosaurs and other Dinosaurs. So long to cobol, bye-bye mainframe. Nice to meeting you all, probably this will be the last meeting. You all will (NOT) be missed.

Honestly Cobol, I really cannot stand you have only Global Variable, not to mention horrible syntax. Who On Earth still use "move data into variable" in their code or have a full sentence as a loop like "perform x until y is equal to z".

Mainframe(System-Z), you're a strong guy. But really having to run program via batch is pretty crazy. And you suck at giving me place to write script. Suck at automation!!! What On Earth is the 8 Character limit. JCL is use in batch, but WTF with the syntax!!!
 
Maybe one thing I really say goodbye to. Is probably bad working culture, and over specialize in a software package, instead of fundamentals. Or probably working in something I am not passionate on. Or being treated like a robot...

Technical speaking, there is still thing that I can bring back. REXX is one, it is promising as my other scripting language, with port on linux and windows, and with special features such as integrating os utils as part of language. That I can use.

Others is experience involve in a role in maintaining large software, probably even testing itself. Rather how not to screw up, hard. And understood that it is really a pain to use a legacy apps. And needs of automation.

Really I learn how to please your subordinate from my line manager. And contact of my lunch buddies.

Really I wish to say goodbye to someone, but i leave the idea off. Hopefully it should not be long for me to forget about her. As I have tonnes to work on.

Saturday, May 09, 2009

fun with python: feedparser

I try to play around with podcast feeds, actually was hoping to generate the link for me to download the media from podcast.

Either way I found this open source library. Which is fun to use.

http://www.feedparser.org/

I just skip the installation step, you can get it from the repository if you're a linux user.

To use the universal feed parser, in the shell
>>>import feedparser
>>>d=feedparser.parse("source of rss")

what you get is a dictionary of data from the rss. More on how to use it here
http://www.feedparser.org/docs/



Sunday, May 03, 2009

adventure with yahoo yql: part 2

Because yql, have a rest based interface. And it generate data in XML and JSON form, it is interesting to write program for.

Below is a small code I have written using python 2.6. Which I wrote in python shell.

First:
import json,urllib

If you use python 2.5, you should first install simplejson, then:
import simplejson as json
import urllib
my
Next step, in one line:
query=urllib.urlencode({"format":"json","env":"http://datatables.org/alltables.env","q":"select * from weather.local where location='myxx0008'"})

urlencode takes a dictionary to encode into a form, that is url friendly.
From dictionary, "format" describe the output format, change "json" to "xml"
"format":"json"

"env" describe the table source, change 'http://datatables.org/alltables.env', to channge data source. BTW the this source contain alot of definition to use..
"env":"http://datatables.org/alltables.env"

"q" is the query, change, "select * from weather.local where location='myxx0008'".In this query, location is mandatory, but it is data source dependent. Use "desc tablename" first is a good idea.
"q":"select * from weather.local where location='myxx0008'"

Moving on, once the above command finish. We can use urlopen to generate data to load into json api. Using query generated above.
result=json.load(urllib.urlopen("http://query.yahooapis.com/v1/public/yql?%s" % query))
One reason to use json here, because getting result data is pretty easy. It is deserialize it into a python dictionary.

For example to get the weather data,

print result['query']['results']['weather']

It deserialize into python object. Another example to get temperature

print result['query']['results']['weather']['cc']['tmp']

To wrap it up, in a simple script
try:
#try to see if it is working
    import json,urllib
except:
#in case you're using python 2.5, BTW install simplejson #first
    import simplejson as json
    import urllib
#encoding
query=urllib.urlencode({"format":"json","env":"http://datatables.org/alltables.env","q":"select * from weather.local where location='myxx0008'"})
#get the data and deserialize it.
result=json.load(urllib.urlopen("http://query.yahooapis.com/v1/public/yql?%s" % query))
#print temperature data
print result['query']['results']['weather']['cc']['tmp']
This a simple script to test yql. Somebody should really write a library to wrap it up. And the above script I use public data tables. Some yahoo data tables, uses oauth. Which I bypass it.

One thing i think of yql is it is convenient to have one place to query data. And with sql like command to filter data is interesting. But still not quite sure whether, this is necessary.

adventure with yahoo yql: part 1

Not too long ago, yahoo have release yql. What it does is, it query data from webservice, in a SQL like language. So you can have query like,

select * from tablename
use tablename
desc tablename
There is other query like join, and subquery, etc. But all the yql is read only.

To use the query, you can actually
First, you can use the query console, here. But the query is limited to build in tables from yahoo. Which expose data from yahoo api.

Above is the query console, with build in tables from yahoo, or a more interesting one is here. This actually use table from community made table.
Now you can not just can query yahoo's api, you can query weather data, twitter data, etc

The community made table is hosted at

Which is host at http://datatables.org/ with links to the table hosted on github too.

Another way is to use the REST based interface. For example
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20search.web%20where%20query%20in%20(select%20title%20from%20rss%20where%20url%3D%22http%3A%2F%2Frss.news.yahoo.com%2Frss%2Ftopstories%22%20%7C%20truncate(count%3D1))%20limit%201&format=xml

Which is a bit of a handful. Which you should write a program to do so.

More can be found in the documentation here.