and has 0 comments
Joy of Thinking: The Beauty and Power of Classical Mathematical Ideas is an earlier math course, staring a long haired Ed Burger and his Texas U colleague Michael Starbird.

Many of the ideas in Introduction to Number Theory have obviously originated here, however I didn't find this course so interesting, maybe because it was not so well thought trough or maybe because it was clearly targeted at a lower level of understanding and the many repetitions of basic ideas kind of turned me off.

The content of the course is structured into three parts: Numbers, Geometry and Probability. The first part contains very little that has not been covered in Introduction to Number Theory. The geometry section is a bit interesting as Michael Starbird takes us through some topology, talking about the Möbius strip and the Klein bottle. The last part is basic probabilities, although there are some interesting problems studied there.

Overall, a fun course, better suited for people that are really not into maths, but more into interesting ways of thinking. The last lecture summarises the life and thought "lessons" learned from this trip into mathematics.

Yay! New Github project: EasyReplace.

What it does is replace all files in a folder hierarchy with the files you drag&drop on the app info box. It is very helpful when you want to replace old library files or some other versions of your files with newer ones without having to manually navigate through solution folders.

...and no, I am not talking about the Ashes to Ashes spinoff of the British series, I am talking about actual life on Mars.

Remember in 1996 when everybody was talking about finding signs of life in a meteorite that came from Mars? At the time the theory was dismissed because other causes for the structures in the meteorite were thought to be valid. Here comes a new study from december 2009 that invalidates the proposed non-organic processes in which the features on the martian rock could have been formed.

Yay! Merry Christmas, green guys!

Here is a small funny video combining music and science in a geeky mix. I know, the music could have been less 80's rap and the dancing... well, could have been dancing. I mean, if even I noticed a lack thereof, it must really have been awful. But then it wouldn't have been geeky enough, right ;)

and has 0 comments
What a fun course this was. The lecturer of Introduction to Number Theory, Ed Burger, a math PhD, looks like what one would expect a mathematician to look like: thin, tall, geeky looking, wearing a rather bland costume, but with a colorful tie, curly hair and large glasses, with a sincere smile that seems a bit sad. The thing is, he is also a lot of fun and his enthusiasm regarding mathematics is not only obvious, but catchy as well.

The course itself requires very little if any mathematical education to understand, being mostly about ideas, rather than formulas. It is a Teaching Company course, and each lecture builds upon the understanding from the previous ones, making surprising and really fun connections.

I was very sad when the course ended, I wanted more! Happily, I've got "The Joy of Thinking" and "Zero to Infinity - a History of Numbers" that are also lectured by Ed Burger and I can't wait to watch them all. I highly recommend the course, even if one is not interested in math. It opens the mind on a way of thinking, useful in any situation, rather than anything specific.

Every time I've heard about this anime I refused to watch it for the very simple reason that the American "brand name" was Samurai X, which pretty much sucked tremendously. But, while reading a list of Shōnen anime series, I've decided to give it a try. And it, real name Ruruoni Kenshin, was a decent anime.

Staged in the beginning of the Japanese Meiji era (the reconstruction, as they call it, after American battleships forced the country to open its borders to the outside world) it features the adventures of former samurai assassin Himura Kenshin Battousai, fighting for the imperialists in the Tokugawa era, now reformed as a wandering samurai and having vowed not to kill anyone anymore. He manages this feat by using a "reverse blade" sword, which has the cutting adge on the inside. He thus manages to beat the crap out of people without actually killing them.

The series reminded me of Twilight Samurai, the movie that I liked so much, because it shows the feelings of people in the middle of great social and political change. Featuring 95 episodes, it is split in three main parts.

The first is how Kenshin moves into a sword dojo ran by a beautiful and single girl (heh!) and how they save a little boy from thugs and thus they become sort of an unofficial family. His "man slaying" past is slowly eroded by the contact with this pure hearted people. During this period he gets to fight several enemies, each stronger than the others, but keeping his vow not to kill anyone.

The second part is a large story arch in which he fights against a plot to overthrow the Meiji government and bring Japan to another period of chaos and war. The story culminates with the battle against a former "manslayer", the mastermind of the said plot.

