I’m writing my own OS, intermission (updated)

Holly jumping Jesus … I just got my 15 minutes of shame/fame over the internet. I linked my “just write down what you’re thinking” blog post on dzone.com and somehow it got posted on Hacker News and from there … Shit just hit the fan. It seems that writing “I’m writing my own OS” as a blog title can be translated from “I have spare time, I want to try out new things” into “Fuck this shit, I’m going for a revolution!!!” 🙂 It’s time consuming to answer all the comments I’ve gained, so I’m writing this post as an answer to all of you.

Continue reading “I’m writing my own OS, intermission (updated)”

I’m writing my own OS, part 2 (updated)

I had a philosophical introduction previously about my idea of writing “My own OS”, now it’s time to do some real coding. In this part I’ll roll out a Master Boot Record (MBR), that will load a Kernel from disk (actually, I’m going to port an existing solution to Visual Studio environment). First i’ll start with some free fly philosophy, but there is a candy at the end of this post.

Continue reading “I’m writing my own OS, part 2 (updated)”

I’m writing my own OS

You might think I’m crazy, but I’m into this thing “Write your own OS”. I have some commercial ideas on how and why, but I’m willing to share my knowledge of what I’ve found so far. This is the first one in the series, as I’m currently researching stuff and wanted to write them down for others like me.

Continue reading “I’m writing my own OS”

Build your own CMS, part 1

Today I stumbled upon this really terrible example, of “How to create an admin panel”, it’s terrible in so many ways, that it made me cry. And yet it’s been posted on January 14th, 2012. I thought to my self, why don’t I share my knowledge in the field I’ve been working for the past 10 years. Not that it’s a rare topic, probably there are plenty of tutorials like this around the web, but for the sake of noting stuff down in a personal blog I’m going to do it.

Continue reading “Build your own CMS, part 1”

What’s wrong with jQuery UI?

In overall, jQuery and jQuery UI are really great. As for the former, and speaking purely in subjective terms, it’s the best thing that has happened to the web. But with great power comes great responsibility, so this post is about where jQuery UI team is making a mess.

First let’s talk about release cycle – it’s been almost two years since they announced the development of version 1.9, which would come with such a great tools as a menu and tooltip, but still no select-box (although the button element already can serve as a radio/checkbox replacement) . So for me it looks like the development is quite chaotical.

Continue reading “What’s wrong with jQuery UI?”

99 problems, but the web ain’t one.

I’ve been working in the web development for, what, 8-10 years now. I’ve seen it transition from Netscape to Internet Explorer standards, I’ve seen it done in tables and I was there when everything suddenly went into div soup. I’ve seen some nasty CSS cheats I was there on the advent of JavaScript frameworks – prototype, scriptaculous and jQuery. The last one I use today, and it’s a life savour, because JS ain’t the prettiest b**ch in the hood. 🙂

Problem No.1:

The browsers. Oh man, there are plenty of rants to tell about browsers. Don’t think that I’m a Google fanboy (I have an iPhone :D), but for now Chrome is the only browser that has gotten it’s s**t together – it’s fast, it’s standards compliant as hell (not 100%, but still sitting at the top of the charts). Firefox ain’t far from that, but it clearly can’t get it’s s**t together, as it’s consuming more RAM than Photoshop occasionally. And then there’s a little bastard named Internet Explorer – more like Internet Exploder (as it makes every developer a time-bomb, waiting to exploded in anger), as it’s slow, weakly complies with standards and it’s ugly as hell (which is not important in this article).

And what’s common in these browsers – they do not fully comply with the standards, they tend to do stuff their way. Oh wait, where have I seen this – oh right – C compilers – there’s a standard, but at the end everybody does stuff their way, missing some features, adding some features by them selves, and so on. Who’s the biggest mess in that field – Microsoft, as it still does not fully implement C99 standard (it’s like CSS2.1 and JavaScript 1.8 all over again).

Problem No.2:

CSS. Yes it’s cool, yes you can do cool s**t with it, and yes it’s a nightmare. No actually CSS itself isn’t, but the implementation in the browsers is – dear browser developers, stop being so lazy and fix those bugs and stop breaking the web.

But yes, the biggest problem of CSS still lays in the standard itself – box model. I’d like to introduce the guys who made this brilliant invention, with my baseball club. No really, once you implement something like that – you can throw width:100% out of the window and any floating/fluid layout with it. Why couldn’t you implement that the width of an element also includes the border and the padding? Why, what was the reason? What were the main points of doing so? I understand that setting width:auto and display:block does the trick, but what about height? Screwed here we are, as Yoda would say!

