Archive for the ‘Web Development/Programming’ Category

Diagrams, diagrams, diagrams

Monday, November 16th, 2009

I’ve been sitting here for the last couple hours contemplating a program design in my head. (Actually, I’ve been contemplating this design for a month or so, but I really was putting some brain power into it for the last couple hours. Anyway…back to my point…) I have decided to start putting the ideas into some codified form in an effort to start documenting my code and designs better. In trying to figure out which diagrams to draw, I realized that it has been so long since I have done a formal diagram to formal standards that I have actually forgotten a lot of the minor notations. I’ve decided to go with UML, but I have forgotten the rules for using a filled in shape vs. an empty shape, not to mention all the line styles needed to convey relationships…GASP! Looks like tomorrow that I’m going to have to dust off the UML Distilled book laying around here somewhere.

It’s no wonder that I’ve forgotten a lot of these diagramming tools: Many of the clients I work for don’t have a clue what they’re looking at. For the last 4 years, I’ve been relying on text-based use cases because everybody, regardless of technical skill, can communicate with them. Frankly, I’ve gotten use to and comfortable with this format. There are some serious drawbacks to this though, namely the difficulty in seeing interactions between more than a couple modules at once. I seriously need some activity diagrams so I can start writing better test cases. I need to quit being such a Duct Tape Programmer. It’s quick, but it makes maintainability much harder than it has to be.

The best news is that free, open source diagramming tools are exponetially better now than they were just 4 years ago, so as soon as I acquaint myself with some of the formalities, I should be able to have my diagrams cranked out in no time.

Introducing Phind, a simple PHP script for finding foreign keys in MySQL tables

Tuesday, October 27th, 2009

For years, I have wanted a way to programatically find foreign keys in MySQL tables using PHP. After a lot of thought, I have written Phind. Phind basically consists of one function getForeignKeys() whose only parameter is the table name. If that table has foreign keys, Phind returns a multidimensional array containing an index for the key as the first index, and the part of the key as the second index.

My ultimate goal is to use Phind to create a PHP CRUD generator written entirely in PHP. That’ll probably be a long way off, though. I just don’t have time to sit down and finish something like that right now.

The source code for phind is here: Simply rename the file from phind.txt to phind.php when you save it. You can also go here to see Phind in action on a table in a database on my server named ‘contacts.’ Eventually, I will add more examples to the documentation included with the phind.php file, but for now, it’s sparse. However, I’m sure there are enough PHP guys who have been looking for a way to make sense of what foreign keys are in a table and where exactly they are pointing to.

I hope this helps somebody.

How to Fix Image Resizing Problem in the Arthemia WordPress Theme

Friday, July 31st, 2009

I downloaded the Free Arthemia Wordpress theme the other day to use with my students’ FBLA site. I really like how the theme looks like a professional newspaper like the New York Times as wells as how easy it is to add Headline and Featured stories just by assigning a category to them.

One thing I could get working was the images that show up with the Headline and Featured stories when you add the Image custom field to an article. The images would just show up as a red x. When I tried to view them in Firefox, I got the following error:

finfo_open(): Failed to load magic database at ‘/usr/share/misc/magic’.

After poking around on the Internet for a minute, I found that there are some files that PECL finfo uses to sniff out the MIME type of files. Apparently, the files are some sort of flat file database that holds, well, MIME types.  Luckily, I extrapolated a solution after seeing a workaround on a forum. If you’re using Arthemia Free Version 2 and are having the same problem getting your images to load, here’s all you must do.

Replace lines 216-220 of the /wp-content/themes/arthemia/scripts/timthumb.php with the following code:

$file_cmd = "file -ib  \"$file\"";
exec ($file_cmd, $exec_output);
$mime_type =  $exec_output[0];

That’s it! The only other thing you have to make sure to do to get your images to resize and show up properly is to put the absolute path to the images without your domain. So, in my case, I have an image whose full path is:

http://breathittfbla.com/wp-content/uploads/2009/07/foreman.jpg

To make it work, the value for the Image custom field has to be set to:

/wp-content/uploads/2009/07/foreman.jpg

