Thursday, April 19, 2012

Open file/urls with default program

Here's the code for a cross platform way to open file/uri with default application.

You can also install the package with
    go install bitbucket.org/tebeka/desktop


Monday, April 16, 2012

Web/Desktop Application

Currently there's no easy/cross platform way to write desktop applications in go.
However I found out the for simple UI (which in my case covers most of them). I can get away with writing the application as a web server and point the user browser to it.

Here is a small example for a guest book:

Saturday, April 7, 2012

Building Go Projects

Now that Go1 is out, the way to build projects is using the go tool. I found out that the following process works for me.

I have a directory goroot somewhere and there under src I have all my projects. Then I use the following Makefile (this is an example from selenium/webdriver client).

Wednesday, December 14, 2011

dayrange

While working on something else, I need to write a little utility function that returns a range of days. (When the new time package make it to release, this should be much simpler).


Tuesday, December 6, 2011

AppEngine Demo - URL Shortener

Here you can find a small AppEngine Go example.It is a URL shortener (like bit.ly). I shows the following capabilities:
  • HTTP Serving
  • Templates
  • Datastore
  • Task Queue
  • Logging
  • Memcache
Below is the main application code:

Sunday, November 27, 2011

Reversim Interview

Had great fun talking about Go with Ran and Ori at Reversim.
You can listen to the podcast here (note: it's in Hebrew).

Tuesday, November 8, 2011

A simple atexit library

Go does not have an atexit library (and will probably never have). Below is a small implementation of such a library. Note that you have to use atexit.Exit and not os.Exit in your program.

As usual, you can install with goinstall bitbucket.org/tebeka/atexit
And here is an example program (the funky import is due to running this program as a test in the source directory)
/* MIKI: Analytics */