2013-07-30

Weekly update MS04x28

No update.

Well, I was working on digitally signing documents that I wanted to do for our book-keeping app. And all I can say is that solution for that is unnecessarily overengineered. Why?

  1. XAdES is a way to have digital singature of any xml document. Fine with that. It protects against modifying data in sent document, timestamp, signature itself etc. If you modify (almost) anything in document to be sent, it will fail veritifaction. So that's good, right? Well... It doesn't give any extra security and as documents that are sent are just info about tax being paid and such stuff, no one may care about it that much. Timestamp? (that is part of XAdES BES, not pure XAdES) What for? You can put anything you want there and only if someone would like to modify it, it would be impossible. But in the end, only thing that matters is when it came to the system.
  2. My second issue related to XAdES is that it is standard, right? And there is no easy out-of-the-box solution for it. There are classes in .NET that allow signing documents but they are dead end and what you really want, is to go through XAdES documentation, learn a little bit about crypting and write your own implementation. For something that should already have open source, available to anyone implementation. Why do I think so? Because lots of people will waste their time on doing exactly same thing. There are strict rules that you have to follow. Input and output are defined (well, without some omitable details, like form of some "id" tags) and everyone that will be implementing that, will waste their time. Even if that would be just one hour. It took my few hours, but I haven't done anything like that before. It would work as a charm if only...
  3. Actual digital signatures. I knew a little bit about RSA keys and cryptography in general. And I though that if you have proper certificate installed on your machine, there are tools, libraries and stuff to make it possible to use that key/certificate to sign any data. Without accessing any data inside that key/certificate. To make key/certificate work as kind of service and make it harder to abuse it. Right? No. Keys and certificates that you can access using simple methods are useless in real world according to some people. Just having RSA key generated is not enough and I'm partially right about that. You can easily copy private key and abuse it. That's why private keys are stored on devices (like you wouldn't be able to copy it from there) or on other computers and you only send data there to be signed. That's fine right? But what about implementing all those various solutions? From what I could find withing given time frame - there is no information how that can be done or even if it should be done like that. I really thought that there is some API that is part of OS, that you tell to sign some data and it is done by stuff installed to OS. And maybe there is something like that, but I couldn't find it. Diversity is good but when it is controlled a little bit, when there is common ground and you don't have to handle everything separately. Then it may be disastrous.
  4. And most annoying thing about that is after initial boom for digital signature, our government decided to make it easier for people to sign their tax forms and more of them can be signed using data from previous years. You just put at the end of document information about how much have you paid one or two years ago. Why did they do that? I'd say that they've seen that there are more problems with current system (XAdES + various solutions to compute signature) than benefits. I'd say that they could centralise signing system but then someone (well I know exactly which company that would be) would win the contract and we would have to wait couple of years for it to work properly. On the other hand, digital signature market is not so open, as you have to be certified and you need to comply to various requirements. And... some companies are withdrawing now from providing digital signature.
That's it. I will continue working on digital signature quite soon, although I'd like to do sending invoices in PDF format by e-mail, but now I want to do few things for Dragontorc. Finish simple travel system and finish this milestone. And start porting to C++.

2013-07-22

Weekly update MS04x27

Alright! Many new ideas. Big and small ones that I write down every day.

I did some more work on travel system - I added hubs and "empty" travel. I wanted to do simple travel last week but during weekend I haven't done anything (well I worked a little bit on book-keeping app and idea of creating standard and requiring everyone to implement same thing, instead of providing general solution as open source code is just something that I will never understand). And before weekend I added filling rectangles for foreground/background/horizon planes. Now, even though they share same pieces, by using different colour forest and castle look and feel different. I also fixed few minor things.

Tomorrow I am going to court and I thought about doing some coding today, but I'd prefer to relax now.

What are my plans? Create simple travel and do everything that is required to be able to add forest. And then add forest itself. After that I should finish this Milestone. Then I will start porting to C++. This may take some time but as I already wrote, this will speed up things and give more options in future. And I will be able to fix some things - rename some, reorganise, etc. Why? Because I just can't have too many "event" things ;) And there are few more. And some spelling mistakes.

2013-07-15

Weekly update MS04x26

I implemented travel system, but I want to change few things within it. At the moment there are travel regions with places inside. Each place contains rooms. Any room may have travel links. And travel links connect to other travel links by means of travel routes. I first wanted to keep it this way and add extra functionality if there are more travel routes for one travel link, but decided to keep it more flexible and add travel hubs. This is plan for next week. As well as adding simple travel (based on original games). Somewhere in future I'd like to add cutscenes, tunnel travel (with rendering similar to one that was in Narco Police) and few other travel systems.

What else have I done during past week?

Finally there is player class that handles input and rendering and I want to remove all "debug" methods that are now used to handle input. Player class is also connected to how adventure is advanced, allowing just one place to be advanced at same time (which will change to advance other places sometimes, less and less and then stop advancing them at all).

I also reorganised few things within modules, as there was some mess and projectile modules were initiated in different manner that object (actor/item/servant) ones.

And I had few other things that were drawing me away from this. Last weekend I was writing down transcripts from video that I plan to use in court. Which means that next weekend I will be preparing myself for And this weekend I will be preparing for trial.

2013-07-07

Weekly update MS04x25

I started to work on travel system, although big part of that time was spent on thinking what do I need and how to organise things. But as everything I wanted, I have designed, I am going to implement one variant of travel (similar to one used in original game) without UI that might be optional and more useful in other variants.

Travel system might be also used for streaming or on-fly generation of world. But this is some optional future feature.

Ok, this is going slowly sometimes, but still - every day I write something for Dragontorc, I realise that I am working on it for more than two years and I still want to work on it and finish it. And every, even smallest thing, makes me closer. Yes, there are some things that were unforeseen, but most of them are just details.

2013-07-01

Weekly update MS04x24

I've finished working on vertical doors today. I couldn't do much in last two weeks and most of work was done during this weekend. And few hours I spend on finding some crashes and asserts. And it makes me want to switch to C++ more and more.

Word about vertical doors. At the moment I haven't done doors that open and I probably won't as just holes in ground is enough. One huge improvement from original games is that it isn't enough to touch hole to fall into it. As soon as character stops over hole, it will be sucked into it and slowly move down for a while. This should help to prevent situations in which someone didn't plan to enter hole. And it works fine now.

For this milestone I planned travel system but before I do that, I want to add some shadows first.

But before I do that, I have to do few things with other app that are in my backlog for way too long :/