After changing those lines of code and then putting the right file path in the Custom Field, Arthemia is resizing and displaying images in Headlines and Featured Stories without issue.  I hope this helps somebody!

WordPress Meta junkies: Use Headspace2

Sunday, July 12th, 2009

I haven’t been a Wordpress user very long, but I have found one plugin that eased a big issue with me: Good meta descriptions in Wordpress posts, categories, and archives. Out of the box, WordPress isn’t really equipped o use Excerpts as the Meta Description for a post. Enter Headspace2, which allows WP authors to edit Meta Descriptions to their heart’s content.

Solution to Deployment issue using Netbeans 6.5.1 and Tomcat 6.0.22 on OX 10.5.7

Thursday, June 25th, 2009

Somehow I always find myself in the middle of a very strange computer problem. This particular issue is a result of my wanting to learn to write JSP applications using Netbeans 6.5.1 with Tomcat 6.0.20. I don’t have time to do a full writeup, so here’s a nutshell version of the problem and my solution:

Problem

When I tried to use the Deploy option to push my Netbeans project to my Tomcat webapps folder, the deployment would fail. I could manually copy the .war file into my Tomcat webapps folder and everything would work fine. But, I thought, “Why should I have to do this if Netbeans is supposed to do it for me?”

Solution

Since I’m running OS X 10.5.7, I opened the Netbeans configuration file at

/Applications/NetBeans/NetBeans6.5.1.app/
Contents/Resources/NetBeans/etc/Netbeans.conf

and added the following to the netbeans_default_options line:

-J-Djava.io.tmpdir=/tmp

Note: This must be added within the double quotes. Also, I didn’t distrub anything that was on the line already but merely added that tidbit of code.

Explaination

I found this piece of advice buried deep in a forum. Apparently, Netbeans puts the deployed files into a temporary folder before deploying them. The temporary folder it tries to use on OS X isn’t accessible (a permissions problem I guess). Adding that snippet of code tells Netbeans to use the OS X default temporary folder tmp for its intermediate work.

Enjoy!

What to do if XAMPP for Windows won’t load anything under localhost

Sunday, December 3rd, 2006

I’ve used XAMPP for Windows on my laptop as a testing server for over a year with no problems. Today, though, I started the Apache and MySQL services as I have many times in the past only to find that both localhost and 127.0.0.1 did not work in my browser. Here’s some of the things I tried that did no good and some notable facts:

  1. I tried localhost:80 and 127.0.0.1:80 with no effect
  2. I disabled the Windows firewall. No dice.
  3. I uninstalled the Apache service. No change.
  4. I uninstalled/reinstalled XAMPP multiple times with multiple versions. No change.
  5. When I would put localhost in the browser, I did not receive a "Page cannot be found" error. Instead, the status bar would indicate "Waiting for localhost." I waited more than ten minutes to see if anything would happen at one point. Nothing did: The screen remained white.
  6. It didn’t matter what browser I used. IE, Firefox, and Opera all sat there and waited while nothing happened.
  7. I have made no system changes since the last time I ran XAMPP except for the regular barrage of Windows Updates.

While I don’t know exactly what broke my XAMPP installation, I can almost guarantee that a Windows Update killed it. I know Microsoft can’t keep every program under the sun from breaking with its updates, it could do a better job of telling you exactly what each update does without having to dig through 500 lines of the KB articles. Anyway…

I managed to fix the problem, as per this article posted in the Apache Friends forums. In the C:\program files\xampp\apache\bin\httpd.conf file, I added the following line:

Win32DisableAcceptEx

From the best I can tell, this has something to do with Apache’s interaction with Windows’ WinSock 2 API. I’d say some security update managed to fix a problem in WinSock but break Apache. It makes me feel really stupid that I don’t know exactly what caused the problem or exactly how the solution actually fixed it. I’m just glad everything is working now. I can actually get to work on the project I needed the server for in the first place.

What is the difference between “quirks mode” and “standards mode” in Firefox?

Thursday, December 29th, 2005

Go to http://www.webmasterworld.com/forum21/7975.htm for a great explanation of standards mode and quirks mode.