The Hack Week 12 poster:
Tuesday, April 7, 2015
Friday, October 24, 2014
Plotting
It's done. Plotting data works now. Acquired with the command line client, secretly shared in the cloud, retrieved and plotted by the client again. Hack Week 11 is a success.
I'll write more a little bit later about what I have done, how I did it, and what I learned. Now on my bike to add another bar to the chart.
I'll write more a little bit later about what I have done, how I did it, and what I learned. Now on my bike to add another bar to the chart.
Thursday, October 23, 2014
Running client
The reference client for Project MySelf is alive now as well. It talks to the server and stores data, encrypted. It even can get back the data and decrypt it again. So the tooling is in place now. Next thing is actually gathering and displaying useful data.
Monday, October 20, 2014
Running server
I made the first steps with the Project MySelf server Mycroft today. I decided to write it in Go and learned quite a bit about how to deal with HTTP in Go. It's a quite powerful approach.
So now there is a server, which can register admin clients and properly authenticate access. Next stop is writing actual data.
So now there is a server, which can register admin clients and properly authenticate access. Next stop is writing actual data.
Sunday, October 19, 2014
Project MySelf - The Plan
Wednesday, October 15, 2014
Hack Week Interstellar
Hack Week 11 goes with a theme: Interstellar. Go where no one went before...
I'll work on a project to retain privacy for self-tracking data: Project MySelf.
I'm looking forward to next week. Some serious hacking ahead...
Wednesday, May 22, 2013
Hack Week 9
During Hack Week 9 Henne and I worked on an app to manage Hack Week projects. The goal was to provide a tool, which better supports the intention of Hack Week, to innovate, collaborate, and learn.
We decided to start from scratch and lined up a fine set of web technology to help us. Rails as application framework, Bootstrap for proper styling, Heroku for simple hosting, Capybara for integration tests, jQuery for a snappy UI, PostgreSQL to store our valuable data, Haml for pleasant templates, OmniAuth for secure and versatile authentication, and some more.
A week is not too much, but it's enough to get something going, so we did some whiteboard design and than dived into coding to make it real. At the end we had a working first version. It's running at suse-hackweek.herokuapp.com. Go to the projects page to see the web app live in action.
Our goal was to provide a convenient way to manage projects and provide the necessary structure to make it easy to find people and corresponding projects. In addition of managing the project data, we also wanted to have some way to comment, publish project updates, see the people involved, and make it easy to join projects, in order to facilitate interaction between people and so to tap into the creativity of the Hack Week crowd.
We were able to accomplish most of this, and even started a basic recommendation engine, which would hint you at project, which might be interesting for you. This is more of an experiment, but an adequate one for a Hack Week. To get the application to a state where it can actually be used will still be a little bit of work, but it could be feasible to do that for the next Hack Week. We'll see how this goes. If you want to help, you're welcome. The code is at http://github.com/suse/hackweek.
Part of the fun of creating this application was going through a number of design iterations. Here are some screenshots of how the app evolved over the week for your viewing pleasure:
It still amazes me how quickly you can create results with Rails, especially if you have the opportunity to freely choose the technology and are not burdened by legacy code. It definitely was a fun week.
Wednesday, September 28, 2011
gem install owncloud-admin
The owncloud admin tool is now also available as a gem. Get it with "gem install owncloud-admin". You'll need to have the rubygems package installed in order to have the gem tool available.
Ruby gems is a wonderful mechanism to distribute software. It literally only takes seconds from releasing a new version to having it available for all users. Particularly nice for prototyping, where you have frequent changes.
Ruby gems is a wonderful mechanism to distribute software. It literally only takes seconds from releasing a new version to having it available for all users. Particularly nice for prototyping, where you have frequent changes.
Side-tracked: ownCloud admin tool
Klaas and Frank tricked me into getting side-tracked from my hack week project and writing a command line tool for installing ownCloud. After a little bit of hacking I have a tool, which is able to install ownCloud to a local machine or to a remote server via FTP. There are a couple of issues with setting up ownCloud, when you only have FTP access to the server, but Frank is looking into a solution to that.
The code is at github.com/openSUSE/owncloud-admin. Next steps will be adding support for other installation methods and targets, e.g. via ssh or to specific systems like some of the popular NAS systems you might have running in your basement already.
The code is at github.com/openSUSE/owncloud-admin. Next steps will be adding support for other installation methods and targets, e.g. via ssh or to specific systems like some of the popular NAS systems you might have running in your basement already.
Tuesday, September 27, 2011
Inqlude command line client
I just uploaded the latest version of the Inqlude command line client to Rubygems. This way it's easily accessible for anyone wanting to play around with it. You need the gem tool to be installed (on openSUSE it's a simple "sudo zypper in rubygems"). Then you can just do "sudo gem install inqlude" and you get the command line client, which is conveniently named "inqlude" as well.
The client is not complete yet. It does handle packages on openSUSE 11.4, so you can use it to see and install Qt libraries there. Backends for other distributions are still missing. More to do for this week...
The client is not complete yet. It does handle packages on openSUSE 11.4, so you can use it to see and install Qt libraries there. Backends for other distributions are still missing. More to do for this week...
Inqlude web site
I have a prototype of the web site for the Qt library archive at inqlude.org. I just updated with the latest content. All the data there is extracted from SUSE RPMs for now. The data needs a lot more love to be more complete, accurate and helpful for application developers.
As a next step I intend to go through the library meta data, add missing info, and also add missing libraries, so that there is an initial set of useful information on the web site.
Monday, September 26, 2011
Hackweek 7
It's the seventh SUSE hack week. I'm working on Inqlude, the Qt library archive, getting it beyond the prototype state. The idea is simple, create a web site listing all Qt libraries out there, and an easy way how to use them, think CPAN for Qt libraries.
There are a lot of things, which need to be done:
There are a lot of things, which need to be done:
- Finalize library meta data format
- Adapt prototype tool to support the final format
- Collect real meta data for as many libraries as possible
- Finish the backend for installing binary packages on openSUSE via the openSUSE build service
- Look into backends for other distributions, ideally using the same build service integration
- Get libraries packaged, which don't have packages yet
- Contribute back changes in package descriptions
- Implement a Qt based client, possibly with a QML based GUI
Thursday, August 4, 2011
Polka
Last hackweek I was so busy with coding, that I didn't blog. But for reference here is the summary of my Hackweek 6 project.
Friday, June 11, 2010
Testdrive Success
After a bit of further hacking I have now access to testdrive from my SUSE Studio client. For a given build a testdrive can be started on the server and the client connects to it with an embedded VNC client. The following screenshot shows you the result, the infamous nInvaders appliance booting in testdrive.

