Does anyone have an example of a site which:
How do you provide this, as a site owner? It’s not clear to me that OpenID works for machines to log into things (unless I go and set my OpenID to “always allow access” and then write a screen-scraper module for my OpenID provider).
This seems like something of a flaw in the OpenID concept. Hopefully I’m missing something.
Update: OAuth isn’t the answer here. My use-case for this is, say, a little script that allows me to post to Identi.ca. OAuth requires me (the “Consumer”) to request a “Consumer Secret” and a “Consumer Key” from Identi.ca. From my reading of the OAuth spec, that’s supposed to be specific to the script, not specific to the person running the script, which means that I can’t open-source the script (because then everyone will know my Consumer Secret). So in order for me to write an application that uses OAuth to authenticate to a site, either I can’t open source it, or everyone using the application has to apply for their own Consumer Secret and Consumer Key; at that point you might as well just set a password and not use OpenID! The OAuth spec says that “Service Providers should not use the Consumer Secret alone to verify the identity of the Consumer“, and goes on to “Where possible, other factors such as IP address should be used as well“, which as far as I can tell means “we like closed-source programs; if you want to open source something, then we don’t know how to solve that problem, so you lose”. Correct me if I’m wrong.
An introductory session on Python is being arranged by the LinuxChix team on the 13th of this month at the Red Hat offices. More details on the first link. With a little bit of Fedora stuff being talked about, it should turn out to be a nice day for learning new stuff.
I finally got some time to update my development tree to the new Diablo code and built a new kernel with my high-speed SD/MMC patch. Additionally, it will speed up access to the internal 2GB flash (eMMC) in the n810. For those with long memories, the Maemo bug which slows down card access when the CPU is idle is still present although there has been a little bit of activity on the Nokia side recently (They have an internal bug open for it now)
You can find my custom kernel, patches and instructions here.
Things:
Stuff:
So I can easily look up all records by type: “find key > ‘type byte’”, or all records in a given namespace “find key > ‘type byte’.'namespace/’”, etc. With the way Berkeley DB stores duplicate records I can then skip to each separate node easily as well (and hopefully quickly too) once i’ve found the latest/live revision which will normally be the first one. One thing I haven’t worked out yet is directing entries with a finer granularity than per node (page).
This sort of processing is one area where C (and any related imperative language - Java, C-hash, etc) seems to fall down a bit, scanning, searching, reordering lists and trees. It isn’t difficult to do, but it seems a bit clumsy and messy.
I’m starting to settle on the api I most like for hash tables too (in c):
table = ht_create(hash node func, hash key func, compare node and key func);
ht_destroy(ht); — frees only hash meta-data
node = ht_add(ht, key, node); — It returns an existing node (and does nothing) if the key exists - this means you don’t have to perform a separate lookup first.
node = ht_lookup(ht, key);
node = ht_remove(ht, key); — remove by key. remove by address needs to look up the key anyway so why bother. returns the node removed if it was there.
node = ht_iterate(ht, iterator struct); — list all nodes in unknown order. The node returned can be removed if you want. returns NULL and resets when done.
Why I like this vs the 30 odd function monster in glib2, or even C-hash’s version?
What is bad about it though?
Thanks to Behdad and the organizers at GUADEC, I will be having a BOF/discussion session tomorrow at 4:30pm to discuss a new class of applications built on Silverlight or Flash and how they relate to the future of the Linux Desktop.
Some of the ideas are clearly derived from Alex and Chris thinking about the desktop; it is heavily influenced by our work on Moonlight; by the recent strides that Adobe has made on creating great looking applications on the web (Buzzword and Photoshop Express) and the future of Gnome.
Join me tomorrow for a discussion on how to launch an effort to create an open-source, RIA-based desktop applications.
I am very excited.
Come and see David Comay, among others, talk about OpenSolaris in SecondLife - join us at the Sun Campus, or the live stream on Wednesday 07:30 PT 9th July.
More quick comments:
So I buckled under temptation and bought myself a 32GB CF card and a CF-IDE converter board off eBay just now; whole lot came to about 74 pounds including postage, which I think is not too shabby for what should be a fairly good 32GB SSD solution.
Claimed read/write speeds for the card are 36/40MBps which would be very nice if true, but I’m expecting it’ll probably be around half that at best. Still, I’ll do some rudimentary tests with hdparm to see how it is; hopefully it won’t be slower than the 4200rpm 1.8” disk that’s currently in there!
I also hope the battery life improves… I’ve only ever had the X40 down to about 7 or 8W power consumption at minimum; with this setup I hope to inch an extra watt out of it!
Yesterday, a BoF was scheduled for discussion of distributed version control systems with GNOME. The BoF session did not end up really discussing the issues of what GNOME needs out of a revision control system, and some of the examples Federico used were a bit snarky.
We had a more productive meeting in the session afterwards where we went over some of the concrete goals for the system. The list from the blackboard was:
The sys admin tasks were broken down to:
It was clear from the discussion that neither Git or Bazaar satisfied all of the criteria.
The Playground
John Carr did a great job setting up Bazaar mirrors of all the GNOME modules. This provided an easy way for people to see play around with Bazaar. However, it only gave you half the experience since it didn’t provide a way to publish code and collaborate.
To aid in this, we have set up the bzr-playground.gnome.org machine, which any GNOME developer should be able to use to publish branches based on John’s imports. Instructions on getting set up can be found on the wiki. I hope that we will get a lot of people trying out this infrastructure.
We gave a presentation today on some of the things Bazaar provides that could be useful when hacking on GNOME. Demoing bzr-playground was a bit problematic due to the internet connection problems at the venue, but I think we still showed some useful tools for local collaboration, searching and code review.
Meanwhile, Robert Collins has been working on some of the GNOME sysadmin features that Bazaar was lacking. Among other things, he got Damned Lies working with both Subversion and Bazaar, with a test installation on the playground machine.
Moving to the new flat took longer than expected. But I think the extra time was worth it. The whole flat and my room look pretty nice and comfortable now. Most things are organized, only for the party on friday there is some planing left to do . Internet is still an issue after two weeks of having (almost) no internet-access. Currently we are using the neighbours WLAN until our ISP is done with installing the new connection.
The Southside festival was great too. Radiohead and Sigur Ros, yeah! Tegan and Sara were also amazing. Looking back I would say it was one of the best music festivals I’ve been to so far.
Nevertheless, being away for two weeks kept me slightly behind my schedule. Version 0.1 is ready but not released, because of organizational reasons. In the meantime I’m already working on v0.2.
Last week I finished the foundation of libsoylent. That basically means I thought in greater detail of the architecture (see below), designed the needed GObject classes and made stubs for most functions and methods. From now on there should be a release every week, and a solid foundation will help a lot.
The libsoylent architecture as shown in the diagram: SlBook is the addressbook where people (SlPerson) and groups (SlGroup) are stored. People and Groups are entities (i.e. objects with attributes that can be modified etc.). SlEntities are backed by SlEntityHandlers. For SlPerson there will be an EDS-handler and for SlGroup a file-handler. More handlers can easily be added (if needed).
The storage of attributes (SlAttribute) is managed by attribute-handlers (SlAttributeHandler). They are responsible to convert runtime-values to values that can be stored by the entity-handlers (e.g. a SlAddress C-struct to a VCard-string for EDS).
If you have any thoughts on the architecture I’d be glad to hear them. This week I will have more time and work on people, group and addressbook management. And of course on the first release .
I watched the 4th of July fireworks from the 11th Floor offices of VMWare in Cambridge this year with some friends.
After the question of "who's taking care of the baby?" the most common questions I get about travel are all about traveling alone. I usually just shrug and say it's no big deal - it's not. But last week my grandma (who's 91) was asking me lots of questions about my trip to Istanbul. Are you flying by yourself? How do you get to your hotel? Will you know anybody there? Will you be eating alone all the time? She wasn't worried about me, she was just very curious. Her whole life she's wanted to go see her "cousins in Holland" and she's never gone. (I've always regretted I didn't just book tickets and take her. It would be hard to take her now for health reasons.)
So this trip I paid attention to how I do things and I realized I'm always thinking about logistics and safety. For example, here are some of the things I do:
So as you can see, other than eating, traveling alone is a lot like traveling with friends and family. Just a little more quiet time to read or work on the airplane and in the hotel!
For those of us who couldn’t attend GUADEC this year, let’s build our own lil’ party!
Martin, Better.be and I (all three of us founders AbiSource Corporation B.V.) have been hacking away at our new online collaboration service called AbiCollab.net. Tons of kudos to all the work done by Foddex as well; it was a good idea to talk him into joining Better.be :)
The AbiCollab.net service allows you to store and collaborate on your documents online using AbiWord. You can use the service free of charge.
Now this service is still very much a work in progress (especially noticable by the still rather technical user interface), so we don’t want to bother the general public with it at the moment. However, if you don’t mind compiling software, and don’t mind the occasional service outage, we welcome you to try it out!
To use it, you’ll need to do 2 things:
1. Compile AbiWord 2.6.x, together with the AbiCollab plugin (make sure you have at least the libsoup, gnutls and asio developer packages installed; Ubuntu users: see update 2 at the bottom of this post):
svn co http://svn.abisource.com/abiword/branches/ABI-2-6-0-STABLE/ abiword-2.6 svn co http://svn.abisource.com/abiword-plugins/branches/ABI-2-6-0-STABLE/ abiword-plugins-2.6 cd abiword-2.6 && ./autogen.sh --prefix=<your_prefix> && make && make install cd ../abiword-plugins-2.6 && ./autogen.sh --prefix=<your_prefix> \ --with-abiword=../abiword-2.6 --disable-all --enable-abicollab \ --with-abicollab-service-backend && \ make && make installDon’t forget to replace <your_prefix> with the prefix you want to use (or just leave out the option alltogether).
2. Register an account. You’ll need an invite key (so be quick):
F938958057FBC803-BCE960EE-A45B3955 E81E2315A1E06BF7-4D74C81A-83300BA8 D3E4FE2EF1D044F8-AE567C31-35296002 CB2EEDF544C2CFA3-EE123460-C5D70846 CA53E719D35A96F7-3E7E65BE-E0FC7B92 B19E6314E3A5A732-21EC264E-068BEC9E B0AE4CC5E2045F3B-130A0566-DC8989FB AB1AB8B548B5BDB7-44FC917D-4F2E7B12 AA49D38BDDBB2CAA-746890A9-503AC8B3 889D91D182B57545-21AD691C-E3B62B6E 863F62E86C93ABEA-7BE8E57C-12EFA26C 7803D8782AF3CA58-4366F216-960716CF 5F328DCD7E042AE0-44C8CA11-9598C7C4 4E2113286F76E0F4-EB9F840D-8D47D038 3FA04F1A41E793E9-DFDE2BA2-6BA7204A 33118F229ECF1BC3-DCCB5AB9-0B01EF89 2AF6115302D8CEC8-3BD3FFA5-76CD2DF6 23B5477036FB7A28-3C7EB7E4-2530F0F7 232D88EBFB91CF0E-24449790-7BBC628F 230E4633D5651D65-E62140EB-400A5ED3Then start uploading some of your documents. You can open and edit them directly from the website (make sure to register *.abicollab files with AbiWord), or directly from within AbiWord using Collaborate -> Shared Documents. Note: If you use the second method, then you’ll need to create an account first using Collaborate -> Accounts.
Nifty feature of the day: Upload your CV to AbiCollab.net. Then create a permalink to the latest version of your CV in PDF form. Use this link on your homepage, just as I did on http://uwog.net/resume/. Now as soon as you hit CTRL-S in AbiWord to save some changes you’ve made to your CV, the PDF will be automagically updated to reflect your changes.
Feedback would be very much appreciated!
Update: Feel free to drop me a line if you want to try it out but didn’t get hold of a valid invite key.
Update 2: The libasio-dev package in the Ubuntu repositories misses the libboost-date-time-dev and libboost-regex-dev dependencies. Make sure to install those as well before you compile the AbiCollab plugin.