The Glory of Drupal
Submitted by bjcullinan on Thu, 11/12/2009 - 14:46I am actually blogging about my own blog...
Drupal is a popular content management system (CMS); that is, an online system for easily creating pages of information to display to its users.
Who Uses Drupal?
Drupal.org is built on Drupal. And here is a great list of their own case studies.
Why use Drupal?
Drupal has an advantage over Wordpress or Joomla partly because of the size community. It has such a large following that code is made more secure because of the number of people using it. The more people looking at code, the more likely that vulnerabilities and errors will be spotted. Vulnerabilities and errors can easily be easily resolved using Drupal’s community forums.
Drupal has a module system; that is the ability to load piece of code created by yourself or the community on the fly. Drupal’s functionality is so modular that every part can be analyzed easily and checked for vulnerabilities. Modules with errors can easily be removed and turned off until they are fixed. Fixes can even be made by the user without any community involvement.
There is an easy to understand application programming interface (API) provided by Drupal. Drupal functionality can be accessed from PHP code inserted into the site, or from modules built around a specification that is Drupal understands.
With Drupal, it is easy to install modules and themes. These can affect the way your site looks and acts. To install a module or theme you simply place it within a directory “modules” or “themes” inside your sites installation directory. Drupal automatically detects the additions and shows an option for enabling it in the control panel; this is another example of checks that Drupal performs that makes using the system very easy.
Installing Drupal:
Drupal has a very easy install process. In a few simple steps you can have a Drupal site up and running. Drupal has a lot of checks that make the installation process easier. For example, it will automatically check for its own installation directory. It will also check for write permissions on the uploaded files directory.
During my work on kjack.org I discovered a ton of very useful modules that make site administration easy.
Captcha: We all know that Captcha is broken, but there is a module for it anyways that will help filter out some more primitive spamming techniques.- Views: Drupal Views is a very powerful tool for creating lists of content to display to the user. It takes input from the address and can use that to customize the list. You can customize the output of the information completely.
- WYSIWYG: A module for adding a WYISIWYG editor to your site. Since Drupal comes with only the basic functionality, adding an easy method of editing your content is quite useful. Especially for those people who don’t know HTML.
- PathAuto: Pretty URLs are increasing in popularity. This module automatically generates paths based on the title of the node.
- CAS and LDAP: Drupal even has modules available for connecting to LDAP and CAS, making logging in for NAU students easy, and not requiring a registration process.
-