The third part is mostly a mix of different stories that pretty much breaks the spirit of the first two parts. Instead of getting better, it grinds to a stop and then even gets worse. In this section he gets to fight "Feng Shui" masters and participate in all kind of filler episodes.

I felt that the series had a very nice feel to it, so I would recommend anime fans to watch it, but with the third part optional. There are also several OVAs that I am yet to watch. Happy viewing!

Update: I have watched the 6 OVAs and I was blown away. There are 4 episodes that make up an "origin story" for Kenshin, then a fifth episode which kind of summarises the series (badly) and then an ending that is both positive and extremely sad (in that typical Japanese suicidal way :) ). The animation is way more mature, the plots more complex, the characters have real feelings and there is no comedy whatsoever, getting back to that good feeling I had when I started to watch the series. Also the audience is different: the battles are realistic, with wounds and lots of blood, no magical mambo-jambo, while the characters behave more traditionally, with the women being more passive and the men more closed up.

All in all, the origin story makes the series seem childish at best, however I would recommend it being watched after seeing the series, just as I did.

and has 0 comments
I got this book as a recommendation and at first, I thought it wouldn't work. The scope was large, the characters many and the OCR was really bad so I had to guess some of the words from my text file. So I started reading other books. Left with only this on the PDA, I decided to attempt one more read. I don't regret that decision.

After a while I thought I've started another series of books from the middle or something. A lot of characters, with deep histories, placed in a vast historical context with lots of cool stuff like magic and wars and empires and gods and undead creatures and all that. But no, Gardens of the Moon is actually the first of ten books in the Malazan Book of the Fallen series by Steven Erikson. Wikipedia says: The Malazan world was co-created by Steven Erikson and Ian Cameron Esslemont in the early 1980s as a backdrop to their GURPS roleplaying campaign. In 2005 Esslemont began publishing his own series of five novels set in the same world, beginning with Night of Knives. Although Esslemont's books are published under a different series title - Novels of the Malazan Empire - Esslemont and Erikson collaborated on the storyline for the entire fifteen-book project and Esslemont's novels are considered as canonical and integral to the series as Erikson's own.

The plot is very complex, revolving around the Malazan empire, ruled by empress Laseen, who has just recently staged a coup d'etat and has overthrown and killed the emperor. The empire itself has only one goal, to bring all free cities under its rule, therefore a thick weave of scheming in order to juggle the armies that are partially still loyal to the fallen emperor, the many enemies of the empire, including vary powerful mages and the various high ranking officers who don't see with good eyes what is happening with the empire. And on top of this, Ascendants or Gods are meddling in every important aspect of life. The result is a soup of personal stories, epic battles, shrewd politics and lots of cloak and dagger stuff.

I have to say that I liked the effort a lot, including all the small details that are quite different from books with similar subjects. For example the magic comes from warrens, each a different flavour with influences that diminish and grow like tidal waves and which feed powerful beings whose purposes are never clear or directly expressed. Gods are equally likely to fight amongst themselves, meddle in the human affairs or purely possess some unlucky sod in order to manifest in the real world.

I will now end this entry in order to get the rest of the books in the saga. I highly recommend the book for all fans of fantasy and sci-fi alike.

A while ago, before the election craze began to grip Romania, someone asked me what I think will happen. At the time (as now) I knew more about the plot of the TV series I am watching and the insides of .NET than what was going on politically in my country. Of course, I answered anyway, as the truth is often found in the mouths of children and crazy people. Being both, I said Basescu, the current president, would win the elections, due to populace inertia, and the coalition of parties that wanted to replace him will see each of the inner parties split into people that don't want Basescu and people that want power, making the Democratic Party even larger, even meaner, even worse.

A month after my prediction, month spent in the hope that I was just a fool and didn't know anything about anything, it came true.

And, as if things couldn't get worse, I get to see how the difference between candidates has mostly been provided by the Romanian diaspora, rather than the poor bastards that have to live with the decision. And I know these guys, people that left the country in search of better payment, better conditions, maybe some respect. Knowing nothing about Romania anymore, they just vote as they see from afar, smug in their belief that they do one good thing or the other. Like fighting communism. Maybe it would have worked 20 years ago when you left! That, my friends, pisses me off. If you left, dear diasporans, leave us the fuck alone! Choose a president where you live, not where we do. I can't believe that the same people shouting the country is shit, that they want to go live in a "real" country, that they want to be treated with decency and so on and so on, gather en mass outside the borders to vote with the same idiot that ruled us so far.

