Saturday, February 27, 2010

Wow, it's been that long huh.

First of all, please accept my apologies for just disappearing from the Vista Media Center development. During summer 2007 things got a bit crazy in real-life (crazy as in busy). So what happened there was that Aufero ended up being shelved. Unfortunately.

I had promised myself that I'd open source it if I ever stopped development. But you know how it goes, the code is never "clean enough" to publish. Now with a few years of it all collecting dust, I am considering throwing it out there.

That is, unless there are already really compelling alternatives out there that does BitTorrent and/or a movie-library bundled with it. And of course, there would have to be some kind of interest in it since it would take some work to go through the code and at least write some basic documentation on what is what. It's written in C# and the BitTorrent client used is MonoTorrent (which has grown to become quite a kick ass application, I see). If you are interested in taking the lead of this project, drop me a mail at aufero.vmc@gmail.com.

I realize I might be open sourcing this waay too late for it to be (or stay) relevant.

I completely stopped with Media Center development when I stopped with Aufero so as a disclaimer I'd like to add: I have little to no idea how well this code base would work on Windows 7 Media Center (but I imagine someone who is developing for Media Center might be able to tweak it to fit in).

Thursday, May 31, 2007

Holiday slash Vacation

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. :)

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?

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... :)

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

Friday, April 27, 2007

Progress Report, of sorts

It's been a while, hasn't it? To give you a quick run-down on latest developments: Aufero is still doing fine and I try to squeeze in as much time as I can, all in all there has been ten alpha builds released to testers. Due to the state of the builds there's not been much point in reporting problems since they're all over the place, so I will decrease the rate at which builds are released to have something really testable at every increment.

The current alpha is expired and I don't expect to release a new build just yet, I really want to wrap up Wish List functionality (even though a lot of the backend was there it's quite a bit of logic that needs to be implemented).

Last week or so I added functionality for transcoding on the XBox 360 via Aufero. The transcoder package used is TVersity and I have heard that this really is suboptimal compared to how T360 works, so to all the fans of that: It might look like I'll add support for that transcoder as well (down the line at least).

No new screenshots this time, sorry!

The initial feature list from day one still stands, more features were added of course, but the outline is still there and no compromises were made so far:

• Navigate and view collections of general information, previews, trailers, reviews, releases from scene to theatre to DVD and torrents related to your media or media you will be interested in.

• Aufero uses about fifty sources for its information gathering, a lot of it is irrelevant but over time it gathers more relevant information about present and future. For instance it definitely is worth scheduling the download of "Magnum P.I. 'trailer'" (scheduled for release sometime in '07) already today.

• Aufero is written completely from scratch with the sole purpose of being a Vista Media Center application. Built using MCML/Managed Code for that smooth look we all love.

• Manage existing library of downloaded media.

• Manage a Wish List of interesting videos that you would like to know about.

• Automatic download of videos on your Wish List as Torrents becomes available (give it some hours to monitor activity after something is released)

• Manual downloading of torrents.

• Seamlessly play non-WMV (e.g. XviD etc) on XBox360 using Aufero's media library (requires TVersity)

• Subtle notification on your screen when something you had on your Wish List is found, downloaded, unpacked, indexed and moved into your library. Notifications can also be sent through mail to you when you are not in front of your TV.

• The user interface tries to be simple to increase the so-called "Wife Acceptance Factor".