This entry will be sort of unorganised, as I am slowly crawling to the jungle of options and bad documentation for Sharepoint. I will structure it as a list of points that I pass through and the solution for each problem. Hopefully, you will find something useful in it.

First of all, you cannot run Sharepoint on XP. Don't event try it. You need at least a Windows 2003 machine with the free Windows Sharepoint Services (acronym WSS) or with the commercial Microsoft Office Sharepoint Server (acronym MOSS) installed. In order to access the site, you will have to access the http://SharepointComputer URL.

Section: publishing a web part to the Sharepoint site running on WSS.
  • A web part project is a class library with associated libraries for it. First step is publication, which means copying the library files into the sharepoint site bin folder.
    Solution:
    1. find the physical location for the Sharepoint site onto the Sharepoint computer(usually wwwroot\wss\VirtualDirectories\80)
    2. copy the library files in the bin subfolder
  • Second step is loading the web parts into the Sharepoint gallery.
    Solution:
    1. open the http://SharepointComputer url
    2. open the Site Actions top-right menu and go to Site Settings
    3. open the Galleries - Web Parts link
    4. select the New option from the top toolbar
    5. the webparts in the library should appear in the list. check the checkbox next to them
    6. click Populate Gallery. now the web parts should be available in any page
  • Last step is adding the web parts to a page.
    Solution:
    1. go to any page that you can edit
    2. go to Site Actions and select Edit Page
    3. click the appropriate Add a Web Part header
    4. check the checkbox next to the web parts you want added, then click OK


