-
Diagrams, diagrams, diagrams
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.
-
To All the Veterans Out There…
Thank you. Being an American wouldn’t be possible without your willingness to risk life and limb to stand for the ideals of Democracy. God bless you!
-
Introducing Phind, a simple PHP script for finding foreign keys in MySQL tables
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.
-
A Welcome Old Feeling
Recently, I’ve been feeling something I haven’t felt in a really long time: A sense of excitement about technology. For the past 8 years or so, it seems as though innovation and competition in the tech industry has slowed to a trickle. Microsoft killed Netscape and left us with the dead Internet Explorer 6 code base for nearly seven years. In the wake of the ever-exciting browser wars, we’ were left with what felt like a wounded soldier with a wooden leg. Then, the wizards in Redmond heap Vista on us, which did absolutely nothing to excite me. (In fact, it lead to a great deal of screaming and renting of garments in the Smith household.) On the hardware front, Intel and NVidia thwarted the lackluster AMD/ATI combination. Sure, we got faster CPUs and GPUs out of ’em, but who cares…Speed does not equal more fun or innovation. What’s a geek to do?
Thankfully, there are plenty of reasons to celebrate these days. For the first time in a long time, nerds everywhere are buzzing about a choice of quality operating systems. Apple has done a great job continuously improving OS X, which, for my money, is very stable and user friendly at version 10.6. In the wake of Apple’s ever-improving market share in both the laptop and desktop segments, Microsoft has gotten its act together to bring us Windows 7. The interesting thing to me is that neither OS X 10.6 nor Windows 7 are revolutionary products. The improvements are small on both fronts, and at first glance, it seems as though the OS upgrades are nothing more than marketing fodder. But, in the midst of all this, it’s easy to tell that both Microsoft and Apple are seriously trying to one-up each other by making systems more stable and user friendly. In short, end users are being treated to the fruits of healthy market competition. (On top of the OSs that are here now, rumor has it Google is launching its own low-power OS soon!)
Even more exciting to me is that the browser wars are back. Thank God for Mozilla, which delivered the first stable version of Firefox in 2003 and hasn’t looked back since. Again, Microsoft had to wake up and do something. Out of this panic, we were treated to Internet Explorer versions 7 and 8, which actually do a pretty good job at following standards. But the fun doesn’t stop there: The WebKit folks have given us Safari and provided Google with the foundation it needed to launch Chrome. What we’re left with are fast, secure, standards-compliant browsers. And, more importantly to me, we have several choices in browsing for the first time in a long time!
There’s less to be excited about on the hardware front, but notebook makers are doing a great job making specialized laptops for just about any purpose. The buzzword soup actually has a lot of differentiated products behind it: notebooks, business-class, ultra-portables, netbooks, media stations, and desktop replacements. No matter what your personality or needs, there’s probably a sweet little portable out there to suit you.
To sum up, I’m simply pumped about all this competition. If I don’t like one thing, I can jump ship to another option. Now, if we can only keep the lawyers from stifling all this…But that’s a rant for another day.
Categories
- Adobe (1)
- Illustrator (1)
- Android (6)
- Apple (4)
- iPhone (1)
- Cell Phone Tricks (1)
- DSLR/Camera (1)
- Gadgets (3)
- Games (1)
- Google (2)
- Helpful Stuff for Teachers (1)
- Intro to Computer Programming (1)
- Kindle Fire (5)
- Linux (3)
- Microsoft Office (1)
- Excel (1)
- Microsoft Windows (33)
- Windows 10 (5)
- Windows 11 (8)
- Windows 8 (2)
- Windows Technical Preview (1)
- Mike Bryant for State Representative (5)
- OS X (7)
- Personal Failure (1)
- Personal Updates (240)
- Physical Fitness Challenge (2)
- Political Commentary (6)
- Raspberry Pi (1)
- RaspBMC (1)
- Recommended Products and Vendors (4)
- Social Commentary (5)
- Sustainability in Eastern Kentucky (2)
- Tech Tips (73)
- Getting Nerdy (1)
- Windows 10 (3)
- Windows 11 (6)
- Web Development/Programming (14)
- Visual Basic (1)
Archives