The native VNC viewer gives great performance and is nicely integrated. This is a great environment for a little game of nInvaders.

It's Friday evening now, my hackweek ends here. I'm happy that I have reached my goal of implementing some basic functionality of a native graphical SUSE Studio client. I did a lot of infrastructure work, so that it's now much easier to add additional functionality to cover a more complete set of use cases. If somebody wants to help with implementing some more bits, I would be more than happy. But I will also try to find some time to do some more hacking on this project myself. It's a lot of fun.

The native VNC viewer gives great performance and is nicely integrated. This is a great environment for a little game of nInvaders.

It's Friday evening now, my hackweek ends here. I'm happy that I have reached my goal of implementing some basic functionality of a native graphical SUSE Studio client. I did a lot of infrastructure work, so that it's now much easier to add additional functionality to cover a more complete set of use cases. If somebody wants to help with implementing some more bits, I would be more than happy. But I will also try to find some time to do some more hacking on this project myself. It's a lot of fun.
Caching and more details
I've now implemented caching of API requests in Studiosus, the graphical SUSE Studio client. This is essential for making the application responsive, as with cached data is can operate on native local data instead of waiting for the round-trip from the server. It's a pretty simple caching implementation based on the URLs of the requests. I would love to hear feedback about better existing caching solutions which would solve this as well or better.
So now that the client appears fast, I also improved the appliances list a bit. Garrett suggested to show the builds on the home view, so I implemented that. This gives more direct access to the builds, which are the essential object you want to work on in the client, so I think it makes a lot of sense to do it this way.

I've also worked on the Studio API itself a bit. It was lacking some API calls to handle testdrives, which I need for providing some local access to testdrives in the client. So I did a bit of Rails hacking and implemented these calls. They aren't deployed on the production system yet, though.
So now that the client appears fast, I also improved the appliances list a bit. Garrett suggested to show the builds on the home view, so I implemented that. This gives more direct access to the builds, which are the essential object you want to work on in the client, so I think it makes a lot of sense to do it this way.

I've also worked on the Studio API itself a bit. It was lacking some API calls to handle testdrives, which I need for providing some local access to testdrives in the client. So I did a bit of Rails hacking and implemented these calls. They aren't deployed on the production system yet, though.
Wednesday, June 9, 2010
Source code for SUSE Studio client
I have pushed the source code of my graphical SUSE Studio client to gitorious now. Get it from the Studiosus repository.
Second API call
After moving kxml_compiler to QXmlStreamWriter I'm now able to do more than one API call in my SUSE Studio client. So I can now show the user information alongside the appliances list.


Now I need some caching as loading the appliances list from the server can take a while.
Hackweek V
It's hackweek again. This time I'm working on a graphical client for SUSE Studio. Read more in the SUSE Studio blog. I will report more detailed progress here.
Monday, July 27, 2009
Hackweek is over
Hackweek IV is over. I still have to write up my results. I got quite some things done, but there are also still a lot of loose ends. But it was a great start for the KDE SDK project. I certainly will spend some more time on it. I'll also review the design decisions I made at the beginning of the week. While working on the SDK I realized that a lot of the value such an SDK can have is not only delivered by the development tools itself, but also by integration with the community resources and the community itself. This is a powerful combination, something like developer's social desktop.
Subscribe to:
Posts (Atom)