Section: Troubleshooting the published web parts
  • If you have an error, you probably have a generic error page that says nothing of relevance.
    Solution:
    1. go to the physical location of the Sharepoint site
    2. edit the web.config file and set customErrors to mode="Off"
    3. refresh the Sharepoint site page in the browser
  • Now the error is much clearer and you see permissions errors that show Access Denied.
    Solution:
    1. go to the physical location of the Sharepoint site
    2. edit the Properties of the library files that you copied in the bin folder and set access for the asp.net user or (if you are lazy) for Everyone to read the site
  • Now the error you see other permissions errors of which you understand nothing, mostly linked to OnPrerender or Render methods.
    Solution:
    1. go to the physical location of the Sharepoint site
    2. edit the web.config file and (if you are lazy) set trust to level="Full" (capital F) or try to create your own security policy (complicated)
    3. refresh the Sharepoint site page in the browser
  • Oh, joy, the ugly error page with lots of information has vanished, leaving instead a nice error page saying nothing useful except File Not Found.
    Solution:
    1. go to the physical location of the Sharepoint site
    2. edit the web.config file and set compilation to debug="true" and SafeMode to CallStack="true"
    3. refresh the Sharepoint site page in the browser
  • Weird and unexplained errors occur.Solution:
    1. on the Sharepoint computer go to Administrative Tools and select Sharepoint 3.0 Central Administration
    2. that should open a site that is used to configure the Sharepoint site
    3. alternatively you can try the same Sharepoint URL in the browser, but using the port that was assigned to the configuration site (you can get the port from the name of the folder in wwwroot: wwwroot\wss\VirtualDirectories\[port that is not 80]
    4. go to the Operations section and select Diagnostic Logging
    5. In the Trace Log section you should see a Path, copy it to the clipboard
    6. Open the said path in Start/Run and it should open the Logs folder
    7. Open the latest log file (might need to press Ctrl-R to refresh the folder or to close the log file if already open and reopen it) and look for any cause for the errors


To be continued...

and has 0 comments
Using RSA encryption means you base your security on the lack of resources of people trying to break your code. Well, that's saying very little, as the required computational power is indeed not accessible to most individuals, yet the same is not true for some organizations. And when we are talking about "organizations trying to break your code" we are, of course, going above the few hackers that employ a few thousand bots and that normally would have no reason to crack your communication, and going directly to the more likely culprits, mainly governmental organizations. And given their propensity for secrecy and paranoia, maybe even 1024 RSA is not really safe. After all, in "lands of freedom" there are laws against exporting software that employs too powerful an encryption, like 1024bit RSA. And that's an old law.

Anyway, here is a news link about the 768bit RSA cracking and, for the math inclined, a link to the actual paper. A list of the different RSA bit lengths and the known efforts to break them is found here.

A little quote from Wikipedia, showing that the limit is not really 768: As of 2010, the largest (known) number factored by a general-purpose factoring algorithm was 768 bits long, using a state-of-the-art distributed implementation. RSA keys are typically 1024–2048 bits long. Some experts believe that 1024-bit keys may become breakable in the near term (though this is disputed); few see any way that 4096-bit keys could be broken in the foreseeable future. Therefore, it is generally presumed that RSA is secure if n is sufficiently large. If n is 300 bits or shorter, it can be factored in a few hours on a personal computer, using software already freely available. Keys of 512 bits have been shown to be practically breakable in 1999 when RSA-155 was factored by using several hundred computers and are now factored in a few weeks using common hardware. A theoretical hardware device named TWIRL and described by Shamir and Tromer in 2003 called into question the security of 1024 bit keys. It is currently recommended that n be at least 2048 bits long.

and has 0 comments
A friend of mine showed me a little information from MSDN that described the behaviour of methods that have the same name as other methods from the base class. Go to the MSDN site and scroll to the Override and Method Selection section.

A small excerpt: Override methods are not considered as declared on a class, they are new implementations of a method declared on a base class. Only if the C# compiler cannot match the method call to an original method on Derived will it try to match the call to an overridden method with the same name and compatible parameters.

Long story short: if you create a method in a derived class that has the same name as a method in the base class, the method in the derived class will always be used, even if the base class method matches better the call signature. In other words Derived.DoWork(double value) will be used instead of Base.DoWork(int value), even the value passed is an integer. Indeed, the double value method will be used even if there is a Derived.DoWork(int value) method, but one that overrides a method in Base.

You can solve this by casting to the base class, but the best idea is to never create methods with identical names to ones in the base class.

and has 0 comments
Happy New Year! May the year bring... wait a minute, I didn't mean to add to the noise that follows any large celebration like the New Year. In fact, quite the opposite. I intend to show you a way to block the outside noise in a relaxing way while on your computer.

Many a time a simple mp3 player would do the trick, however, sometimes you need to read boring documentation and that makes your brain switch to the text of the songs played rather than stay focused on what must be read and understood. Enter SimplyNoise, a simple site that generates white, pink and brown sound, with an optional feature to modulate the volume, thus shielding you from the outside audio interference, yet not disttracting your attention.

This also helps with tinnitus, if you have the misfortune of suffering from it. Recent research also shows that the condition can be alleviated if the specific frequency of the tinnitus sound is blocked. If they would block some frequencies from their generated sound, they would actually provide a medical service.

My personal favourite is the brown sound with modulated volume. Sounds just like standing on a beach.

Happy relaxed coding!

and has 0 comments
The second book in Steven Erikson's Malazan Book of the Fallen series, Deadhouse Gates starts from where Gardens of the Moon left, using some of the characters, but in a completely different storyline. Thus, it can be read as a separate book.

I found Deadhouse Gates to be both better in the good parts as well as worse in the bad parts than Gardens of the Moon. The characters are more complex, the storyline more interesting, the battles more epic, but the magic is even stronger, its power never truly explained or detailed so that it fits in the background. What use is an army, if a single mage can obliterate whole realms? How does a human empire span so much land unchallenged, while creatures that can crush it singlehandedly exist in the world?

As expected, the characters more their separate ways, occasionally meeting for brief periods of time, but essentially having their own story arches. There is the Coltaine arch, with the moving story of a brilliant commander protecting thousands of ungrateful whiny rich refugees; the Felisin arch, which describes the life of the younger Paran sister, driven by the hate towards her older sibling and adjunct to empress Laseen; the story of Kalam, the assassin, in his quest to kill Laseen; the tale of Crokus and Apsalar and Fiddler, travelling the magical desert Raraku; finally, the story of Icarium the Jaghut and Mappo Runt, the Trell, both insanely old and searching for Icarium's lost memories.

Great book, I started reading the third in the series and I don't see me stop until I finish the entire Malazan saga. I found an interesting link that can serve as an encyclopedia of the Malazan universe. Here it is: Malazan universe.

and has 0 comments
I've found this article on BBC News and I thought it was very interesting. It is a timeline for the most important science news of the year 2009. Read it here.

Here is the similar article for 2010.

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"/>