Ocinine

Ocinine is our participation to a Channel 9 contest. Ocinine is the perfect name to understand what we want to do. Ocinine (read OC9) means 'Open channel 9'. Our goal is to make avalaible the media content of Channel 9 to any 'Host Application'. Follow us as we create the new way to see Channel 9.

2006/04/28

Shame on me!

It's been a week since last post...

I'm sorry, my coworker (the only guy who help me in my job) as some problem in his family. I'm so tired when I get home that I don't have head on Ocinine.

It's when you come in situation like this that you see the importance of a development process. I started the project with a methodology of my own (that means neer nothing). That's the reason Cromag can't do a lot of things on is own. I'm gonna corect this and we gonna re-start at full speed.

2006/04/20

Not so sure now...

I'm still trying to create our application. I was doing our nunit with the idea I've explain here. And now, I'm not really so sure about it...

I'm not sure that's the way you should do things not at all. I'm even thinking that is a bad way of doing things... I must explain why... You gonna see it's easy why. If you think about the three lines of code the developer should do it, that means you think for the end user. And THAT is wrong.

The other thing that bother me is the following thing. If the three lines force me to a bad design, I have to refactor it. How many time I have to do this to make a good design. Let me give you an example: Our application take the RSS feed of Ocinine to get the information we need. Everyone now that a feed have one channel and one or more item(each post). If (I don't know how) my three lines of code give me something that look like I need one or more channel and only one item, I'm gonna have a problem.

I know, your not that so stupid. How can three lines of code can make me do something like this? Thats not the point. I understand why they tell this (You should make thing simple for the developper) But I think now you should do the otherway. I think (after doing some of our unit test, and i'm a developper to with another framework) That we really should start with the core of our Application and do a "spiral" around youre core class. Doing this, you could really finish some part of your app.

If you start with the finishing three lines, how can you tell when your application is finish? Is it when your three lines of code are working? You could do better then that. If you need to had some new stuff, what do you do? Write three other lines or change your first ones? If your new stuff create a bug in the old lines, what do you do?

Thats why I think you should first design the core of your application and then, write the three lines the developper will have to write.

Oh, I even have a better way then that, never write the line the developper gonna need. That's the concept of all new Java Framework (Spring, hibernate, JSF). The developper should do it's code like your framework doesn't exist. I see it with Nunit you only have to write a [Test] before your function and pouf, it's done. But to change from a three line of code to an annotation before the function, you better have the core of your application finish first.

Please, WRITE (you're our developper after all) what you think about this....

2006/04/16

Starting by the end ?!?

I found a presentation today on how to Designing .NET Class Libraries After I read it and Listen to the video, I'm asking me a lot of question. The Instructor tell three phrase that make perplexed :
Write the three lines of code developper will have to write, then model the APIs around making that possible.

One of the reason I take part in this contest it's about the things I'm gonna learn in doing it (The firs one is that I always wanted to do something with Cromag).

If we don't win or even, if we don't finish the project. I think i've found the best thing i'm gonna learn in all this adventure. I come from a Javaworld (did I tell you? lol), Thinking in OO is something I do frequently, but I think i never stop to think about how the end user is gonna use my API. I think its one of the consequence to always have the same targeted audience. (My co-worker). I never think my code could go outside our own environment.

That's so basic, and so true that I didn't think about it. If you think in XP, it should be the first rule of all.

So, I think I didn't see the start of our application the good way. I was starting by the OcinineManager, maybe I should start with the Host. Doing this, it become easy to split the job with Cromag. One could work with the core, the other with the host...

Gonna think more about it!

Oh, and by the way, Happy Easter!