And you know what is the funny thing here? People that see how this went and are just as disappointed and disgusted as I am... they say this could have happened only in Romania and they want to leave! It's like a zombie infection, isn't it? And we all got bitten.

The WPF Infragistics controls 9.2 feature a grid called the XamDataGrid, which has a lot of options and is better designed than the horrible web grid from the same company. I wanted to bind the grid to a DataSet, one that has two tables (Data and Details) that are connected through a data relation (named keyRelation). Also, the fields are not auto generated, but defined in the FieldLayouts block.

First step: define the field layouts. Then bind to the DataSet. No go. The only way I could see anything was if I bound to the first table in the dataset (Data). Even so, the fields that were shown were those from the second FieldLayout definition, not the first. After googling a while I finally found the answer: you need to have a Visible field that has the name of the data relation.

So, the final solution for binding a DataSet hierarchically to a XamDataGrid when AutoGenerateFields is set to false:
  1. Bind the XamDataGrid DataSource to the parent table (or its DataView)
  2. Define two FieldLayout sections in the FieldLayouts block for each of the tables
  3. Add a Field with the same name as the data relation between the two tables to the parent table FieldLayout block


Example:

<DataPresenter:Field Name="keyRelation" Visibility="Visible"/>

and has 0 comments
A while ago I was blogging about a Romanian jazzy band called DuteVino. They didn't have an album, just leaked songs over the web, and they sounded rather nice with their female singer having a wide voice range.

After quite a while, they are releasing their first album, "0.1 Prototype", maybe a subtle irony to their lack of activity these past three years, or something to do with all the 2.0s clogging the names of new media. The album itself is formed of their songs so far and, hopefully, it means they plan another soon enough. Nice enough, it is freely downloadable from their site.

The release is due on Friday, December 4th, at 21:30, at Control Club. More information on their official site. If you have difficulties seeing the site, look for a popup poll (which is actually not a popup, but on the edge of the screen) and close it.

Ok, I know I promised you some cool posts and I really was going to write them. However, I am in my own personal crisis and all because of Infragistics controls. Ok, I know that some people like to complain and blame others for their mistakes. I am tempted to do that all the time and I am not always succeeding in abstaining, but this time it is not a pointless blame shift, this is totally real.

Let me put it in no uncertain terms: Infragistics controls suck shitty balls! They are poorly made, badly documented, there is no architecture that one can talk about (except in funny anecdotes at parties) and they are a complete pain in the ass. After giving some time estimates of how long it would take me to finish up some tasks I ended up repeatedly doubling that time because of the stupidity of Infragistics controls. Have I mentioned enough the shitty balls? And the sucking? Because I don't feel completely satisfied.

A small example: class A is inherited by class B. The functionality of class B is implemented in class A as "if I am B, then...". Then other classes using the A class sometimes have checks to see if it is not B, so that they would behave in a completely different way. I am not a brilliant software architect or something, but this is simply insane!

What about the grid columns and rows that are NOT web controls, nor do they implement some events or overridable methods that control their rendering. Instead, the grid is asking questions like "is this a template column? Then add this to the rendered string" (so not even a Controls collection that one can manipulate). And if this weren't enough, I get to have to fix errors in the javascript from Infragistics by replacing whole functions, because there is no other way to get through. One step forward and two back, just like bloody Sisyphus!

I had expected this to take 5 days and it took 3 weeks and I am still not done. My self esteem is plummeting, I am losing my will to live, I feel like the only satisfaction I could have is to go to the Infragistics team and tear them limb by limb, laughing all the way. I sincerely wish all of their managers, sales people, developers and remote assholes that finished tasks without consideration for the other developers they were working for a slow and painful death.

The fixes and solutions I have found are so unavoidably ugly that I don't dare to publish them on the blog, so my advice for you if you use Infragistics controls is to throw them all away and start from scratch. It will take you longer, but in the end you get a good thing, satisfaction for a job well done and a maintainable code. Don't worry, you can be a completely useless developer and you will still do a better job.

