September 3, 2012
My Horrible Website
So, a friend of mine posted on reddit the anouncement of Jill.js. More or less, today's post is about how I handle constructive criticism.
One person claimed that in another post I was spreading FUD (Fear Uncertainty and Doubt) about Adobe's Create.js. The truth is that if it walks like a duck, and it talks like a duck, it's a duck. Adobe is a software company after all. Much like Microsoft or Oracle. While I would certainly not mind working for such a company someday, what people forget is that a company like Adobe won't just give out free software, not with out a catch and a three page EULA (End User License Agreement) that most people won't read. It also took Adobe a good two years, around 2005, to rewrite the Adobe Flash plug-in for browsers to accomodate UNIX and Linux users which was really unnecessary because the previous version of the Flash plug-in worked just fine until the released the new version for Windows and Mac and should have been planned out such that an existing version of Flash would handle Flash until the new version was released on all platforms. So if I sound a little biased about Adobe regarding that issue, it is with a good reason. Clearly, some folks at Apple and Google feel the same way as they've been pushing for HTML5 Canvas to replace Flash and integrating their own software to read PDFs without Adobe Reader.
Another person, most likely a troll (who I will speak of later in this post), made a statement about how there was no syntax highlighting in some of the examples on my website. It sounds like an interesting project. One that I would certainly like to develop my own version if I had the time. From what I can tell, there is a bit of XML work involved in that because from my experience I haven't seen such syntax parsing done in CSS. Although this code example posted on the same group looks interesting. As ornery as I seem, I like to develop a lot of things through my own research. If there is something everyone is using, like jQuery, and it is compatible with what I have to work with, I will use it. (Likewise, my lack of interest in using ASP.Net or Active Directory when I have had much success using Linux, PHP, and Apache.)
Finally, someone claimed that I've made one line of code into three lines of code with Jill.js. I assume this is in reference to the code examples I used in the past couple of posts. Because of the currently narrow layout of the site, I broke the code down into smaller parts. But consider this, I didn't make a mountain out of a mole hill. Instead, I've made it possible to make more than one mole hill in the same area! Seriously!
You saw yesterday's post. Without Jill, there would have been no way to post three separate canvas's in the same posts or even in the same webpage for that matter. (Which reminds me, I should look through some of my older posts and modify the canvas code which uses the old method.) Jill make is possible to have multiple instances of canvas code embedded int a webpage. You can't even do that with SVG without some PHP backend converting it into a PNG like on Wikipedia. So, have I made my code obfucated? Not without a good reason. If he had taken the time to notice, he could use one of those lines in his own project several times in the page. And that is why it was important.
Canvas by itself was not very object-oriented. It may have been written in JavaScript, but there is one thing that even my own library couldn't eliminate: having an instance of the context as an argument or an object. In my code, getContext
which is initiated commonly in HTML5 Canvas ans a object named ctx
is used as an argument. Perhaps the enlightenment as to how to make ctx
disappear and just be used in the execution function putIn
much like the callback function used for drawing the thing I want to draw hasn't dawned on me yet. What I do know is that it works and it works so much better than it did without Jill tidying up the code.
So how can I prove that Jill makes more sense than Canvas and jQuery separately? How about another programming example.
I wanted to make I more Evangelion like with the theme someone made for Android eariler this year, but since I run "a horrible website" according to Reddit user mplindhout, I don't think I want to share that version just yet. Especially since I can't compete with having the best page in the universe. To "mplindhout", I'm sorry I can't be as talented or as gifted as you. I'm also sorry you don't have a website to show off your "amazing skills", if you had any.
To everyone else, I appreciate constructive criticism. And I appreciate the good and the bad, so as long as the bad isn't some complaint about how I don't have a stylesheet yet that can color-code the code source examples. You can always learn how to read code like a programmer. But that's why I'm here in the first place. To explain how it all works will out using crayons.
At any rate, I'm looking forward to doing some more canvas stuff. I might just scrub Project Evan since events and animation seem to be easy to understand and jQuery makes a good set of syntax. On the other hand, it would be nice to create some text buttons or hot spots inside of canvases rather than just clicking anywhere to make stuff happen.
Good programming is a learning process in which if you don't learn how things work, how will you ever learn to do them on your own.