FeedAPI: FeedAPI provides a great way to import content from outside feeds. In the case of kjack.org, it is using FeedAPI to automatically copy over Google Calendars into the site calendar.
Features of Drupal:
As mentioned earlier, Drupal provides a great method for changing the appearance of the site. Themes are easy to customize; just make a copy of the original, rename it, and start hacking away at the HTML and CSS. My particular favorite is the Zen Suite, because it uses a lot of CSS, customization is easy and can be done by editing just a few files.
Drupal modules are easy to use, just enable them in the administration section and then edit their settings. They can be installed for individual sites, or for all the sites.
The update check tool makes keeping your site up to date and secure very easy. It automatically checks Drupal.org for updates to modules and themes. It even provides download links for different versions. The themes and modules are maintained by the community. Once they pass certain tests during development they are approved for release. These stages are easily identifiable using the color codes on the module’s project page.
Conclusion:
Drupal has all the functionality of Wordpress and Joomla and much more. The large community makes it possible to find a module for just about anything a website could need. The modularity makes it easy for an individual to change the behavior of Drupal. Their simple API allows you to take advantage of all of Drupals bits and pieces to achieve the desired functionality. Open source at it’s best...
- bjcullinan's blog
- Login or register to post comments
Autofill
Submitted by bjcullinan on Tue, 11/10/2009 - 18:23I have been working on the College of Engineering, Natural Sciences, and Forestry website for a few weeks throughout the semester. Recently, we started working on the little details like adding forms that people can fill out and submit.
Interestingly, most departments that accept these online forms for review have some sort of mindset that they need people to re-enter all of the data that NAU keeps track of. Why would this be? I think it is because many people do not understand the powers of LDAP. Many companies, organizations, and campuses especially keep large internal records of all of their students. A piece of this information can be viewed online by the public, just like a phone directory. Makes sense right?
The Lookup:
Since the school already maintains a big database of information, shouldn’t any department on campus be able to take a username and look up all the information on that user? It makes sense to me. Unfortunately, this is not what happens. Instead, every organization requires that you fill out the entire form, including username, phone number, permanent address, degree major; even though it is all accessible in LDAP.
So my solution is this; allow the user to optionally log in through NAU’s central authentication service (CAS), and fill in all the information automatically. Then, require the user to review the accuracy of the information and fill out ONLY the additions to the information needed. Store the changes and submit the form to the appropriate department.
Sounds great right? Yes, it is great, because that is how I design intelligent software...
Other Applications:
I currently maintain at least 6 online profiles (oDesk, ELance, Facebook, LinkedIn, Google, Microsoft) and none of these have the ability to check or sync to any of the other profiles. However, sometimes I will come across an “automatically import your contacts”, where it gives me the option to sign in to Google or upload a comma separated values file of my contacts from Outlook. This makes me smile; but why not take it a step further? Most of these services have some sort of remote API for accessing a person’s profile, such as using MSN and clicking “View Profile”. So why can’t other websites just view the profile you specify and download the information from it?
Filling out repetitive forms is annoying...
- bjcullinan's blog
- Login or register to post comments
Intelligent Design
Submitted by bjcullinan on Tue, 11/10/2009 - 18:08I have created this new category for blogging about projects or other computer oriented topics that display a particular level of intelligent design. For example, a graphic user interface (GUI) that simply works really well. Or, complaining about how ridiculous Microsoft's design is and how much better I could have done if I had written it. More to follow...
- bjcullinan's blog
- Login or register to post comments
Automatic Updates
Submitted by bjcullinan on Tue, 11/10/2009 - 18:05It is important for us all to understand that modern day computing machines are actually systems of systems built on top of each other. A computer processor has microchips around it that understand how to communicate with it, there are chips around that which run software, there is software that loads into memory and runs core functionality; software runs on top of that and depends on software running in other places. Software runs on top of other software; enough rambling.
It is also important to realize that most of the population’s largest software users are also connected to the internet. It is for this reason that “Automatic Updates” were invented.
Automatic Updates:
Commonly, we know Automatic Updates as that thing that pops up on Windows and says that it is doing stuff that it thinks we care about, and then prompts us to restart our computer every 15 minutes.
So let’s analyze this functionality. Windows automatically downloads updates from the internet. It can then optionally install these updates without any user interaction. So far, this is all seamless, unobtrusive, and in general, a good idea. But, Windows would not be Windows if it didn’t find some way to annoy its users. Automatic Updates then decided to prompt the user every 15 minutes to restart the computer. Instead of handling it behind the scenes and just waiting until the computer is not being used, it prompts to restart dozens of times until the user finally gives in. Windows 7 fixes this problem by giving options up to 4 hours to delay the restart. Good solution, but not perfect.
I am a very big advocate of Slysoft, but my one problem is that they release so many updates; I am constantly getting a popup telling me there is a new version. The absolute worst scenario is when software gives a user an option for functionality and then completely disregards it. Slysoft is guilty of this; there is an option to uncheck “Automatically Check for Updates”, yet it still displayed the popup notifying me that there is an update available. Their software Bumblebee, used for automatically updating AnyDVD is downright useless; how many times am I going to get this message before it actually downloads?
And then there is iTunes:
iTunes gets its own heading because it is the absolute most intrusive update process. First, a program constantly runs in the background taking up system resources and opening plenty of opportunities for attacks and failure. When an update is downloaded successfully it prompts the user to install the update. Then the program sits open on the screen while displaying a useless progress bar that doesn’t reflect the completeness of the update but rather loops across the screen indicating that it might be doing something.
The worst part about the iTunes updater is that it doesn’t check if something is open and using the programs it is trying to update. Similar to the Adobe updater, it tries to go through the entire installation process before it finally indicates that it can’t update and has failed. Also, WHY DO THESE UPDATERS INSIST ON PUTTING THEIR ICONS BACK ON MY DESKTOP?
The infallible Firefox:
Firefox has simply the best implementation of automatic updates. It first downloads new updates, and once it completes the download, it prompts the user to restart Firefox now or Later. If you click Later, Firefox just assumes that eventually the browser will be restarted and it leaves the user alone. When Firefox is started the next time, the update is quickly and seamlessly installed as a part of the startup process for the browser. If you click Restart Firefox Now, your current activity is stored, and the browser is restarted, all of your pages are completely restored when it comes back up.
The Solution:
Every program should implement an unobtrusive tray icon for when updating is taking place. The updates should be installed or postponed whether or not the program is being used currently. The user should be notified that the update is going to be installed, but it should be completely ignorable. The user should NEVER be interrupted from what they are doing. The computer should NEVER have to be restarted immediately for any reason. A couple hours of the vulnerability still existing is not going to make a difference for the running system. Why can't windows restore your open programs just like Firefox does? Enough ranting for now.
- bjcullinan's blog
- Login or register to post comments
Batman Costume
Submitted by bjcullinan on Thu, 11/05/2009 - 15:49Design:
My plans for the costume were to cover a wetsuit in a tight fitting silver mesh, then to attach snap on plates of molded rubber armor through the mesh on to the wetsuit. The helmet would also snap together on the inside as it would be a much thicker and harder rubber. The gloves would have to be hand crafted and the boots would have to be similar to the ones used in the movie, but then modified to match more closely. The belt would also be made of a hard molded rubber and spray painted gold or silver.
Materials:
First, the wetsuit would essentially be destroyed from attaching buttons for the plates of armor. The snap on buttons are necessary to allow removing and cleaning of the rubber pieces, and then washing the wetsuit and mesh.
The mesh is supposed to be silver and metallic looking according to an interview with the costume designer. The only mesh I could find on Ebay is used for a jersey uniform and is listed as “silver” but could actually just appear grey. Other options could be found out of China, but I would have to call to place and order, and they would probably be selling large quantities.
The most important part is the rubber armor. The plan was to use a lot of clay to carve out each piece of armor, then creating a plaster mold of each piece of clay. And finally, pouring the rubber into the plaster mold. This would have snap buttons attached to fabric infused into the mold when it is poured and set to dry. The biggest problem with this is, the rubber costs about 90 dollars for a pint. So I would probably be spending at least $400 just on rubber.
I expect this entire project would cost me around $1000 to complete, and lots of time and effort. Although after the clay molds are made, I could make many more costumes with much less effort and possibly sell them for profit.
Abandonment:
Since I don’t have the kind of time to commit to carving out clay pieces of armor, and my only attempt at it so far was a complete failure looked nothing like the armor piece I was shooting for, I decided I would have to abandon the project for now. So, 24 lbs. of clay along with a set of clay carving tools was put in my abandoned projects bucket.
- bjcullinan's blog
- Login or register to post comments
Hard Drive Clocks
Submitted by bjcullinan on Thu, 11/05/2009 - 15:12The Idea:
I found a tutorial online of how to make a clock out of a hard drive that still spins up but has problems with reads and writes; even a click of death hard drive would work for this project. Basically it works by cutting a slit in the platter, then flashing lights behind the platter very quickly. Whatever the color is when the slit passes by is the color that your eyes see. So you can create very interesting radial designs.
Some problems:
My original plan was to use an MSP 430 that we had been programming all semester long to control the light blinking. In theory this would have worked just fine, but then I realized the speed of the chip may not be fast enough to blink the lights at an even increment with the 7200 RPM hard drive platter. I think I determined the chip only had a mere 16 cycles to switch the colors of the 3 different sets of lights. The light strip that was to be used requires 9 V on each color. There are 3 colors; red, blue, and green, just like a computer monitor. This poses another problem; how to get a 3 V maximum chip to power a 9 V minimum strip of lights? Would a transistor be fast enough to switch the lights 7200 x 360 times per second? Would a transistor that has the ability to support 9 V be that fast?
Abandonment issues:
I finally figured that I did not currently have the electrical engineering expertise to complete this project within the timeframe that I had originally planned. Maybe with some more EE classes and a greater understanding of the PIC chip used in the original HD Clock design I could eventually return to this project. But until then it has been tossed with about a dozen torn apart hard drives into the abandoned projects bucket.
Links:
- bjcullinan's blog
- Login or register to post comments
