Skip to content

Putting TOSP in S4 state

July 23, 2013

Okay, it’s bad news time.

For many months now, I’ve had a really hard time getting enough stuff done in my life, and pushing TOSP forward in particular. I really haven’t been fully satisfied about anything I’ve done in this project for more than 2 years now. It’s not that I lack the ideas, rather that I can’t find a good method to implement them properly. Or allocate enough time to that method. I can’t tell, because it’s a vicious circle: the least things move, the least I feel motivated to push them forward. Trying a new approach brings some extra excitement, but it only lasts for so long…

The core postulate of this project is that the design of current desktop OSs leave much to be desired, and that one could do better with a little bit of effort, and a lot less legacy. But it appears that I either can’t bring the necessary effort, or don’t have enough software development experience to do it efficiently. So I think it’s better to put an end to this instead of leaving this project rot, for now at least. Perhaps I’ll get back to this later, once I have a few more successful medium-large software projects on my back, or when I mysteriously get a lot more spare time on my hands. For now, I want to focus on those “simpler” things in my life, those I’m pretty sure I’m able to sort out, but which for now scream for extra allocated time. Like finding a way to have my lab offer me a trip to Japan in the name of the almighty Science.

Many thanks to those few who followed the TOSP adventure, in any case. Especially to those who left lots of insightful comments on my design posts. If anyone feels like continuing where I stopped, he can feel free to drop me a mail at knights_of_ni AT gmx DOT com, and we’ll discuss that matter a bit more.

But for now… Au revoir!

About these ads

From → OS development

