Forget MATLAB

Yep, forget it, use GNU Octave instead. For calculus 3, rather linear algebra and differential equations, there is a lab which requires the use of MATLAB to do things that can get ugly. One particular use is for Gaussian elimination for finding values of several variables that solve a set of equations.

Occasionally, a write up is required for certain parts of the problems completed in lab. Checking work previously done in lab when doing the write-up is always reassuring. Going back to the computer lab is not convenient, and the 200USD that it costs for a student license of MATLAB can go to better use. That’s where GNU Octave comes in; it’s GNU’s MATLAB replacement that accepts nearly all of MATLAB’s commands. For Gaussian elimination, Octave sure beats writing a PHP script to do it (which I did on Monday).

On a side note, getting Aptana to work on Gentoo is fairly painless, though its installation doesn’t comply with the Gentoo philosophy. Maybe when it comes out of beta I’ll help get it into portage. I’ve also written a simple bash script for loading Aptana, which will be available in the tools section on this site once I figure out exactly where Aptana’s files should go to be consistent with Gentoo’s installation methods. Since at the U of M they don’t automatically load the modules necessary to run MATLAB at login, and the matlab command doesn’t do it automatically I’ve written a simple bash script that should take care of this. It’s available for download in the tools section.

-John Havlik

[end of transmission, stay tuned]

Sammy’s Banished

Sammy Kamkar, the one who over a year ago unleashed an exploit on MySpace that caused anyone who viewed his profile, or his friends’ profiles to automatically request to be his friend. MySpace filed a civil suit against Kamkar, who plead guilty and is now banished from the Internet for a classified amount of time. The plaintiffs claimed that they are “committed to protecting our community from any abusive misuse of the site.”

Frankly, after reviewing the code and reading the explanation of his method, the hack only worked for IE and certain versions of Safari. In reality the exploit was of both the browsers and MySpace, his code should never have executed in the browsers. News Corp. should go after Microsoft as they are equally responsible for this exploit. Regardless, it’ll be interesting to see how they will go about keeping him off the Internet.

In other news, Boston needs to get a brain. Overreacting to the ten or so PCBs with LEDs attached and a black plastic bag protecting the batteries was idiocy. If the police can’t tell the difference between a bomb and a LED sign, how are they supposed to do their job? Seriously the media needs to stop spreading misinformation and disinformation before the people revolt against them, oh wait that’s already about to happen (the Internet, YouTube, p2p, etc).

-John Havlik

[end of transmission, stay tuned]

Not Tonight

It won’t happen tonight, or tomorrow.
Not tomorrow night, or the next.
Not next week, month, year.
Not now.

It will happen when it does,
When it has matured,
When it’s complete,
When it arrives.

Do not fret nonetheless,
I promise it shall come to pass.
Just not now,
Not tonight.

-John Havlik

[end of transmission, stay tuned]

Tagged:
Updated:

Finally, Some Success

Over the last few days, I’ve attempted to solve a bug relating to WordPress’ behavior of pinging the PRC services even on drafts and edits. There is a plug-in for resolving this. But, if the user doesn’t have this plug-in, the result is multiple entries of the same thing on the Updated Blogs section of the new Weblogs.us site.

However, if the article URI is the same as some previous URI in the database the ping can be ignored (no need to go out and fetch the RSS feed). Now that this works, I will test a few refinements, which will result in a slightly heavier load (possibly neutralized by sending less data) for the database server, to reduce the load greatly on the Apache/PHP server. After this optimization, I will continue writing the code for the listings system.

-John Havlik

[end of transmission, stay tuned]

Updated:

Why Standards Matter

Why Standards Matter: Part 1 of a quasi-treatise rant on web standards.

Standards are set of rules, or guidelines that dictate what everyone who they affect should comply with to provide the most uniform quality product available. Every industry has standards, including the internet. The only difference is the repercussions caused by ignoring these guidelines. In most industries if a company doesn’t follow a standard typically a regulating body will fine or even shut down the location. Or, even worse, the customers may stop purchasing the company’s products, granted that the consumer is intelligent enough to carry out such actions. Many industries are pressured to follow the guidelines approved by the International Standards Organization, that’s where the ISO 9001 comes from, or .ISO for disk images. For the internet, there is the World Wide Web Consortium.

The W3C writes and maintains the specifications for HTML, xHTML, CSS, DOM, XML and a variety of others. Standards for the web are needed due to the mammoth number of individuals (some intellectuals, others may as well live in a zoo) that write code that interacts with an end user through the web. This includes everyone that writes a webpage, to those working on Mozilla Firefox. Because no two individuals are alike, typically people will have different opinions and ideas on how a particular object should be represented. In web browsers this resulted in Microsoft Internet Explorer rendering a HTML document differently than Mozilla Firefox, or KDE Konqueror. Instead of coding a website once, and displaying correctly on every web browser, the developer has to test on several and work out any ‘bugs’ due to rendering discrepancies. As humans are inherently lazy creatures, many individuals met and formed the W3C to alleviate this situation by laying a common framework for everyone to work off of. Standards are great, when everyone follows them to the ‘t’. Otherwise, once egos, or other forces cause one individual to stray from the standards unforeseen consequences may result.

Picture little Jimmy, he’s enthusiastic about learning how to create his own web page, but doesn’t know how. As no one he knows, or would ask, knows about web programming, he’s never heard of the W3C. Now Jimmy isn’t by any means nerdy, and doesn’t have the time to search Google for a good tutorial (and read it) on web programming. So what does Jimmy do? He views the source code of his favorite web site. What happens if this site doesn’t adhere strictly to the standards laid out by the W3C? Instead of only one non-compliant webpage, there are now two, and if Jimmy likes web programming there could be many more until he learns better. Jimmy may never learn, and that’s because the rendering of his pages only matters for his favorite browser (most likely Internet Explorer). From now on one will refer to this as the ‘Jimmy dilemma’.

The ‘Jimmy dilemma’ gets worse, as even with complete compliance with web standards, Jimmy may still end up mimicking a website incorrectly, creating invalid code. As for every educated web programmer in the world, there are 10 Jimmies. Only one practical solution exists to alleviate this situation. Some may see this solution as a bit harsh, but its better than the alternatives. Ultimately what needs to happen is browsers must refuse to display a non-standards compliant webpage. Practicalities may render this difficult as Microsoft has in the past implemented features into Internet Explorer with no regard to established standards. If implemented correctly by all parties, a more practical approach than enforcing the other methods, this method is 100% effective. How so? Observe the ‘Jimmy dilemma’ once more. If Jimmy were to produce invalid code, the result would be a blank page. Even by ‘hacking’ his way through the creation of the page, for it to display at all it must be valid code. Jimmy will either become fluent in a standards compliant web language (xHTML 1.1) or will give up, leaving others to take his place. Remember that everyone was once in Jimmy shoes, and therefore comprehensive, and easy to understand tutorials should be made available by the web browser’s publisher. These tutorials should be in the spirit of the Creative Commons licenses. What one means by this is the W3C guidelines taken straight from their web site are difficult and time consuming to comprehend fully, akin to what the Creative Commons calls “Legal Code” (It used to be something like “Lawyer Speak” but that’s since changed.)

-John Havlik

[end of transmission, stay tuned]