Tuesday, December 22, 2009

building a dev environment for golang

the first steps include to setup some comfort, in other words, to have something like an ide for developing at hand, so that you don't have to set all the env variables each time you want to run a program or to have basic comfort like syntax highlighting.

unfortunately no eclipse plugin is available at the time when these lines were written (i feel so prosaic today) but there is one under development on google code http://code.google.com/p/nefarious-ide/ which should integrate go smoothly into eclipse - so stay tuned for the release :-)

for those of you who think that the gedit is a acceptable intermediary solution there is a fantastic step-by-step guide available, how to configure gedit as an ide for the go programming language: http://gohelp.wordpress.com/. i setup gedit following that guide and it works just fine, so i recommend you stick to that guide as well.

right, after everything is setup correctly i recommend to start with the official tutorials to get to know the basic libs and operators: http://golang.org/doc/go_tutorial.html. a nice guidance is also the google-homemade effective go guide: http://golang.org/doc/effective_go.html.

happy coding :-)

Sunday, December 20, 2009

how-to install go programming language on opensuse

alright, after a few searches on google, i wasn't able to find a proper how-to install guide for golang on opensuse, so i decided to write a step-by-step guide on my own.
why i do that? because on the official how-to installation guide http://golang.org/doc/install.html, the example installation seems to be done with ubuntu or a similiar distro.

  1. set standard go variables
    • export GOROOT=/home/you/golang
    • export GOOS=linux
    • export GOARCH=386

  2. create folder for binaries, set optional variable GOBIN and add to PATH
    • mkdir /home/you/bin
    • export GOBIN=/home/you/bin
    • export PATH=$PATH:/home/you/bin

  3. check golang environment variables and check if GOBIN is added to PATH
    • env|grep '^GO'
    • env|grep '^PATH'

  4. install mercurial
    • sudo zypper install mercurial

  5. check-out the go repository from googlecode
    • hg clone -r release https://go.googlecode.com/hg/$GOROOT

  6. install development environment stuff (can also be done via yast). i had the opensuse dvd at hand, so i installed it from there, if you don't have the dvd, you should be able to find the necessary packages online as well. the required dev-stuff is: gcc, bison parser, make, ed editor, glib2-devel
    • sudo zypper install gcc bison glib2-devel ed make

  7. to build go, you need to have the variable GOBIN in your PATH environment (see step 2) and build it :-)
    • cd $GOROOT/src
    • ./all.bash

  8. when everything is finished you should see the following 2 lines in your shell
    • --- cd test ../test
    • N known Bugs; 0 expected Bugs
    • according to googles official how-to, N varies from release to release
if you run into troubles while building go (step 7) the issue http://code.google.com/p/go/issues/detail?id=178#makechanges might be helpful

i had a building problem, that had to do with my locale management on opensuse, but after reinstalling the locales everything was fine again

i installed the go programming language on a freshly updated opensuse 11.2 release, i guess it should work with older releases as well, but i didn't test it

Thursday, December 10, 2009

the power of the people

first i wanted to name that post "the power of google", but when i made my notes (yes, i do that before i spread my insanity to the web), i thought what makes googles power? is google the only megapower on the web? no, because there are also facebook, twitter, yahoo and others. what makes their power? the answer is: we, their users, we, the people.

throughout the rise of the web 2.0 hype, it was all about user experience, user generated content and collective intelligence. web 2.0 is the new new economy, the phoenix that has risen out of the ashes of the new economy that the dotcom crash had brought down.

google created quite an amazing model. they are indirectly giving the people a voice. indirectly because they are giving away all their services and stuff for free and thus in order, a large and often huge number of people is going to use their offers. this is what google makes so powerful. a recent example is their books project. they are offering thousands of books to be read for free. many people use this, and so they are creating a demand for free book content. and because so many people like that, they are getting powerful. this leads to reactions from the classic book industry, who are seeing a big threat in googles doings (and indeed they should be frightened).

thats the way google is going continuosly. through giving away everything for free to the end-user, they are creating an audience and the target audience is much bigger for free stuff than it is for stuff that costs. through that, they are spreading into every niche of the market to reach audience and often to create audience.

another aspect of their success is their independence. they are currently not dependent on any investors (*cough* yahoo/ms merger + carl icahn *cough*) or shareholders - at least thats the perception. therefore they have the freedom and also the money to simply try things and not worry on any return on investment. the countertrade between a user and google is easy described: you get everything on the service for free, google gets your data. i don't worry about any privacy on the web anymore, because its not-existent. (just read the cover story, 'gone', in the current wired issue).

so why is google so mighty and popular on the web and ms is not? although ms is offering countless free services on the web, most of which are really not bad at all. e.g. windows sky drive offers you 25gb free space, ms virtual earth is really not bad either and not to forget bing. okay none of them was really innovative, all rather reactions on googles stuff.

i think the problem of ms is, that they have grown too big and forgot to really focus on the user resp. the user experience. they are simply stuck in itself. the perception of ms is that of a really conservative and proprietary company (what in my opinion apple is as well, but they are focusing more the end-user market; got it?). i think that ms could move faster, but they are risking a lot when they eventually would. the problem is that their customers don't want to move faster or don't want to move at all.

prime example? windows vista. sure the first release was buggy and crappy, but hey, thats the problem with all software products that have to hit deadlines. how many companies upgraded from xp to vista? not many i guess. how many really large companies did that? probably not one. the problem is that it is nowadays way too much risk and effort for large companies to update all their (ms-)monoculturised it stuff. upgrading was not that kind of a problem back in the days of win95 where there were no real systems for erp, cms, bi and what the hell else. when you now change one screw in your it infrastructure, something, somewhere will go badly wrong.

another example of ms being stuck are their new office guis, which i consider as really good. the problem is, that it was a bit of a radical change, especially people in companies are a bit frightened of that new things, 'cause they wouldn't find the functions on their usual place.

but the power of the people is also not always an innovative force, especially when you have only one service to offer and millions and millions of customers. right, thats the problem in that facebook and twitter ran only recently. every tiny change on the gui causes users to get crazy and boycot the system. they are going that far in claiming that the makers of facebook or twitter are tyrannic dictators. in the modern web 2.0 era you have to be aware of that effect. people spend quite an amount of their spare time on facebook and twitter, many who are not skilled with the internet or computers. and many who don't want to change their habits in using something.

so therefore, be aware of the online democracy. thats the power of the people and changing things easily, replacing stuff and getting rid of legacies is no longer. you have to take the users into account, and you should, as they are the capital (remember, f.e. myspace was only bought because of their user's content, twitter is only hot, because it seems to be (and wants to be) the pulse of the world). web 2.0 might not be user generated content, but it is user generated content and users that count.

to what that might lead, is a personalised internet sooner or later. everybody who uses firefox is customising the browser with specific plugins. thats whats going to happen to services like facebook and twitter as well. you have to offer the users certain services as plugins and not kill olders to be replaced by newers. some users prefer the old way, some want the new. that is an important thing to consider technologically, because it is quite impossible to maintain the whole range, to address all users needs and wants.

the web 2.0 era is creating a voice for the independent internet users, and in order that all our personal data are online, the future will be, that we are not addressed as a mass, but as individuals. that, of course, is as much a threat as it is a blessing, but at least, in a big enough number, the people have power again.