Though being a GSoC student this year, I helped organising Google Code-In last year. Google holds an “unconference” (i.e., only rather spontaneous discussion sessions instead of planned talks) every year for GSoC and GCi mentors. So I made my way to Silicon Valley…
After a 14 hours flight starting on Wednesday, 6am, and arriving at 12pm local time (a 14 hour flight with nine hours time difference), sleeping on the plane was a good deal to not be too tired when arriving there. Arriving at SFO, I took the BART to the hostel I booked in northern San Francisco. That evening, I visited the Noisebridge, San Francisco's hackerspace. As the main room was used for watching the movie Mediastan about Wikileaks, I went to a side room, where two other GSoC Summit attendees from KDE were.
Though I should spend the whole next three days also there, I took the Caltrain next day to go to Mountain View. There were two things I had to see: The Computer History Museum, maybe the world's largest Computer museum, and the Hacker Dojo, Mountain View's hackerspace.
The Computer History Museum (which I also visited next day with blymn@nb) is indeed very nice. It's rather made for “generic” visitors than technicians, and the guides, though they might be very smart, are also just doing guidances for the “usual” visitors. So you either have to know the details before going there, or have fun just by seeing and imagining things. You won't get many details from the exhibition, but see a lot of old hardware. After being to the exhibition, of course I had to go to the gift shop and buy several T-shirts. At least something I could take with me from the USA. Honestly, I tried to find stuff I could bring with me for a long time, but there was nothing I could need.
Of course I did not plan my trip to the Hacker Dojo, so I had to use GoogleWifi, the free wifi which is distributed in (whole) Mountain View to find out where it is. After walking for almost two hours and taking several pictures of Google Self-driving cars, I arrived at the Hacker Dojo. As it has strict opening hours, I hadn't have to ask before when I could get there to meet somebody. It's huge. Really. Huge. If you're used to German/European hackerspaces, you'll have difficulties to imagine the size of it. It's just like… three or five times the c-base. There was a large group of people listening to a talk with free Pizza and drinks (I assume) about network administration, and another 20 persons sitting in the large hall, hacking something. Several people in the lounge just hanging out or playing pool. And there was a gaming marathon (or so) in one of the seminar rooms, etc. …
Next day, I went to Mountain View again, this time with all my luggage: I had to move to the Wild Palms Hotel where the Summit attendees would be staying. So I left early in the morning to meet at 11:30am with other NetBSD people for “lunch” (at 11:30am? Whatever…) at a Mexican restaurant.
Though it was nice, I was confused over all. I arrived there to find a group of four people who were clearly computer guys, so I asked them and took a seat with them. I introduced myself and they introduced themselves, but I had no idea. I have difficulties understanding Americans anyway, and I didn't know any of their names.
After some time blymn arrived with two more people I didn't know as well. I seem to not know any of the American NetBSD developers (they do totally different areas of development?!), and then not understanding how they introduce themselves… I not only remember only blymn, I never understood any other name. Apparently, gimpy was along as well, but that's something I heard after that. I doubt they know who I was, anyway.
After lunch, we went to the Computer History Museum (I didn't finish it the first time), and then in the evening, we went to the hotel where I would be staying for the next two nights, to have the first Google-financed food and beer.
The next two days, there would be the GSoC summit. We were driven there by a shuttle bus from Google to the Google Campus. The bus was equipped with wifi, and honestly, it was the most stable and performant wifi connection I had during my whole stay… The GSoC summit was indeed nice.
Nice food, nice drinks, nice sessions. Meeting a lot of nice persons doing cool projects. I won't go a lot into details about this, as I have to order the ideas I got there for myself as well first before writing that down. But it was inspiring to see what other projects do, and what NetBSD could be doing in the future, and I also had a great personal benefit from it.
After two days of talking, there was already the last day, and a shuttle drove us all to the airport, waiting for our flights back. When unmounting the plane in Paris, I also met a French developer from Supertuxkart who attended GSoC and apparently was in the same plane as me. We talked a bit about the summit, and came to the same conclusion: American OS developers are strange! I mean, look at the German Open Source community. Look at the people you'll find when you go to the fosdem. They're hobbyists. Though ofthen, they are professionals as well, they're doing Open Source in their spare time. When you're talking to an American, you'll get the impression that everything is about business. Open Source Project? Sure, you already have a business plan? What, you're doing it in your spare time? I like it when people have passion…
The same for the Hacker Dojo. Though it was a nice place, most people there seemed to have business in mind. Instead of going ot a Starbucks to work (people are actually doing this regularly in the USA!), they'll go to the Hacker Dojo. Or do some hacking, which in the end will become a business, or so.
It's just so much… business. But I won't start talking about the other things I noticed when being in the USA (also during my first stay three years ago). USA's different to Europe, for sure.
As Sven Guckes' calendar is imho too overcrowded with local events and grical has a strange user interface, I decided to make my own calendar. It will feature Hacking, Open Source, Demoscene and Vintage Computing events around Germany (countries close by will also be added, but I'm not aware of the events there). Have a look!
Finally, I submitted my GSoC final evaluation. In GSoC terms, the project is over. After some starting problems (GSoC starts parallel to the end of the semester in Germany, and I was also finishing my Bachelor thesis in the first two weeks), everything went more or less well.
I finished the project to some extent. Everything I could do without touching other tools too much is done. The two scripts work well (and the tests on my real NetBSD machines will follow this week), though they would be nicer if some other tools (namely, mtree(8), etcupdate(8) and pkg_info(8)) had some additional functionality.
I came out with two scripts:
sysbackup. You can see the results in the repository.
A small description of the term set in NetBSD: If you install NetBSD, you unpack several sets. Sets differ in size, but everyone with less than 100MB. They are named like
sysupdate will check for updates or update your system. If you start it with command
check, it will download mtree specifications from a NetBSD server and compare them to either the system one's or the file system. If there are differences, an update is proposed, as well as 3rd party packages that are depending on libraries which would be changed are shown.
Then, you can issue the command
fetch, which will fetch the needed setfiles from a NetBSD mirror. You can also directly say
sysupdate will unpack the fetched setfiles to a staging directory, backup your old system (see below for
sysbackup) and then copy these setfiles over to your real system, proposing an update of 3rd party packages.
If there is also a kernel update, the kernel will be copied to
/netbsd (or something else you specify) and your
/boot.cfg will be changed to be able to boot the old kernel (being copied before overwriting it).
This is not the most efficient method. You could also have tars containing just the diffs, instead of downloading all the data from one set. But this way, there is no need to change anything about the release management (which would entail a discussion lasting longer than GSoC), it just needs access to one NetBSD mirror to extract the mtree files and hash and sign them.
Additionally, sysupdate features the
install command, which lets you install a range of sets you feed (e.g., when you built them yourself).
sysbackup was the second, “optional” part of the project. It has two modes: soft and hard. A soft backup needs a list of files which should be backed up. Then, these files are tared up and the backup will be noted in a database.
Hard backups will require knowledge about the tool before the installation of NetBSD, as it requires a very specific setup. A hard backup is a copy of the file system to another one (different partition or hard disk). Then, this partition is made bootable. As the boot order cannot be seen by a running operating system, you have to reboot from that different partition or hard disk yourself by choosing the right one in your BIOS, Firmware or whatever you use if you want to boot the old one.
As it would be very inefficient to backup everything, you have to specify excludes and sharemounts.
An exclude is a file system (or directory) which will not be copied to the new system, and won't be mounted there.
/usr/pkg is a good example if you make a hard backup before jumping to a new major release – as packages are usually bound to a specific base system version.
A sharemount is a file system (not a directory!) which should be shared across different NetBSD versions.
/usr/pkgsrc, or even better,
/srv are good examples, since they are version-independent.
Unfortunately, you cannot specify a simple directory. You have to have your own file system for a sharemount, since determining the correct order of mounting with symlinks, nullfs mounts etc. make it impossible to resolve the exact position of a directory in POSIX sh.
So you have to think about how you partition your hard disk at the installation if you want to use sysbackup!
sysbackup also has the commands
status to check the backups you have and the dates,
clean to clean old entries in the database which do not exist anymore, and
rollback to roll back to a specific backup (which won't work for hard backups yet).
I have to see how to continue. I need a small addition to test(1) to commit, and then I have to publish the scripts for public review, improve (or even abandon) them and maybe, eventually commit them. Until then, I will also write a more thorough tutorial for the NetBSD wiki and add more polish to the manpages (I think, I forgot an XXX somewhere).
There are some parts missing and it's not as functional as it could be, but these would require major modifications in other tools. For the beginning, I wanted to stay as unobstrusive as possible. But these will come in over time. If the scripts get committed, I'd like to do that before 7.0, and maybe place it for the old ones in pkgsrc.
I have to talk to jmmv, who wrote a similar tool named
sysupgrade earlier, but with some problems imho (I wrote about that before GSoC beginning). I also have to talk to releng about the creation of the files I need on a server. I can surely do that for releases myself, but it would have some delay (the creation takes several hours), and for NetBSD-current packages on http://nyftp.netbsd.org it would not be possible.
But let's see. Maybe other developers will refuse the script, or my mentor (Brett Lymn, blymn) is unhappy with me. Whom I would like to thank much btw for the assistance during GSoC!
This summer, I've been making a driver's licence to drive a motorbike. After having it finished on September 15th, I drove for appr. one month the old bike of my father: A Yamaha Virago XV125. I can't say I liked it much, as it didn't have much power (10HP), but at least I had something to ride and the bike itself was funny: Very lightweight and handy, with a low fuel consumption and a good wind protection. Anyway, the biggest problem was: It was not mine.
So, today, I bought a Honda CB450s. Though it looks a bit strange (somehow it has a “flat top”), it's actually a very nice bike: It's said to be robust and sturdy, and the one I bought, though from 1986, only has 27750km, always been parked in a garage and is very well-maintained. It just got a new Hauptuntersuchung (in Germany, you have to have several things checked every two years), and driving back to Berlin, I could already get used to it.
Now I have to get used to maintaing a four-stroke engine, and then I can start adding things. What I'm currently really missing is a Bluetooth remote control for my phone, such that I can switch music without having to get the phone out of my jacket. Then, I want to have a phone strapped to the front of the handlebar to take photos or videos of the road and see how far I can get with the calculation power of a phone. In parallel, I'll hear the course “Photogrammetric vision” in uni next semester, so maybe try doing some 3D calculations of the road surface…? (though I doubt my phone is powerful enough
Already two weeks ago, there was the OHM 2013 (Observe. Hack. Make). Because of family reasons, I could only join on day 3, i.e. on Friday morning.
I didn't see much of the camp. The nicest things seem to have already happened before, like the ostrich quadrocopter, talks about leaks and some more stuff.
After all, the camp was nice. You would have to do much wrong to make the camp every four (or two, depending on how you count) a failure, and the orga this time certainly didn't. As there was some trouble about the sponsors beforehand, many people (especially from Germany?) refused to go there, but then, at least you see more new people.
But I ignore the sponsors on every event I go to, and so I did with the OHM. But this time, compared to other events, it was more difficult to ignore imho. At HAR 2009, or the CCC camp or any CCC congress, you can just fine walk around without even noticing there are any sponsors. At OHM, they were quite aggressive with their presentation.
It was nice to meet some people I already knew, but then having more time to talk to them. I also spent some time with people from Bochum (Das Labor), Bremen (CCCHB) and from Regensburg, as the two former ones were with me in a village (the Flaming village), and the latter ones were close to our tent and nice people.
The sanitary fittings were… incredible! WCs! Laaarge shower tents! No smell, everything clean, you always had toilet paper at hand! Space in the showers! Not only one single shower cabin, but also another cabin before where you could store your things… Please, CCC orga, look at this camp, do something like this for the next CCC camp 2015!
Then, the camp was… chaotic. I mean, it's funny, talking about chaos and saying the Chaos Computer Club events are better organised. I helped at the Info desk, and several important questions couldn't even answered by the orga. When will the rented tents be torn down? When will the last shuttles drive? How long will water and energy stay? Many of these questions could only be answered on late Saturday.
And, one thing I really disliked was how fast the orga made the event end. It was announced to be until Sunday. But on Sunday, they already started tearing down power, water and connectivity. When I stood up on Sunday, 12 o'clock, seemingly half of the camp was already torn down. On Monday morning, 9am or so, even the last showers were switched off (luckily, I showered the evening before) - I don't know if they were powered again later on, as I left shortly after. Please, next camp, announce early when the camp will really end, and not announce the teardown day as part of the camp!