Tuesday, 21 October 2008
Project Statuses, and should I start a new project?
When I first started writing this blog, I said that I was a magpie. Sadly, this lifestyle of mine has just arisen again, and tried to bite me.
For a while now, I've heard about dropbox, which is (I've heard) a multi-platform, daemon based file synchronizer and version control system, with a web based UI. Sadly, the daemon portion of this system is closed source (apparently because it feeds into EC2), but I love the idea of this.
Because I can't stand that something which seems so simple should be locked down, I figured I'd write it from scratch.
In essence, this system has a few calls;
1) Create
2) Delete
3) Update
4) List
5) Revision History
6) Get Permissions
7) Set Permissions
8) Rename
So, I figured... how hard could this actually be? You've got the beginnings of a file system here, and if you tied this in with something like a NAS box which can run code, or shared hosting, then it'd probably work really well.
But then I realised. OK, I can start this project, stick it on sourceforge and then let it die like the rest of my projects. Yes, all those projects are mine with the exception of the VNC Server for the Pocket PC platform where I tried to contribute the code for a fix back and got no answer, so I created a new project, and put it there with the fix. It's not great but I know a few people use it. Personally, I later found another windows-only project which does the same thing a lot better. I use that now, but if I ever actually manage to go Linux-Only, then at least I'll have a VNC Server.
OK, so I should also mention that I'm also not the only contributor to Laconi.ca Tools. The name might be a bit of a nuisance as it now appears that Evan Prodromou is now considering renaming the server software as Identica, and letting Laconi.ca fade into the wind. There are three mini-projects on Laconi.ca Tools, an SMS->Laconi.ca gateway, an RSS->Laconi.ca poster and a Laconi.ca feed converter.
Ideally, I'd finish up my projects and make them vaguely useful, or I can blog about them and hope that someone will offer to do something with them :)
So, what do I have?
Ongoing
SMS->Laconi.ca Gateway
I'd like it to have the ability to send billable SMS messages in PDU mode, as well as receive them. It needs to handle 8bit and 16bit messages, rather than the current 7 bit messages, and it needs to cope with Text Mode instead of PDU mode. The PDU mode is already in a separate file from the main message handling section, so this file could also be included in other projects than want to send SMS messages.
This is on the Laconi.ca Tools project hosted at Sourceforge.
Radio Times Data Manipulator
Fortunately, this never made it to Sourceforge, and is instead on a hosted SVN repo, partially because I'm not sure of the legal status of this project.
I am able to read the XMLTV data from the RT website, and feed that into a database, and have it e-mail me when programs I like are on TV, far enough in advance that I can program my V+ box, but without needing to remember it within the two weeks that the RT data is new. For example, if I wanted, I could put in the name of a series which is *due to start* in a month or so, and then it'd let me know about 7 days before it starts so I can schedule it! I could also search back through old data, and check who was in a TV program (where available), and see what else they're in.
Currently, all I have is a search program and a data importer, but these are all command line, and not really intuitive. The searches should all be web based and look pretty. They should also be functional and transparent (unlike the RT website, which loves it's adverts and can't cope with the fact you don't have channels it lists). Oh, and I really could do with translating some of the boolean data the XMLTV data contains into real values (like, I suspect, has subtitles or, is widescreen).
A proper food and exercise diary with proper APIs!
So, here's the rub. The overweight person I am needs to lose weight, but the geek in me wants to quantify it. I need to eat 100 kcal less per day than I expend. Actually getting this data together is semi-hard. You know what you're eating (more-or-less - hopefully more than less, otherwise that's a whole other problem), and you know what you're expending (or not as the case may be) thanks to things like pedometers, wii fit, and heart monitors. Realistically, I'd also want it to measure things like "on day one, my waist was X cm and my chest was Y cm and my lung capacity was Z etc." "on day 10, I'd lost x cm on my waist, y cm on my chest and increased my lung capacity by z".
Add APIs to this, and you get a cross-platform, themeable system capable of being used anywhere. Include half-decent authentication, and you also get to let your doctor, gym instructor or mates see what you want them to see. Hell, do it right and you get a whole dashboard of measurements ("I see you covered an extra 5 miles today. Well done!")
Again, it's not on sourceforge, but on my personal SVN repo. I think I was writing it from the perspective of being all APIs which are callable from the PHP code, but I got lost in the database, and gave up all hope.
Projects in my head
A life stream
A few people have told me that there are existing services which would give me lifestream capabilities. Frankly, I think they're all shit. I want something like friendfeed without the comments (damnit, go to the source of the data and put your comments *there*), in a long line with no "three other messages were posted at the same time". And I want the stream to be hosted on my website. There. I said it. I want to be *in control*. Isn't that the whole point of the AGPL? You can take my code and run your own stream. If there's something like this already, let me know where it is and I'll be all over it!
A network device manager
One of the things I hate about networking stuff is that nothing really is designed to interoperate. I want to make sure that my server is running, OK I can do that. I want to check what log messages it last reported. Hmmm OK, I could use syslog I guess. I want SNMP traps to appear in the same place. Yep, that's just about doable I suppose. Oh, and I want to back up all my devices and run a centralised authentication system through this lot too? Finally, you want something which looks pretty to show all this lot at work, and a paging system to cap it all off. Hmmm could be tricky, even with commercial software.
Well, I did actually write about 1/3rd of this a while back, and was then persuaded to scrap it. I've probably still got the images of this work knocking around somewhere and I just need to write up what I did, and maybe even dedicate some time to it again at some point.
Write a reasonable man-management system for overtime purposes
My style of self management is to write tasks on my phone, on a post-it and in my calendar, depending on my technological state when I get the task. Realistically, this should all be transferred to one system, which then is accessible wherever I want it to be.
Frankly, I work more than I should do. I often start early, work through lunch and leave late. I really need to make a recording of what I'm doing so I can get paid for it, and sometimes take time out (because I worked so hard the day before) and get to go home early and read a book.
If I got this tasking system working for my not-work-life, I could make it work at work, and then make it give me a report at the end of each week on who I worked for and how long I was working for them to do my time sheets, and, if I figure it out right, get the *system* to generate everything I need to submit this rubbish for a payslip.
I started this as an API driven system, and then wrote a thin web UI, which became a big web UI called "My Framework" and I condemned it to my SVN store, never to be seen again.
Revive my Wiki
There once was a presenter on LugRadio who commented he had a private wiki in which he stored his personal notes on how to fix things. For a while, I put up a trac based wiki, which when I discovered Horde's development tools, I thought I'd transfer it all into the Wicked Horde module. Of course, I struggled in vain against Hordes modules, and never got it working the way I wanted it to, so gave up on it. It currently resides as a series of trac wiki marked up text files on my home machine, just waiting for the nod.
The Roundup
So, how to proceed? There's always more chaff in my head than I've finished or even started. I'd love to start anew, but tonight when I had the opportunity to do either, instead I wrote a blog post.
Hmmmm.....
What would you do, dear reader?
For a while now, I've heard about dropbox, which is (I've heard) a multi-platform, daemon based file synchronizer and version control system, with a web based UI. Sadly, the daemon portion of this system is closed source (apparently because it feeds into EC2), but I love the idea of this.
Because I can't stand that something which seems so simple should be locked down, I figured I'd write it from scratch.
In essence, this system has a few calls;
1) Create
2) Delete
3) Update
4) List
5) Revision History
6) Get Permissions
7) Set Permissions
8) Rename
So, I figured... how hard could this actually be? You've got the beginnings of a file system here, and if you tied this in with something like a NAS box which can run code, or shared hosting, then it'd probably work really well.
But then I realised. OK, I can start this project, stick it on sourceforge and then let it die like the rest of my projects. Yes, all those projects are mine with the exception of the VNC Server for the Pocket PC platform where I tried to contribute the code for a fix back and got no answer, so I created a new project, and put it there with the fix. It's not great but I know a few people use it. Personally, I later found another windows-only project which does the same thing a lot better. I use that now, but if I ever actually manage to go Linux-Only, then at least I'll have a VNC Server.
OK, so I should also mention that I'm also not the only contributor to Laconi.ca Tools. The name might be a bit of a nuisance as it now appears that Evan Prodromou is now considering renaming the server software as Identica, and letting Laconi.ca fade into the wind. There are three mini-projects on Laconi.ca Tools, an SMS->Laconi.ca gateway, an RSS->Laconi.ca poster and a Laconi.ca feed converter.
Ideally, I'd finish up my projects and make them vaguely useful, or I can blog about them and hope that someone will offer to do something with them :)
So, what do I have?
Ongoing
SMS->Laconi.ca Gateway
I'd like it to have the ability to send billable SMS messages in PDU mode, as well as receive them. It needs to handle 8bit and 16bit messages, rather than the current 7 bit messages, and it needs to cope with Text Mode instead of PDU mode. The PDU mode is already in a separate file from the main message handling section, so this file could also be included in other projects than want to send SMS messages.
This is on the Laconi.ca Tools project hosted at Sourceforge.
Radio Times Data Manipulator
Fortunately, this never made it to Sourceforge, and is instead on a hosted SVN repo, partially because I'm not sure of the legal status of this project.
I am able to read the XMLTV data from the RT website, and feed that into a database, and have it e-mail me when programs I like are on TV, far enough in advance that I can program my V+ box, but without needing to remember it within the two weeks that the RT data is new. For example, if I wanted, I could put in the name of a series which is *due to start* in a month or so, and then it'd let me know about 7 days before it starts so I can schedule it! I could also search back through old data, and check who was in a TV program (where available), and see what else they're in.
Currently, all I have is a search program and a data importer, but these are all command line, and not really intuitive. The searches should all be web based and look pretty. They should also be functional and transparent (unlike the RT website, which loves it's adverts and can't cope with the fact you don't have channels it lists). Oh, and I really could do with translating some of the boolean data the XMLTV data contains into real values (like, I suspect, has subtitles or, is widescreen).
A proper food and exercise diary with proper APIs!
So, here's the rub. The overweight person I am needs to lose weight, but the geek in me wants to quantify it. I need to eat 100 kcal less per day than I expend. Actually getting this data together is semi-hard. You know what you're eating (more-or-less - hopefully more than less, otherwise that's a whole other problem), and you know what you're expending (or not as the case may be) thanks to things like pedometers, wii fit, and heart monitors. Realistically, I'd also want it to measure things like "on day one, my waist was X cm and my chest was Y cm and my lung capacity was Z etc." "on day 10, I'd lost x cm on my waist, y cm on my chest and increased my lung capacity by z".
Add APIs to this, and you get a cross-platform, themeable system capable of being used anywhere. Include half-decent authentication, and you also get to let your doctor, gym instructor or mates see what you want them to see. Hell, do it right and you get a whole dashboard of measurements ("I see you covered an extra 5 miles today. Well done!")
Again, it's not on sourceforge, but on my personal SVN repo. I think I was writing it from the perspective of being all APIs which are callable from the PHP code, but I got lost in the database, and gave up all hope.
Projects in my head
A life stream
A few people have told me that there are existing services which would give me lifestream capabilities. Frankly, I think they're all shit. I want something like friendfeed without the comments (damnit, go to the source of the data and put your comments *there*), in a long line with no "three other messages were posted at the same time". And I want the stream to be hosted on my website. There. I said it. I want to be *in control*. Isn't that the whole point of the AGPL? You can take my code and run your own stream. If there's something like this already, let me know where it is and I'll be all over it!
A network device manager
One of the things I hate about networking stuff is that nothing really is designed to interoperate. I want to make sure that my server is running, OK I can do that. I want to check what log messages it last reported. Hmmm OK, I could use syslog I guess. I want SNMP traps to appear in the same place. Yep, that's just about doable I suppose. Oh, and I want to back up all my devices and run a centralised authentication system through this lot too? Finally, you want something which looks pretty to show all this lot at work, and a paging system to cap it all off. Hmmm could be tricky, even with commercial software.
Well, I did actually write about 1/3rd of this a while back, and was then persuaded to scrap it. I've probably still got the images of this work knocking around somewhere and I just need to write up what I did, and maybe even dedicate some time to it again at some point.
Write a reasonable man-management system for overtime purposes
My style of self management is to write tasks on my phone, on a post-it and in my calendar, depending on my technological state when I get the task. Realistically, this should all be transferred to one system, which then is accessible wherever I want it to be.
Frankly, I work more than I should do. I often start early, work through lunch and leave late. I really need to make a recording of what I'm doing so I can get paid for it, and sometimes take time out (because I worked so hard the day before) and get to go home early and read a book.
If I got this tasking system working for my not-work-life, I could make it work at work, and then make it give me a report at the end of each week on who I worked for and how long I was working for them to do my time sheets, and, if I figure it out right, get the *system* to generate everything I need to submit this rubbish for a payslip.
I started this as an API driven system, and then wrote a thin web UI, which became a big web UI called "My Framework" and I condemned it to my SVN store, never to be seen again.
Revive my Wiki
There once was a presenter on LugRadio who commented he had a private wiki in which he stored his personal notes on how to fix things. For a while, I put up a trac based wiki, which when I discovered Horde's development tools, I thought I'd transfer it all into the Wicked Horde module. Of course, I struggled in vain against Hordes modules, and never got it working the way I wanted it to, so gave up on it. It currently resides as a series of trac wiki marked up text files on my home machine, just waiting for the nod.
The Roundup
So, how to proceed? There's always more chaff in my head than I've finished or even started. I'd love to start anew, but tonight when I had the opportunity to do either, instead I wrote a blog post.
Hmmmm.....
What would you do, dear reader?
Labels: Commentary, identi.ca, projects, smstolaconica, Technology
Monday, 1 September 2008
SMS to Laconi.ca - An introduction
I've not posted in a while, but I thought I'd put together some notes about a little project I started to help out the Laconi.ca community.
Just to introduce Laconi.ca for those who don't already know about it; it's a federated micro-blogging system. You might have heard about this from people talking about identi.ca (which is the best known implementation of the Laconi.ca code base).
So, what does my project do to help you?
A lot of these micro-blogging systems have their message sizes based on the size of an SMS text message, but the Laconi.ca code doesn't have a way of receiving text messages. The code I wrote allows members of the community to set up their own SMS gateway which, using the most complete Laconi.ca API (which just so happens to be based on the Twitter API) relays the message to any Laconi.ca (or, because it's based on the Twitter API - twitter) instance.
If you want to set up your own smsToLaconica gateway, the code is available from my Subversion Repository, but you will also need a few things.
Running the command
WARNING: Ser2Net, by default, exposes a serial port as a general access telnet service with no restriction on who can access it. This does have a security implication in that once started, if your instance of the smsToLaconica scripts aren't using the port, then potentially any user of that system could connect to your mobile phone and dial out. This is solved by doing two things - 1) make sure your smsToLaconica script is always running and 2) allow ser2net only to bond to the localhost adaptor, not your ethernet adaptor by prefixing the port number with the IP address as detailed below. This still leaves this service open to local exploit, but ultimately your local users may have had access to the serial ports already.
Install ser2net (which is available in most Linux distributions) and edit the config file (again as root) in /etc/ser2net.conf, deleting the existing lines (unless you're likely to want to share your COM1: for anything else) and add the following line:
Check out a copy of the Subversion Repository (or just pull the files from the server) and put them in a NON-WEB-DIRECTORY. This is very important! Almost all of these files are not web pages, with the exceptions being ui.php and admin.php. If the only user on this SMS gateway is you, you don't even need to put those into a web directory (see the notes below). Edit the config.php file with appropriate settings and import the SQL table structure to the database configured in config.php, then finally call the run_scripts.sh (which just calls the read_sms.php and process_db.php scripts into the background).
If you put the ui.php and admin.php files into your web host, you will also need a copy of the config.php file. ui.php is where users configure their laconi.ca instance, username and password, and get told the mobile number to send an authorization code to. This is also the same page where they can remove their details from the gateway. The admin page shows how many users are on which Laconi.ca instances and any unhandled messages.
There is currently no index page for the web instance, and no user authentication, so you should probably configure .htaccess files for the admin page, if not remove it completely, or use it to send e-mails to the admin using crontab.
To set up the system without the web interface, you should insert a row into the database table called users, with the following columns completed: base_url, username, password and code. The code column should be something to send to the SMS gateway to associate your number with the service.
If you get stuck with any of this lot, please leave a comment, send me an e-mail or follow me on identi.ca
Just to introduce Laconi.ca for those who don't already know about it; it's a federated micro-blogging system. You might have heard about this from people talking about identi.ca (which is the best known implementation of the Laconi.ca code base).
So, what does my project do to help you?
A lot of these micro-blogging systems have their message sizes based on the size of an SMS text message, but the Laconi.ca code doesn't have a way of receiving text messages. The code I wrote allows members of the community to set up their own SMS gateway which, using the most complete Laconi.ca API (which just so happens to be based on the Twitter API) relays the message to any Laconi.ca (or, because it's based on the Twitter API - twitter) instance.
If you want to set up your own smsToLaconica gateway, the code is available from my Subversion Repository, but you will also need a few things.
- An old mobile phone with PC connection - either via a serial port or a blue tooth adaptor
- Connectivity from your phone to your PC. Linux users may want to use a combination of Bluez and Ser2Net (details below). Windows Users may be able to address the device COMx:, however, I've not tried this and I'm not entirely convinced you can read and write with it like a file. I've also never used a Mac, so I don't know how this would work.
Running the command
hcitool scanwill return
Scanning ...where 11:22:33:44:55:66 is the Bluetooth ID of the device. Pair the device with the adaptor using the command
11:22:33:44:55:66 MyDeviceName
hcitool cc 11:22:33:44:55:66Once the phone is paired, as root, edit /etc/bluetooth/rfcomm.conf and add the following text:
rfcomm0 {
bind yes;
device 11:22:33:44:55:66
channel 1;
}again, using your own device's Bluetooth ID instead of 11:22:33:44:55:66. Restart the bluetooth service using /etc/init.d/bluetooth restartand then we need to configure Ser2Net.
WARNING: Ser2Net, by default, exposes a serial port as a general access telnet service with no restriction on who can access it. This does have a security implication in that once started, if your instance of the smsToLaconica scripts aren't using the port, then potentially any user of that system could connect to your mobile phone and dial out. This is solved by doing two things - 1) make sure your smsToLaconica script is always running and 2) allow ser2net only to bond to the localhost adaptor, not your ethernet adaptor by prefixing the port number with the IP address as detailed below. This still leaves this service open to local exploit, but ultimately your local users may have had access to the serial ports already.
Install ser2net (which is available in most Linux distributions) and edit the config file (again as root) in /etc/ser2net.conf, deleting the existing lines (unless you're likely to want to share your COM1: for anything else) and add the following line:
127.0.0.1,2000:telnet:600:/dev/rfcomm0:9600 8DATABITS NONE 1STOPBITSave this file, then restart the ser2net service with
/etc/init.d/ser2net restartthen telnet to localhost 2000. Confirm it works by sending the AT command to it - you should see a response of "OK", although you may also get a response of
ATNow you can set up the scripts for your own local copy of smsToLaconica. To make smsToLaconica work, you'll need php with php-curl and php-mysql, which are usually available from your repositories. You'll also need a MySQL server which stores the account details of your users and the messages before processing.
OK
Check out a copy of the Subversion Repository (or just pull the files from the server) and put them in a NON-WEB-DIRECTORY. This is very important! Almost all of these files are not web pages, with the exceptions being ui.php and admin.php. If the only user on this SMS gateway is you, you don't even need to put those into a web directory (see the notes below). Edit the config.php file with appropriate settings and import the SQL table structure to the database configured in config.php, then finally call the run_scripts.sh (which just calls the read_sms.php and process_db.php scripts into the background).
If you put the ui.php and admin.php files into your web host, you will also need a copy of the config.php file. ui.php is where users configure their laconi.ca instance, username and password, and get told the mobile number to send an authorization code to. This is also the same page where they can remove their details from the gateway. The admin page shows how many users are on which Laconi.ca instances and any unhandled messages.
There is currently no index page for the web instance, and no user authentication, so you should probably configure .htaccess files for the admin page, if not remove it completely, or use it to send e-mails to the admin using crontab.
To set up the system without the web interface, you should insert a row into the database table called users, with the following columns completed: base_url, username, password and code. The code column should be something to send to the SMS gateway to associate your number with the service.
If you get stuck with any of this lot, please leave a comment, send me an e-mail or follow me on identi.ca
Labels: identi.ca, microblogging, projects, smstolaconica, Technology
Monday, 7 April 2008
Impulse Buyer!
I'm a bit of an impulse buyer. I see something online or in a bricks-and-mortar shop, and decide I want it.
My most recent grab was my EEEPC, but before that it was my Playstation 3, then my MDA Vario III, and before that it was a Wii, then a Nabaztag/tag, a digital photo frame, my MDA Vario.
I always get a bit wrapped up in what will I do with it, I try and get involved in the various communities around what I've bought, but generally I don't manage to last long, and pretty soon, it's a lump of unused plastic sitting on a shelf.
A perfect example of this is the PS3. Having read loads of stuff online about how great a Linux platform it was, I rushed out and bought it fairly soon after it came out. I downloaded the YellowDog Linux ISO for the PS3, and tried to install it. And failed. I did this about 5 or 6 times, and eventually decided that it was more effort than it was worth. Another good example is the Nabaztag/tag, where I bought it based on what I thought I could do with it, and without actually finding out what you can do with it... which turned out to be not as much as I thought you could.
I've managed to not get a large (>35") TV only because every time we bought one and got it home, it wasn't working or it failed after a couple of days. Jules and I agreed that it wasn't worth the hassle, after the third time we bought one.
My latest desire is VGA glasses. I really want to be able to have glasses on when I'm using my EEE, but for the life of me I can't actually figure out what I'll do with them beyond using them as a bigger screen... but here's the thing, the maximum resolution you can achieve with VGA (or Video) glasses is 640x480, unless you're prepared to spend over £1000, which frankly, I'm not.
If you read my twitter feed (http://twitter.com/JonSpriggs), you'll know that I bought Wii Fit this weekend just gone. I've gone a bit bonkers with it, doing more than 3 hours exercise on Saturday and Sunday, and then 10 minutes on Monday and this morning, and I've done another 30 minutes tonight, with more to come once Jules has done some on there. Jules worries that I'll get bored with it if I keep at it. I hope she's not right.
My most recent grab was my EEEPC, but before that it was my Playstation 3, then my MDA Vario III, and before that it was a Wii, then a Nabaztag/tag, a digital photo frame, my MDA Vario.
I always get a bit wrapped up in what will I do with it, I try and get involved in the various communities around what I've bought, but generally I don't manage to last long, and pretty soon, it's a lump of unused plastic sitting on a shelf.
A perfect example of this is the PS3. Having read loads of stuff online about how great a Linux platform it was, I rushed out and bought it fairly soon after it came out. I downloaded the YellowDog Linux ISO for the PS3, and tried to install it. And failed. I did this about 5 or 6 times, and eventually decided that it was more effort than it was worth. Another good example is the Nabaztag/tag, where I bought it based on what I thought I could do with it, and without actually finding out what you can do with it... which turned out to be not as much as I thought you could.
I've managed to not get a large (>35") TV only because every time we bought one and got it home, it wasn't working or it failed after a couple of days. Jules and I agreed that it wasn't worth the hassle, after the third time we bought one.
My latest desire is VGA glasses. I really want to be able to have glasses on when I'm using my EEE, but for the life of me I can't actually figure out what I'll do with them beyond using them as a bigger screen... but here's the thing, the maximum resolution you can achieve with VGA (or Video) glasses is 640x480, unless you're prepared to spend over £1000, which frankly, I'm not.
If you read my twitter feed (http://twitter.com/JonSpriggs), you'll know that I bought Wii Fit this weekend just gone. I've gone a bit bonkers with it, doing more than 3 hours exercise on Saturday and Sunday, and then 10 minutes on Monday and this morning, and I've done another 30 minutes tonight, with more to come once Jules has done some on there. Jules worries that I'll get bored with it if I keep at it. I hope she's not right.
Labels: Technology
Sunday, 30 March 2008
My projects - an overview
Lately, my focus has been slightly torn, not only do I have two personal projects on the go at once (DSSN and OCDL) and some planned projects (like TCP over HTTP), but I've also got a big work project I'm doing and have been doing for months now. On top of that my dad's not been well, there's a whole bundle of Birthdays coming up (Jules' Mum - 50, Mine - 30, Jules - 29, Jules' Dad - 50), and we've been rather busy almost every weekend since January.
Needless to say, (with the exception of the work project that I don't really have a choice about) I've not really kept my eye on the ball with anything.
Let me explain a little bit about the projects I'm trying to do (again, excepting the work project - I'm resolving now never to talk about work in my blog... it's just too damn dangerous and I've heard of too many careers destroyed by talking about or talking at work).
DSSN is my main focus for personal project work at the moment. It stands for "Distributed Secured Social Network" and grew out of an idea I had for an authentication system to improve the security provided by OpenID. I talked about the whole DSSN system at BarCamp Manchester in March 2008, where my authentication system was described as "having reimplemented Kerberos". After the day was over, I looked into Kerberos, and while there are similaraties between Kerberos and the Authentication System I devised, it's not the same.
DSSN is designed to act as both Client and Server for the content you use online, acting like a combination of an e-mail client, RSS reader, calendar, to do list, and shared address book. The individual DSSN nodes communicate with each other using XML based feeds, over an HTTPS feed and use either PGP/GPG to encrypt the exchanged data or for those who don't have the ability to include PGP/GPG on their server, the system can automatically generate a hash from the message content and forward that as part of the XML.
So, why re-invent the Social Network? Well, frankly, I'm concerned that a very small number of players control the personal details of most of my friends, and their friends, and their friends... and so on. I know the Data Portability Project are designing a way to make sure you can get your Facebook information on MySpace, but I want to be sure that when Facebook gets bought out by Rupert Murdock, or MySpace gets bought by Microsoft (these are possibilities rather than predictions), I want to be sure that my data doesn't exist on their servers, or if it does, it's PGP encrypted with my private key, and they can't mine the data for "marketing purposes", and on the day that Bebo gets cracked, the crackers can't sell my contact details to the Russian Mafia for the purposes of Identity Theft.
So, why the delay? DSSN is a complicated beast. For it to be secured from the start, I wanted to be sure that the API's were right from the outset, and that I'd got my head around how to ensure the traffic flow was secure. I'm still trying to figure it all out (at http://spriggs.org.uk/projects/dssn/wicked) and then life got in the way.
OCDL is something that was suggested at the Manchester BarCamp at a talk about the ECDL, and was proposed because a certain monopoly has provided extensive "funding" to the ECDL (like they do with schools) to encourage people to think that to use a word processor, you need to buy their particular Word processing package, and again, when you want to use a spreadsheet, you'll want their Excel-lent spreadsheet program. For web browsing, well, I'm sure you get the idea.
The OCDL was supposed to be a series of lessons about computing, starting with the basics of how to use an internet browser, an e-mail client or web mail site, how to use a word processor and spreadsheet, and then with some "advanced" modules on the fundamentals of Databases (probably taught with OOo Base, MySQL or a common proprietary databasing application). The lessons would be released under two Creative Commons licenses, depending on whether it was a completed lesson, or one still being drafted (that is, the draft versions are released with a No Commercial, Attribution license, and then when finished, the released versions have a No Derivatives license, but this will be done with the approval of all participants in the process).
So why the delay here? As a concept, this dual-license sounds great, but in practice, how do you enforce these two very distinct and separate license clauses? Also, other people, much more knowledgeable with teaching skills and underlying knowledge about the products have already started to write other training courses.
I'm seriously considering ditching the idea of building an OCDL system, as I don't think I'm the right person to push it forward.
I've also got a series of microprojects I've got bubbling at the back of my head.
There's a project to wrap proper TCP or UDP packets in HTTP or HTTPS. This was designed to allow access to SSH and E-Mail from Wifi Hotspots where only HTTP traffic is allowed. The main reason I've not implemented this is because frankly, I work in IT Security, and I just know that the first day I catch someone who's using this at work, I'll let it slip that I wrote this traversal system, and I'll be in big trouble!
I want to write a web based Food and Exercise charting system, which should help me lose weight. The reason I've not got very far with it? I keep circumventing the system, and put data straight into the database using phpMyAdmin, which means I end up not actually doing what I'm trying to with the system, and just keep writing kludge.
Before the requirement for keeping an accurate logbook was removed from the Amateur Radio regulation, I had planned to write a full featured log book in PHP, and then I wanted to use Ruby, and now, I don't really know what I want to do with it all.
I had another couple of projects I wanted to work on, and wrote them up on my wiki at home (http://home.spriggs.org.uk) but they are all like shiny bits of paper, just waiting to tempt me away from what I'm working on at the time.
I'm slightly scared this blog will become another shiny bit of paper.
Needless to say, (with the exception of the work project that I don't really have a choice about) I've not really kept my eye on the ball with anything.
Let me explain a little bit about the projects I'm trying to do (again, excepting the work project - I'm resolving now never to talk about work in my blog... it's just too damn dangerous and I've heard of too many careers destroyed by talking about or talking at work).
DSSN is my main focus for personal project work at the moment. It stands for "Distributed Secured Social Network" and grew out of an idea I had for an authentication system to improve the security provided by OpenID. I talked about the whole DSSN system at BarCamp Manchester in March 2008, where my authentication system was described as "having reimplemented Kerberos". After the day was over, I looked into Kerberos, and while there are similaraties between Kerberos and the Authentication System I devised, it's not the same.
DSSN is designed to act as both Client and Server for the content you use online, acting like a combination of an e-mail client, RSS reader, calendar, to do list, and shared address book. The individual DSSN nodes communicate with each other using XML based feeds, over an HTTPS feed and use either PGP/GPG to encrypt the exchanged data or for those who don't have the ability to include PGP/GPG on their server, the system can automatically generate a hash from the message content and forward that as part of the XML.
So, why re-invent the Social Network? Well, frankly, I'm concerned that a very small number of players control the personal details of most of my friends, and their friends, and their friends... and so on. I know the Data Portability Project are designing a way to make sure you can get your Facebook information on MySpace, but I want to be sure that when Facebook gets bought out by Rupert Murdock, or MySpace gets bought by Microsoft (these are possibilities rather than predictions), I want to be sure that my data doesn't exist on their servers, or if it does, it's PGP encrypted with my private key, and they can't mine the data for "marketing purposes", and on the day that Bebo gets cracked, the crackers can't sell my contact details to the Russian Mafia for the purposes of Identity Theft.
So, why the delay? DSSN is a complicated beast. For it to be secured from the start, I wanted to be sure that the API's were right from the outset, and that I'd got my head around how to ensure the traffic flow was secure. I'm still trying to figure it all out (at http://spriggs.org.uk/projects/dssn/wicked) and then life got in the way.
OCDL is something that was suggested at the Manchester BarCamp at a talk about the ECDL, and was proposed because a certain monopoly has provided extensive "funding" to the ECDL (like they do with schools) to encourage people to think that to use a word processor, you need to buy their particular Word processing package, and again, when you want to use a spreadsheet, you'll want their Excel-lent spreadsheet program. For web browsing, well, I'm sure you get the idea.
The OCDL was supposed to be a series of lessons about computing, starting with the basics of how to use an internet browser, an e-mail client or web mail site, how to use a word processor and spreadsheet, and then with some "advanced" modules on the fundamentals of Databases (probably taught with OOo Base, MySQL or a common proprietary databasing application). The lessons would be released under two Creative Commons licenses, depending on whether it was a completed lesson, or one still being drafted (that is, the draft versions are released with a No Commercial, Attribution license, and then when finished, the released versions have a No Derivatives license, but this will be done with the approval of all participants in the process).
So why the delay here? As a concept, this dual-license sounds great, but in practice, how do you enforce these two very distinct and separate license clauses? Also, other people, much more knowledgeable with teaching skills and underlying knowledge about the products have already started to write other training courses.
I'm seriously considering ditching the idea of building an OCDL system, as I don't think I'm the right person to push it forward.
I've also got a series of microprojects I've got bubbling at the back of my head.
There's a project to wrap proper TCP or UDP packets in HTTP or HTTPS. This was designed to allow access to SSH and E-Mail from Wifi Hotspots where only HTTP traffic is allowed. The main reason I've not implemented this is because frankly, I work in IT Security, and I just know that the first day I catch someone who's using this at work, I'll let it slip that I wrote this traversal system, and I'll be in big trouble!
I want to write a web based Food and Exercise charting system, which should help me lose weight. The reason I've not got very far with it? I keep circumventing the system, and put data straight into the database using phpMyAdmin, which means I end up not actually doing what I'm trying to with the system, and just keep writing kludge.
Before the requirement for keeping an accurate logbook was removed from the Amateur Radio regulation, I had planned to write a full featured log book in PHP, and then I wanted to use Ruby, and now, I don't really know what I want to do with it all.
I had another couple of projects I wanted to work on, and wrote them up on my wiki at home (http://home.spriggs.org.uk) but they are all like shiny bits of paper, just waiting to tempt me away from what I'm working on at the time.
I'm slightly scared this blog will become another shiny bit of paper.
Labels: Technology
Subscribe to Posts [Atom]