Alright, during the next few weeks I'll be pretty darn busy with real life and after that it's time for some vacation. What this means is that this space will be obnoxiously quiet.
Now, time to start praying for some good weather!
See you end of June or thereabout. :)
Thursday, May 31, 2007
Monday, May 21, 2007
Oi! Request for comment :)
I'm looking around for a hosting provider for Aufero and found http://www.one.com -- is there any reader that's had any experiences with them? Bad or good?
Sunday, May 20, 2007
BitTorrent Clients
Just a quick heads up. Aufero will support all kinds of downloading protocols in the end, but the first goal was to get BitTorrent implemented. Since day one Aufero's been using its internal BitTorrent (Mono) client, but I've been having trouble to get it to actually finish downloads. The problem is, I'd like to get a beta out soon so I had to look into alternatives.
What happened was this: You can now use external software, namely: uTorrent or Azureus. Added bonus is that you can have the two running on a separate host (your Windows Home Server or Linux box, anyone?).
The intention in the end is to allow Aufero to run on Media Center and be a "thin" client and all the work is done by a server somewhere. But for that to be reality I'd have to find some money and a reason to cough up for a license (not even sure how much WHS will cost, to be honest).
But anyway, uTorrent or Azureus -- I figured implementing support for those two should be enough?
What happened was this: You can now use external software, namely: uTorrent or Azureus. Added bonus is that you can have the two running on a separate host (your Windows Home Server or Linux box, anyone?).
The intention in the end is to allow Aufero to run on Media Center and be a "thin" client and all the work is done by a server somewhere. But for that to be reality I'd have to find some money and a reason to cough up for a license (not even sure how much WHS will cost, to be honest).
But anyway, uTorrent or Azureus -- I figured implementing support for those two should be enough?
Wednesday, May 2, 2007
Development (not news per se)
I'm getting my ass kicked by Aufero today.
Aufero has a database which contains all the data gathered over time, and due to it taking quite some time to build a somewhat large dataset (which is what you want) the database cannot be rebuilt from scratch every release. This means that anyone can pick up any version of Aufero at any time and take for granted that their database will always work with that version, unless you downgrade. So, there had to be some functionality in Aufero that upgraded the database without any action from the user.
Sounds simple enough? Yeah, I thought so too. The other day I was at the point where I had to rewrite some sections of the code and I was realizing that in order to keep things tidy I had to rebuild large parts of the database.
The database provider I am using does not support renaming or deleting of columns, which you can work around by doing the following CPU-consuming operation:
1. Create *temporary* table
2. Copy original data over to the temporary table
3. Delete original table
4. Create new table with the final layout (eg, the renamed column)
5. Copy temporary data back to new table
6. Delete temporary table
[You can argue about whether to use a temporary table or using "alter table" instead of the steps 4/5. Not much difference in execution time for me. But knock yourself out.]
At the end of the day, it was quite depressing to have to go through all that just to rename a column. And this was in six places affecting virtually all data.
Throw in the fact that there can be quite a few threads in Aufero that works independently of each other on the same data. This was something I had never thought of as a problem prior to doing time consuming operations like the one above. Right after setup was finished there would only be one thread working on the database and whatever got to the database first would start patching happily and be done in a few milliseconds. Now that the patch took up to 2-3 minutes I noticed that I had several threads patching the same database at the same time.
The dataset this happened to is some 150 megabytes and let's just say that it created a bit of a mess.
The lesson here? If you end up writing something like this, think about it first -- don't just throw something together because you *have* to deploy a patch right now. And use transactions which will roll-back if something fails. I was stupid for not having done that from day one, to be honest.
Well, at least this has taught me a thing or two about deploying software to end-users. It's much easier to deploy software for some local server in the organization, which is something I've been doing a lot more frequently. This is fairly obvious thing to say, but I had never really given it any thought except for the fact that you need to worry about more configurations and creating a real installer. Alas. It didn't stop there.
But, others are having a worse day: Tech Magazine Loses June Issue, No Backup
Until next time... :)
Aufero has a database which contains all the data gathered over time, and due to it taking quite some time to build a somewhat large dataset (which is what you want) the database cannot be rebuilt from scratch every release. This means that anyone can pick up any version of Aufero at any time and take for granted that their database will always work with that version, unless you downgrade. So, there had to be some functionality in Aufero that upgraded the database without any action from the user.
Sounds simple enough? Yeah, I thought so too. The other day I was at the point where I had to rewrite some sections of the code and I was realizing that in order to keep things tidy I had to rebuild large parts of the database.
The database provider I am using does not support renaming or deleting of columns, which you can work around by doing the following CPU-consuming operation:
1. Create *temporary* table
2. Copy original data over to the temporary table
3. Delete original table
4. Create new table with the final layout (eg, the renamed column)
5. Copy temporary data back to new table
6. Delete temporary table
[You can argue about whether to use a temporary table or using "alter table" instead of the steps 4/5. Not much difference in execution time for me. But knock yourself out.]
At the end of the day, it was quite depressing to have to go through all that just to rename a column. And this was in six places affecting virtually all data.
Throw in the fact that there can be quite a few threads in Aufero that works independently of each other on the same data. This was something I had never thought of as a problem prior to doing time consuming operations like the one above. Right after setup was finished there would only be one thread working on the database and whatever got to the database first would start patching happily and be done in a few milliseconds. Now that the patch took up to 2-3 minutes I noticed that I had several threads patching the same database at the same time.
The dataset this happened to is some 150 megabytes and let's just say that it created a bit of a mess.
The lesson here? If you end up writing something like this, think about it first -- don't just throw something together because you *have* to deploy a patch right now. And use transactions which will roll-back if something fails. I was stupid for not having done that from day one, to be honest.
Well, at least this has taught me a thing or two about deploying software to end-users. It's much easier to deploy software for some local server in the organization, which is something I've been doing a lot more frequently. This is fairly obvious thing to say, but I had never really given it any thought except for the fact that you need to worry about more configurations and creating a real installer. Alas. It didn't stop there.
But, others are having a worse day: Tech Magazine Loses June Issue, No Backup
Until next time... :)
Tuesday, May 1, 2007
Aufero on Extensibility
Warning: Contains rambling.
People's taste, preferences, the vast amount and the variety of information on the Internet makes it impossible for any kind of software to cover.
Err. Let's take a step back: Aufero gathers information about media by looking at your local network and on the Internet. In order to not wander around aimlessly it uses a set of reliable information sources. The types of these include, but not limited to reviews, torrents, general information. Now, we all have our preferences as to where we go for this information; blogs, commercial sites or simply reviews of our own...
Aufero's take on this is to not shove a fixed set down your throat, its goal is just to see to it that you get the information you want, served to you. In your couch. In order to do this there had to be some way of administering the sources of information. So, allow me to introduce the latest member of the Aufero family: "Aufero Two Foot".
Aufero Two Foot
Aufero Two Foot got its somewhat obvious name from the fact that it should be used on the desktop at a 2' distance as opposed to using a remote control at a 10' distance. The most common use will be by people remoting into their Media Center using Remote Desktop. In general I don't really picture users doing this very often since Aufero will still make some default sets available through some mean.
"Through some mean?" Yes. See, Aufero itself will always remain a clean product, it does not intend to serve users with means to get to those evil P2P-networks (so MPAA says) like, for instance, BitTorrent swarms. That's just an added bonus. The conclusion here is Aufero will not include any information sources in the default setup package. That is up to you to get ... somehow. I bet you're sighing already: "Why make it so complicated?", I won't answer that question this bloggage, but I can share the good news here: It is extremely easy to share your information sources with others. In fact, you click a button and you will have a text-file which can be mailed, blogged, posted on a forum or quoted(!) over a telephone line. And then this is ready to be imported into Aufero.
My first Information Source?
How will the initial information set be shared then? Well, you will be able to point "Aufero Two Foot" to any Internet address (RSS feed, blog, forum) or copy/paste it into ATF and it will set itself up. And you're set to go and you will never have to worry about it again unless you want to. Someone (me? you?) will inevitably set up some forum for sharing this and other information around Aufero.
Blog 'em!
Aufero Two Foot's job is an ungrateful one. Its task is from day one to make itself obsolete so you will never have to open it. In other words, it will allow you to set it to subscribe to a blog with shared data. This will give Aufero a steady stream of new Information Sources as they are made available by other fellow Aufero users. Naturally, you should only point Aufero to blogs that you trust with giving you this kind of information. This is pretty cool if I may say so myself. :)
Something's missing...
The readers paying attention are now thinking: Eh. What is shared, exactly? Right. Well, Aufero Two Foot takes a bit of getting used to and you really have to know about something called "Regular Expressions". While most of the world does not have the patience or the knowledge to fiddle with this kind of nonsense, there is a big population out there that does have the patience and the know-how for this. And those are the friendly souls you will learn to appreciate and love if you want to hook Aufero up to something new. What they produce is what will be shared.
I'm not talking rocket science here: Setting up a new information source for someone who knows how to do it shouldn't take more than 5-10 minutes.
And again, as it is now I have roughly seventy information providers which will in part be made available through above hinted forum, should it appear.
And if you didn't already read it between the lines: This functionality will give you the opportunity to add your own trackers. And more...
Until next time... :)
PS. 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
People's taste, preferences, the vast amount and the variety of information on the Internet makes it impossible for any kind of software to cover.
Err. Let's take a step back: Aufero gathers information about media by looking at your local network and on the Internet. In order to not wander around aimlessly it uses a set of reliable information sources. The types of these include, but not limited to reviews, torrents, general information. Now, we all have our preferences as to where we go for this information; blogs, commercial sites or simply reviews of our own...
Aufero's take on this is to not shove a fixed set down your throat, its goal is just to see to it that you get the information you want, served to you. In your couch. In order to do this there had to be some way of administering the sources of information. So, allow me to introduce the latest member of the Aufero family: "Aufero Two Foot".
Aufero Two Foot
Aufero Two Foot got its somewhat obvious name from the fact that it should be used on the desktop at a 2' distance as opposed to using a remote control at a 10' distance. The most common use will be by people remoting into their Media Center using Remote Desktop. In general I don't really picture users doing this very often since Aufero will still make some default sets available through some mean.
"Through some mean?" Yes. See, Aufero itself will always remain a clean product, it does not intend to serve users with means to get to those evil P2P-networks (so MPAA says) like, for instance, BitTorrent swarms. That's just an added bonus. The conclusion here is Aufero will not include any information sources in the default setup package. That is up to you to get ... somehow. I bet you're sighing already: "Why make it so complicated?", I won't answer that question this bloggage, but I can share the good news here: It is extremely easy to share your information sources with others. In fact, you click a button and you will have a text-file which can be mailed, blogged, posted on a forum or quoted(!) over a telephone line. And then this is ready to be imported into Aufero.
My first Information Source?
How will the initial information set be shared then? Well, you will be able to point "Aufero Two Foot" to any Internet address (RSS feed, blog, forum) or copy/paste it into ATF and it will set itself up. And you're set to go and you will never have to worry about it again unless you want to. Someone (me? you?) will inevitably set up some forum for sharing this and other information around Aufero.
Blog 'em!
Aufero Two Foot's job is an ungrateful one. Its task is from day one to make itself obsolete so you will never have to open it. In other words, it will allow you to set it to subscribe to a blog with shared data. This will give Aufero a steady stream of new Information Sources as they are made available by other fellow Aufero users. Naturally, you should only point Aufero to blogs that you trust with giving you this kind of information. This is pretty cool if I may say so myself. :)
Something's missing...
The readers paying attention are now thinking: Eh. What is shared, exactly? Right. Well, Aufero Two Foot takes a bit of getting used to and you really have to know about something called "Regular Expressions". While most of the world does not have the patience or the knowledge to fiddle with this kind of nonsense, there is a big population out there that does have the patience and the know-how for this. And those are the friendly souls you will learn to appreciate and love if you want to hook Aufero up to something new. What they produce is what will be shared.
I'm not talking rocket science here: Setting up a new information source for someone who knows how to do it shouldn't take more than 5-10 minutes.
And again, as it is now I have roughly seventy information providers which will in part be made available through above hinted forum, should it appear.
And if you didn't already read it between the lines: This functionality will give you the opportunity to add your own trackers. And more...
Until next time... :)
PS. 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
Subscribe to:
Posts (Atom)