HTML Purifier 2.0.0 released
The developer of HTML Purifier has announced the release of HTML Purifier version 2.0.0.
According to the HTML Purifier web site:
HTML Purifier is a standards-compliant HTML filter library written in PHP. HTML Purifier will not only remove all malicious code (better known as XSS) with a thoroughly audited, secure yet permissive whitelist, it will also make sure your documents are standards compliant, something only achievable with a comprehensive knowledge of W3C's specifications. Tired of using BBCode due to the current landscape of deficient or insecure HTML filters? Have a WYSIWYG editor but never been able to use it? Looking for high-quality, standards-compliant, open-source components for that application you're building? HTML Purifier is for you!
The code base for this application is very elegent and the use of this application is blindingly simple yet astonishingly powerful. Anyone that develops any applications that allow user supplied markup should take a close look at HTML Purifier.
Choosing a coding tool
A question I hear a lot in various circles is 'What IDE/Editor do you use to code in?'. I have answered that question before, in several ways, but I thought that for anyone interested in taking up development, you might also be interested in someone else's opinion on various tools to get the job done.
Today I want to talk about coding. Writing code. Hard coding. When a developer develops, or codes, they are opening a blank canvas and putting down on to that canvas a series of instructions that will be interpreted by some piece of software to ultimately become what the developer wanted. Whether it is c++, PHP, HTML, XML, SQL or any other language, the fact is code is instruction, and those instructions must be clear, easy to follow, easy to understand and easy to write.
So when you look for the tool that you will spend most of your time in, your editor, find the tool that will meet your needs as a developer for the task at hand. Sometimes you may want to open a file really quick to make a fast change to it, then save it and run it. Other times you may need to write a fresh page from scratch that will be added to a project or collection of other code. Still, there are times when you will need to build an entire application. Each task has different requirements, and each set of requirements has different tools suited for the job.
To start, lets get the following list out of the way first: my favorites.
Please note: All of the editors in the above list are free to download and I believe are all open source. They are also all for the Windows environment (except Eclispe which will run anywhere the JRE is installed). For Linux (Fedora Core) I prefer gEdit and vi/vim. For Mac, I hear TextMate is really good.
Checking our list
Notepad2 — If all you want is a version of Windows Notepad that can highlight code and show you bracket matching, this application is your tool. It loads in a matter of seconds and is usable immediately. It has syntax highlighting, bracket matching and supports various types of languages. It also does not natively save everything as text.
On thing to watch out for... this editor does not support tabbbed editing.So if you are used to Ctrl-O to open a new file in a new tab, this is not your editor. It will open a new, blank document and close your previous document. This isn't always bad, and is actually a nice little feature of the editor once you get used to it. But get used to it quickly because it can throw you off.
Programmer's Notepad — This little application is one I recently stumbled upon and it has quickly become a favorite of mine. It is very flexible, very fast, supports all sorts of language syntax for highlighting and supports tabbed editing. It also has code folding, bracket matching, line numbering, current line highlighting and several other useful features. The one thing that does leave me wanting a little more is that when you close the editor and open it again, the tabs that were open when it was closed will open in a completely different (seemingly random) order than they were in when it was closed.
Also, some of the default settings of the editor need to be tweaked to make it useful, which is something I am really not into. But if you have three minutes to play with software, you will quickly find your way around its intuitive interface and be able to make it yours really quick.
When I need a lightweight and quick, but powerful, editor, Programmer's Notepad is what I use.
Notepad++ — This editor quickly became my favorite and has been a staple of my arsenal of tools since I found it. I will always have this application open on at least one machine at any given time. It is fast, lightweight, supports all sorts of syntax highlighting (as well as custom language support) and supports tabbed editing to nth degree.
Notepad++ will also allow you to test certain code execution inside the editor without having to compile it, and I believe it can hook into Apache to allow you to execute web application code right from the editor.
When it comes to small apps with big payoff, this is one that exceeds expectation. I highly recommend it to any developer, but especially to new developers.
PSPad — This little application is a powerhouse disguised as an editor. It is as close to an IDE (Integrated Development Environment) as you can get without getting an IDE. It supports all of the features of the previously listed editors, but also has support for projects, a code browser, a file browser, an FTP manager for remote file editing as well as several other neat features designed to make a developers life in the chair a little easier to swallow.
I use PSPad at least once a day, but usually it is more than that. For PHP development, it has a neat PHP default plugin that has all the PHP functions in it that will allow code complete using Ctrl-spacebar. It has a clean, easy to use interface and a huge selection of additional, web specific development tools as well, like a web server setting and database server setting. The one thing that irks, just a pinch, is sometimes the app gets weird and starts doing things that are unfixable in the editing session and require the app to restart, like a cursor position bug that puts the cursor almost anywhere it wants to go, a relapse of undo that causes changes that were made to be lost in the undo buffer, entire sections of the editing window going blank. Yes, they are issues, and they are infrequent. But they can cause bigger headaches for those that are unprepared for it. However, I will still use it, and use it as often as I need a powerful, IDE-like tool for coding.
Eclipse — This IDE blows all other IDE's out of the water, in my opinion. It is an actively supported project that has active support and development from many other languages that plug in to it. Though originally developed for the Java development community, it has been adapted to suit the needs of almost any development genre. It does everything you would want an IDE to do and with the pluging available for it, does a lot more. It supports code control through the Subversion plugin (I think there is one for CVS as well), it supports database connections with a database browser, it has automatic updates or schedule updates, it has a clean easy to use interface and it totally cross platform compatible.
If there is one gripe I might have with Eclipse, it would be the loading time. It runs on top of Java (which means no installation is necessary) but, because of that, it takes a long time to load and has been known to get really slow with extended use. That is it though.
My favorite feature of this IDE: it's price tag of $0. It does all the things you would expect from a Zend Studio or Visual Studio, and does it with not cost to you. It is an easy download, has easy extraction of the files, is easy to set up and even easier to use.
If you are looking to develop an application or framework or other large code base that is best kept in a project format, this is the editor to use. It is not lightweight or fast in any capacity, but it is a work horse that will suit any large scale development need you might have.
Wrap up
I hope this little article has been somewhat helpful to you. In my years of coding and looking for the best tools available to allow me the fastest application development possible, these tools have always been on the list (or at least as I have found them they have been). I personally would recommend any of these tools to any code developer of any type of code. And I can tell you from personal experience that these are all very good tools for any developer at any level.
Well, now that you have a run down on some pretty good tools, why not go get one (or five) and start coding!
Fricking Lowes
My dislike for Lowes grows stronger by the minute...
After going through the waiting for Lowes fiasco yesterday, I began to install my gas dryer because Lowes doesn't install gas appliances. Not that this is out of the ordinary. No appliance sellers install gas appliance from what I understand. But I thought that meant they would not connect the gas lines and such. What it really means is that they will put the dryer where you want it to go, then they will leave your house.
My washer was put together, the feet were installed and adjusted, the electric cable connected, the water lines connected, etc. My dryer, however, was still taped shut, feet still in their package inside the drum. I had to turn the dryer on its side to get the feet installed, then right the thing once again. Then, I tried to connect the exhaust tubing, which did not work because my house is old and there is no floor/wall flange to connect that tubing to, just another piece of according exhaust tubing. Have you ever tried to connect a 4" tube into another 4" tube? You guessed... it doesn't work.
So it was off to Home Depot to get a flange/flashing/fricking flare piece that I could use to connect to open ends of the same size tubing. I ended up settling for some weird elbow contraption that is not made for dryer vents but does serve the purpose. So I came home and connected the exhaust. Then I attempted to connect the gas line. And found out, very late in the game, that the gas line connector for my dryer was the wrong size. Of course, the one I bought was the one that the Lowes salesman told me to buy, which I did because he is supposed to know what he is selling, right?
Anyway, the long and short of it is that what should have taken me about half an hour to complete took almost three hours to complete. On Father's Day no less. So now I'm tired. And grumpy. And sweaty funky. But I do have this cool new washer and dryer set up that I can clean my clothes is.
EDIT | Ok, this washer dryer combo is awesome. Just dried two loads of wet clothes in 20 minutes and washed three hampers of laundry in one load, in 35 minutes, with about a gallon of water. I like the machines. A lot. But I still don't like Lowes.
Going on a date after waiting for Lowes
Craptastic. Do you want the good or the bad first?
Ok, the good first. Tonight I get to go on a date with my wife. I have had this date planned for two months now (actually, a little over two months, but both ticketmaster and the venue wouldn't release tickets until April 15). We are going to the Mountain Winery to have dinner and attend a concert by Ottmar Liebert. I am so looking forward to having a night with my wife that I can hardly contain myself. This is going to be awesome, if we can get past the bad...
I bought a new washer and dryer last night. They the high efficiency jobs that clean clothes with like 3 ounces of water and dry them in 10 seconds. And as part of the purchased I bought delivery for this morning (between 8:00 AM and 12:00 PM). Well, as of 12:45 they were not here. Not only that, I didn't even get a phone call. So I called Lowes and after playing hold tag with the customer service girl for 20 cycles, actually got connected to a manager who told me that the merchandise I bought had been loaded for deliver this morning but she could not see anything else about the delivery. She told me she would call me back with more information as soon as she knew more.
A few minutes later I got a call from the delivery guy telling me they had a heck of a morning, and circumstances being what they were, he would be here about 2:30. Well, given that we had a concert tonight and there were things I wanted to do for my wife, like take her shopping for an outfit or get her nails done, I was now stuck in my home waiting for this darn delivery. I also needed to get my haircut, so a few minutes ago I called them and told them to switch the delivery date until tomorrow because we were not going to be available after 3:00.
EDIT - After I called Lowes and told them to reschedule the delivery, the deliver guys showed up at the house and dropped off our new equipment. I haven't had a chance to play with them yet, but they sure are pretty. I also need to get the gas line hooked up, but that should be easy enough. Anyway, its off to a concert for me and my honey. Talk at you later.
Round like a globe
My daughter Adrianna and I were talking yesterday during my morning shave and somehow ended up on the topic of me loosing my hair. I am going bald and not liking it one bit.
Anyhow, as we talked I thought I would be cute and mention that if I go bald my head would look like a globe, and the kids would be able to use it for geography, drawing the United States or other maps on my globe. My daughter replied with:
Your head doesn't look like a globe daddy. Your tummy does though.
That was funny. For a second. Then it was hurtful. For a lot longer. I know she didn't mean to hurt me. She never does. But it stung a bit. And if that wasn't enough, she made it painfully clear to me that a six year old can have a profound level of common sense a second later when she added:
But if you eat less and your tummy won't look like a globe.
Ok, how does she get it and I don't? Oh yeah, that's right. It's because I am the grown up daddy that knows everything. Man, if only I could be six again, if for nothing else then for being able to dress how I want and know things just because they are sensible to know.
Thank you Annah. Our time together this morning made me smile.