Java Everywhere
Tuesday, January 27, 2009
A rare opportunity for you to meet James Gosling @ Sun Tech Days 09.
| | |
|
Monday, January 26, 2009
A new PHP IDE rolls into town - NetBeans
Was shocked the other day to hear that someone was using a certain IDE for PHP development. That IDE being Netbeans. If you haven’t ever used NetBeans it is an IDE project child of SUN and use to just be for Java development.
Looks like on the latest version (6.5) you get a whole slew of extra languages to develop in! Check out all the features of NetBeans 6.5 here. Now NetBeans supports (for Dynamic Languages) PHP, Ruby, JavaScript, Groovy, and Python. It also has support for many of the well know AJAX frameworks out there like my personal favorite jQuery. Oh it also has great HTML support.
This IDE has the makings of something great, it’s free, it supports the syntax of many languages. However is it better than the former PHP champ Zend IDE 5.5 (standalone)? Let’s compare the two.
Supported Languages: Zend has compatibility for PHP and HTML, and that is really it. It handles JavaScript ok, at least it’s useful for finding out whether or not I screwed up some brackets while using jQuery.
NetBeans on the other hand can handle a whole slew of languages from Java to C++ to many web-development languages. Netbeans +3.
Syntax Strictness: NetBeans could be stricter on the way it handles the PHP syntax. One thing I always really liked about Zend was when I tried typing a function name and I didn’t write the function yet or didn’t have it included into the file that the IDE gave me a bunch of shit about it. This helps you make sure you don’t have to wait until you debug it to figure you might have spelt it wrong or didn’t include it.
On the flip side NetBeans will throw the penalty flag if your HTML tags are out of order (ex:
FTP: One of Zend’s main drawing points for me was it’s awesome FTP support. You could set up a bunch of FTP accounts and be working off multiple servers, transferring files, the whole works. It was incredibly sweet.
NetBeans has FTP support, but you set it up for that project, which works just fine. However sometimes I would use Zend as a FTP program so I didn’t have to boot up FileZilla. Zends was just more robust, Zend +1.
Code Completion: Where would we be today without code completion? Honestly it can save you so much time. Zend would code complete everything everything automatically, it was simple and effective. It didn’t get in the way because they did it right.
NetBeans will code complete automatically on variables, but normally nothing else unless you pull a ctrl+space (at least on linux). I was really turned off by this when I started using it, but over the course of a week I realized how often I didn’t even need code completion. You’d be surprised how often you just don’t even think about it and type it out. I mean I know if I’m going to be typing mysql_fetch_array, I just type mysql and hit ctrl+space. I think this is really a horse a piece, and shouldn’t put my own preference into play. Tie NetBeans +1, Zend +1.
Debugging: Before I started using Zend I was using NuSphere PHP on Windows, which is very good, but pricey. Anyways, NuSphere’s debugging was awesome, Zends - well I never could get it to work at all from Linux. It never really bugged me too much because I’m so use to not using a debugger to debug, I know that sounds weird but I can do it.
NetBeans got the debugger working under Linux no problem, probably because when I tried to debug it told me where to go to set it up. Love it, I can debug just like I use to be able to do with the NuSphere IDE. NetBeans +1.
I could go on for a while but, NeBeans is the winner pretty hands down, it does much more better than Zend. Sure there’s a couple things here or there, but I had been using Zend for at least 6 months so some of that is a little personal bias.
There’s many neat extra features in NetBeans 6.5 but I’ll leave those to you to discover, just check it out. You don’t have to download everything, you can just download the PHP part, so if your using Ubuntu Linux (like me) don’t use apt-get (or aptitude) to get it as they may still have and older version in the repository, and it doesn’t come how you want it - just php.
Happy coding.
Tuesday, August 12, 2008
Monday, August 4, 2008
Thursday, July 3, 2008
Want 1440 X 900 on Intel VGA?
It seems Intel do not configure their driver to natively allow a resolution of 1440×900 (as well as other resolutions between 800×600 and the maximum supported resolution of 1680×1050). It seems this has also been a problem with other chipsets that Intel manufactures (from their 915 series upwards).
An inspection of the zip version of the driver (Intel provide 2 drivers, one in the form of a self extracting .exe and the other is a .zip file containing all the driver files) for my graphics controller
revealed that a file within the driver- igxp32.inf (a setup information file) would allow me to specify extra resolutions that could be used by the computer after the driver was installed. Opening this file in notepad, one section immediately caught my attention:
Within this section of igxp32.inf it appeared I could enable up to 5 extra resolutions for use within Windows display properties. The next line of the file has been commented by Intel:
HKR,, TotalDTDCount, %REG_DWORD%, 0 ; This shows number of DTDs to be used. ; 0–>Disable the feature.Well I wanted to enable all the resolutions I could, so I changed the 0 to a 5 like so:
HKR,, TotalDTDCount, %REG_DWORD%, 5 ; This shows number of DTDs to be used. ; 0–>Disable the feature.The next 5 lines within the file seemed to be the settings for the extra resolutions that would be added after this driver is installed. The first 4 had been set already to offer 1920×1080@60, 1920×1080@50, 1280×720@60 and 1280×720@50 resolutions. The last, 5th line had no
hexadecimal values, and the comment on the end of the setting was blank, so here is where I edited and added the resolution for the screen I was trying to get working. A quick Google of 1440×900@60 revealed the hex values for that resolution to be:
So I edited the 5th line to look like that above and saved the file. Upon un-installation of the old driver and installation of the newly modified driver, a quick delve into the settings in display properties revealed all 5 new resolutions selectable. I could now apply the 1440×900 resolution I wanted.
I believe that other Intel graphics drivers may have the setup information file named differently from igxp32.inf, but that they can all be modified in the same way.Sunday, June 29, 2008
Difference between setTimeout() or setInterval() - JavaScript
at first glance appear to be very similar. In fact many
people writing Javascript seem to be unaware of the
existance of one or the other of these two functions
because they write code that uses one function where
the other would have been far more appropriate. The
problem is that many of the descriptions of what these
two functions do don't highlight the difference
between them. The definitions appear identical in many
cases.
These two similar looking functions perform very differently. The setTimeout function delays for a specified time period and then triggers execution of a specified function. Once the function is triggered the setTimeout has finished. You can of course terminate the execution of the setTimeout before it triggers the function by using the clearTimeout function.
Often you will see setTimeout used at the end of a function to trigger another execution of the same function perhaps passing it different parameters. Where this is done the time from the first triggering of the function until te next will be the specified delay time plus the time taken to execute the function. Here is an example:
moreSnow();
function moreSnow() {
// content of moreSnow function
setTimeout("moreSnow()", speed);
}
The setInterval function also delays for a specified time before triggering the execution of a specific function. Where it differs is that after triggering that function the command doesn't complete. Instead it waits for the specified time again and then triggers the function again and continues to repeat this process of triggering the function at the specified intervals until either the web page is unloaded or the clearInterval function is called.
setInterval("moreSnow()", speed);
function moreSnow() {
// content of moreSnow function
}
Which of the two functions that you use depends on what you are trying to achieve. If different parameters need
to be passed to the function on each call or the content of the function decides whether or not to call itself again then setTimeout is the one to use. Where the function just needs triggering at regular intervals then the setInterval function may produce simpler code within the function particularly if it has multiple exit points.