Problem No.3:

I’ve talked about this one for a while – JavaScript ain’t that friendly for the developer. I understand that it’s First-class Function language and it’s weakly/dynamically typed, etc. It also has a big flaw – there are two quiet different implementations of the language – the IE one and the other one (Mozilla, Google, etc.). Only thank’s to jQuery and alike I can do things quite easily, otherwise – it’s a nightmare. My proposal still stands – if any browser vendor is going to implement a new client-side language – be it ActionScript. I’m not afraid to call it JavaScript-done-properly or JavaScript 3.0. Standardized OOP approach – inheritance anyone can understand. Kinda strictly typed – weakly typed stuff is only for noobs, sorry to say that, but you have to get your s**t together by yourself – it will run faster, it will consume less memory, it will be much cleaner to read, it’s just the way to make everything more usable and easier to refactor. And yet you could still write a framework as jQuery to make things easier, only this time you could also check weather it’s a jQuery object or not 🙂

Conclusion

There are thing’s that are too late to change – box model, for example, as many of the sites nowdays rely on this standard feature, and the change could really break the web. But anyway there are things you can implement as a parallel solution, like a new client-side language or do the standards properly.

Dear web browser vendors…

… stop! I see you there upgrading a dead man (think ECMASscript.next) or even trying to replace it with some backwards compatible gibberish (think Google Dart). Let’s talk first…

So, yes, JavaScript is one hell-of-a pain-in-the-ass language, which is dynamically typed and then again not – think arrays and objects. It’s not OO, but yet you can do it – think anonymous functions and objects or functions within functions, ala funception :). The list might go on, and in overall it’s messy, not that easy to read and not that easy to maintain, not that easy to refactor and not at all easy to extend or build some modular systems, yet it’s specified by ECMAScript. Now JavaScript is not the only language conforming with the ECMAScript specifications, there is one more player on the field, it’s just running in it’s own VM for now and has it’s own community – ActionScript 3.0.

Why can’t you take this beautiful language, with full OOP support, events and anonymous functions and adapt it in to a web browser? I’m not saying you should implement the whole Flash framework as well, just the core classes and the syntax.

How it would conform with the web as we know it, you may ask. Well one of you has already implemented two different languages in one browser – Internet Explorer with VBScript and JScript. It would look like this for starters:

<script type="text/actionscript">
  package {
    import dom.*;
    class MyClass extends DOMDocument {
      public function MyClass(){
        super();
        addEventListener('onload', init);
      }
      private function init(e:DOMEvent):void {
        alert('we\'re done!');
      }
    }
  }
</script>

DOM events, dom classes, Xpath, everything you need to build a web. Built-in objects like: Date, Number, Array – they are already there in JavaScript. Take the syntax, add fully blown OOP, throw in some new classes like Mouse, MultiTouch, Browser (for example, for user agent information) etc. – do it as Macromedia did it when they created version 3 of ActionScript when the previous one was more like JavaScript. This is one of reasons why Flash will not die that soon – it has is it’s very well built language and frameworks (Flash and Flex).

How about performance – AS3 does it that well, because it’s compiled – the answer might lay in cache – do not cache plain source files, cache bytecode, cache compiled source – for faster execution.

And finally – for the love of god, do this thing together. Yes I know I’m trying to ask for the impossible in this corporate world, but then again – you did well with HTML5. 🙂

And again, if you have some pros or cons on this subject, let’s discuss it in comments section.

Sincerely yours,
Gusts

Math, oscillators and C (Updated)

So I’ve been working on my own VSTi for some time.

So I’ve been working on my own VSTi for some time. It’s a hobby project, and I’m not thinking about releasing it to public (only as Freeware synth, as the VST SDK license does not allow me to publish the source). It’s one of those projects where you use your knowledge in programming with some hobby you have. My hobby is music, see here:

I’m also a software/web developer and my knowledge in languages are ranging from BASIC to C/C++ and from JavaScript to Java and of course PHP.

So this post is more like a question for an advice of fellow developers.

Continue reading “Math, oscillators and C (Updated)”

JavaScript objects My way

This is not a tutorial and I do not take full responsibility for the theory written here, this is just a post for myself, so that I don’t forget 🙂

You’ve probably worked with some OOP language in the past. You probably know how the typical syntax of OOP looks in any language (well in the most popular ones at least) . It looks something like this:

class MyClass {
  // The constructor
  public function MyClass(){

  }
  // Some private method
  private function _someFunction(){

  }
}

Well JavaScript is one kind of a different beast.

Continue reading “JavaScript objects My way”