On a brighter note, I may start some attempts to code in Mono or at least create stuff in a different domain that what I have worked so far, so good things will happen on the blog, only not in the immediate future.

and has 0 comments
All Tomorrow's Parties is part of the Bridge trilogy, together with Virtual Light and Idoru. Placed in a world that is not too distant from our own, but changed brutally and irreversibly by the advent of new technology, it features some of the same characters as the previous books and tells the story of nodal points, as viewed through the eyes of Laney, the quantitative analyst, and of the people that are inadvertently in the middle of profound change. Laney is a guy that can sense accretions of data intuitively, because he was subjected to trials of some weird drug, and he notices a large nodal point, a place where data points to a change in the way the world works.

I will let you read it and see what this is all going towards. I must say that it felt like an easier book than Idoru, maybe because it has more action sequences and (a bit) less descriptive prose. It is a strange thing to understand the world of Gibson's imagination and feel so strongly about it, yet in the same time see that the world is not really going there. The details that the author infuses in his stories make all of his books seem part of reality and, having finished some story, I feel that the world around me is a bit fake. I believe that is a mark of a great writer.

and has 0 comments
It seems that I started William Gibson's the Bridge trilogy in reverse order. I finished reading All Tomorrow's Parties and, before I could blog it, I started reading Idoru and realized that it was set in the same universe and had some of the same characters. And this only to find out by Wiki'ing that there is a third (and first) book in the series.

Well, I can't possibly hold up until I start and finish that one, and I may even not read it. Not because Gibson is not brilliant, but because the level of attention necessary to enter the atmosphere of his books is not appropriate for my daily subway trips to work. Because of this I recommend reading William Gibson books somewhere alone, in bed, well rested, ready to virtually go somewhere else and abandon reality for a while.

Back to Idoru, a book about a Japanese popular idol (hence the name of the book) who is entirely virtual, a programatic entity made for the sole purpose of entertaining. However, this inadvertently turns into a proper AI, becoming more human as the data from her fans becomes part of her being. Of course, a lot of characters are doing their thing in a typical for Gibson very detailed world that mixes the increasingly neglected realilty with emerging virtual worlds and concepts.

It is a good book, but I recommend you start with Virtual Light, go through Idoru and finish the proper way, by reading All Tomorrow's Parties.

For a few weeks I have been having problems running Silverlight on my machine, especially since I had SL3 installed and also Expression Blend, version 3. I didn't mind much, because I don't need Silverlight most of the time. But since sometimes I do, here is the solution for the "Your Silverlight developer components are out of date" error when trying to install Silverlight.

Go to http://go.microsoft.com/?linkid=9394666 and install the Silverlight tools. Yes, they are version 2. No, I don't know why Silverlight 3 would have problems because of version 2 Silverlight tools. However, installing the tools solved my problem.

Internet Explorer added something called expression to CSS, something purists have booed at for mingling javascript and CSS. Well, boo back! I happen to like stuff that can solve problems. If I were at Microsoft I would create an entire subset of javascript and css functionality. But hey, that's just me.

Anyway, I have decided to use expression to run an initialize function on newly created elements. It would work like this:
initialize:expression(window.initializeElement?initializeElement(this):null);
This CSS bit tells Internet Explorer (and none of the other browsers) that the initialize style property should get the value of the initializeElement function every time the browser refreshes the layout of the element. In the function itself I would do something like this:
function initializeElement(elem) {
if (!elem.style.initialize) {
doSomethingWith(elem);
}
return true;
}
This basically executes doSomethingWith on each element matched by the CSS rule and only once.

Good theory, but in practice it was terribly slow and, after a while, it managed to kill Internet Explorer with a strange System.AccessViolationException: Attempted to read or write protected memory error.

What happened? The slowness, I gathered after a while, was caused by the function doSomethingWith because it changed the style of the element. That meant that the css rule was being applied again before the function ended and returned true. Changing things to:
function initializeElement(elem) {
if (!elem.style.initialize) {
elem.style.initialize=true;
doSomethingWith(elem);
}
return true;
}
fixed it.

The error that killed Internet Explorer was even stranger. After a while I narrowed it down to using jQuery. I have no idea what it did, probably trying to access computedStyle or something like that. The thing is that changing an $(elem).height() with elem.offsetHeight solved it.