4 Comments
  1. Alfman permalink

    That’s it then, eh?

    Well, I’ve been down this road. I do understand the difficulty in keeping up with a hobbyist project like this, It takes up so much time and there may not be sufficient justification (in terms of either economic motivation or “satisfaction”) to stay the course.

    It used to be that an OS only needed to be “PC compatible” and have drivers for the defacto hardware standards like ps/2, vesa, sound blaster, ne2k, etc. A one man team could realistically write a generic functioning OS. Today it’s immensely difficult to get widely usable results with an amateur OS due to the diversification of hardware interfaces, even a functioning USB peripheral stack is a nightmare, it’s enough for anybody of any skill level to lose hope.

    What is most unfortunate is that the established OSes today are locked in their designs and philosophy, meanwhile new OS ideas/implementations don’t get a fair shot (ie microkernels, modern languages) even though they theoretically could make for better & more reliable platforms on modern systems.

    I find it peculiar that you brought your software development experience into question. Indeed I found it odd that your latest posts have been focusing on project management issues, but I read that as a motivational issue. I was under the impression that your technical skills were ok, I guess I’m curious what difference do you think more software experience would have made?

    In the future, I recommend a top priority should be actively getting more team members on board. Not only does this help you delegate work, but it’s good for your own moral too. Of course this is easier said than done esp. when you don’t have the means to pay anyone. Take the opportunity to collaborate with capable and like-minded people while you are still at university, because once you leave those opportunities dry up especially as they start having families.

    Of course, if your interested I welcome you to help me with some projects :)

  2. Well, I’ve been down this road. I do understand the difficulty in keeping up with a hobbyist project like this, It takes up so much time and there may not be sufficient justification (in terms of either economic motivation or “satisfaction”) to stay the course.

    It used to be that an OS only needed to be “PC compatible” and have drivers for the defacto hardware standards like ps/2, vesa, sound blaster, ne2k, etc. A one man team could realistically write a generic functioning OS. Today it’s immensely difficult to get widely usable results with an amateur OS due to the diversification of hardware interfaces, even a functioning USB peripheral stack is a nightmare, it’s enough for anybody of any skill level to lose hope.

    Well, my plan was to avoid this issue by first writing something that’s fully functional on top of a virtual machine or standard hardware abstractions, make it good enough, and then attract more people with that “overview” of things to come. As far as I can’t tell, that’s the most reasonable path, and it’s not totally far-fetched either. Unfortunately, I didn’t make it this far.

    I find it peculiar that you brought your software development experience into question. Indeed I found it odd that your latest posts have been focusing on project management issues, but I read that as a motivational issue. I was under the impression that your technical skills were ok, I guess I’m curious what difference do you think more software experience would have made?

    Part of it was a motivation problem, but the reason why this problem existed at all was that thing didn’t move forward anymore. Like everyone else, I need progress, even little things, to keep moving forward. At some point, this “project is stalled” observation surely became a self-fulfilling prophecy, but I wonder what caused it to begin with.

    So looking back, it seems to me that the first “red flag” was when I wrote my memory manager as three large code monoliths (a few thousands lines of code large if memory serves me well), and then decided that in the name of good coding practices, I should suddenly start solely doing a number of time-consuming things which I didn’t like much, like writing a full test suite for my memory manager or lots of documentation. That kind of killed my will to write code, and then, when real life came in and reclaimed more time, I wasn’t so relucant to give in. After that, it was hard to get back on track, no matter how I tried.

    This was, in my view, an example of an experience problem, because if I were to do this again, there is a number of things which I would have done differently, perhaps changing the course of events:

    1. I would not let myself work on code modules that can’t be declared complete until they are several kLOC large. That was a mistake, because it kills visibility on how things are going, giving the impression that they’re not moving forward. Instead, I’d take a much more modular approach, splitting the core problem into multiple smaller ones that can be solved independently in a week or less.
    2. I would not let a boring task like testing grow like a pile of dirty dishes until I really have to do it. Instead, I would design code to be testable from the get go, and integrate testing into everyday development. I’m currently experimenting with TDD on small projects, and if it works well, I’ll try it with larger ones.
    3. As for documentation, I would find a way to automate it more. Most noticeably, I’d take a good look at in-code documentation systems like Doxygen, to see if they can be used without making the underlying code totally unreadable. Keeping documentation in sync with the code manually was tiring and inefficient, and having to move it manually from Sourceforge to Github only highlighted this fact even more

    More generally, I’d need to either plan things more, or design them so that planning can be done on the fly more easily. I prefer the second option, which is why I spent some time looking at agile project management, but you’re right that it was too late at this point, as I had already lost too much interest in the project.

    In the future, I recommend a top priority should be actively getting more team members on board. Not only does this help you delegate work, but it’s good for your own moral too. Of course this is easier said than done esp. when you don’t have the means to pay anyone. Take the opportunity to collaborate with capable and like-minded people while you are still at university, because once you leave those opportunities dry up especially as they start having families.

    An issue here is probably that I actually know few like-minded people. Part of the reason, I think, is that the French university system does a very good job at putting disciplinary boundaries between people: either you fit best in the “physicist”, or in the “computer scientist” box, but you have to make a choice. And once you have made this choice, you become quickly specialized in your realm and have a hard time finding and communicating with people of the neighbouring realms, unless you spend lots of effort doing so.

    Then again, as you said before, I could also actively look for OS geeks by exploring the various computer-related clubs and associations in my area. I don’t think I would be able allocate a sufficient time budget to that though.

    Of course, if your interested I welcome you to help me with some projects :)

    Well, just out of curiosity, what are you working on currently?

  3. Alfman permalink

    Neolander,

    Part of it was a motivation problem, but the reason why this problem existed at all was that thing didn’t move forward anymore. Like everyone else, I need progress, even little things, to keep moving forward. At some point, this “project is stalled” observation surely became a self-fulfilling prophecy, but I wonder what caused it to begin with.

    Even if you were making progress, it might have gotten dull after a while. I’m often inspired to take on projects, but all too often nobody else shares any interest in them and I ask myself what’s the point of putting all this work into something that no one’s going to end up using? I like having personal challenges, but I’d rather my work be useful in the end.

    An issue here is probably that I actually know few like-minded people. Part of the reason, I think, is that the French university system does a very good job at putting disciplinary boundaries between people: either you fit best in the “physicist”, or in the “computer scientist” box, but you have to make a choice.

    My experience at university was living in the dorms, and in that case we were surrounded by a great diversity of students whether or not we were in the same classes. At least half our courses were generic and not related to our major, but then this was as an undergrad student, so it’s probably different for post grad.

    I did work on some collaborative projects back then, but at the moment I’m also finding a scarcity of like-minded people, especially those who are willing to take on projects without employment. Many people at work have no intention or interest of working on anything outside of work, but then I must concede it’s difficult when they already allocate 60hrs/wk at work and have a family at home.

    For what’s it’s worth, I have enjoyed discussing technical matters with you.

    Well, just out of curiosity, what are you working on currently?

    This week I started working again with an old client, which is going to take up most of my time. But if you were asking about my side projects, I’m still working on the backups and data replication, I’m also selling dedicated/virtual server access in a datacenter. For fun, I’m talking to a friend about working on a structured search engine, and another one about building an autonomous vehicle out of a smart phone using some of the motion vector projects I worked on two years ago.

  4. Even if you were making progress, it might have gotten dull after a while. I’m often inspired to take on projects, but all too often nobody else shares any interest in them and I ask myself what’s the point of putting all this work into something that no one’s going to end up using? I like having personal challenges, but I’d rather my work be useful in the end.

    That’s true, one problem of OSdeving is how late in the development process one can actually show off stuff and attract other’s attentions and comments. Well, apart from theoretical consideration, but even these often have to discuss matters that won’t be worked on before years…

    What I’m currently considering for my next spare time development project is an interactive adventure game, in the spirit of “choose your own adventure” books. A lot has already been done in this area, though, especially in Japan within the realms of the “visual novel” genre, so I’ll have to spend some thought regarding how to make my own attempt unique and interesting. High school and local friends have been showing a significant amount of interest in this idea so far, so as soon as I have a working scenario edition/playback mechanism, it shouldn’t be too hard to get writing help :)

    My experience at university was living in the dorms, and in that case we were surrounded by a great diversity of students whether or not we were in the same classes. At least half our courses were generic and not related to our major, but then this was as an undergrad student, so it’s probably different for post grad.

    In France, depending on your path of studies, the disciplinary divide in classes can show up as early as during the first two years of college. However, I never got to live in dorms, as I lived at my parent’s as an undergrad, and then moved in a small flat during graduate studies. That might have helped.

    I did work on some collaborative projects back then, but at the moment I’m also finding a scarcity of like-minded people, especially those who are willing to take on projects without employment. Many people at work have no intention or interest of working on anything outside of work, but then I must concede it’s difficult when they already allocate 60hrs/wk at work and have a family at home.

    I guess the French habit of working 35 to 40 hours in a typical week surely helps with spare time activities, though most people I know of spend the extra hours doing sports, studying something, or practicing some artistic activity. I don’t know how some American webcomics writers manage to publish one strip a day while studying or working on something the rest of the time.

    For what’s it’s worth, I have enjoyed discussing technical matters with you.

    Same here ! No matter what I end up working on next, I’ll probably set up a development blog again and give the link to you, in case you’re interested : it was quite a fun experience putting development thoughts on virtual paper and discussing them with you and sometimes Brendan too.

    This week I started working again with an old client, which is going to take up most of my time. But if you were asking about my side projects, I’m still working on the backups and data replication

    Something like the peer-to-peer cross-backup idea which we discussed by mail a few months ago?

    , I’m also selling dedicated/virtual server access in a datacenter. For fun, I’m talking to a friend about working on a structured search engine, and another one about building an autonomous vehicle out of a smart phone using some of the motion vector projects I worked on two years ago.

    Now, that sounds about as crazy as building an OS ^^ How would it work?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.