Academia

I have spent the entire duration of my college career (a mere 5.5 years) working for various campus groups while I completed my degree in Computer Science. I started out by serving an unrewarding semester for ResNet, the student computer support group. After that, I worked for the campus ACM and eventually moved on to working for the Engineering IT help-desk, where day to day tasks included, but weren't limited to, refilling/debugging printers, helping faculty connect to shared drives, and basically sifting through phone calls to save my managers a few hours during the day. I can easily say I enjoyed that job. I felt minimally useful, and had plenty of extra time to read slashdot.org and work on my own homework and projects. However, after working in an academic environment for so many years, I have come to a few morbid conclusions.

 

Academia sucks

I know there will be plenty of people out there who will tell me how wrong I am. However, I would like to pick apart a few examples of what I think are the largest contributors to why academia is such a horrible field to be a part of. These are very personal examples for me, and I'm plastering them on the Internet so that they may be ignored by a much larger audience.

In my experience, academia has far more bureaucracy than necessary. ITS in particular has an entire college of engineers and technical minded people that could be writing software for them. Yet some narrow minded bureaucrat at the top is making all the wrong decisions. Decisions such as investing in another contract with absolute SHIT software from Blackboard instead of the open-source alternative Moodle, which the entire department of Computer Science could be contributing to, free of charge!  Or shooting down intuitive ideas, such as combining campus related news and events with the Google Gadget APIs. Instead, they decide to use shitty legacy and propriety code to run the student “Portal” that no body uses anyways. But I suppose if just 20 people use it, then they can afford to pay one of my best friends a substantial salary.

 

The blockade of misplaced authority

I have never directly experienced this until now, but I would like to start with examples from some of my peers before moving on to my experience. I hear ridiculous stories of professors intentionally standing in people's way from being successful. A bold statement I realize, so I will break it down.

Some people are put on this earth to make your life more difficult for absolutely no reason or motivation. My friend David had this experience when trying to get an override in order to receive the credit he deserved for his excellent work at the student run radio station. This course in particular is one that all KJAK employees receive credit for, and would provide a boost in GPA. He served many years running the station including rebuilding it from the ground up. Twice. When he confronted the administration desk with the necessary signed papers in hand, he explained himself to the receptionist. An advisor who overheard yelled through the wall to deny his petition, and asked him to leave. He tried to explain again, emphasizing his years serving for KJAK (which consisted of countless hours into the night managing computer and audio equipment). Unfortunately, he was not able to enroll in the class and receive the credit he deserved that semester. Along came the next semester, and the extremely helpful advisor of the College of Engineering took care of all the overrides that semester.

Another friend, Jessie, attempted to complete a 4 and a half-year degree in 4 years for financial reasons. She reached her last semester to find that one required class was not being offered. When she asked to substitute the next highest class in the same category (even suggesting that she could do work over the holidays and take a test to ensure that she had the necessary grounding to be in the class), the professor in charge of the class readily agreed. However, he wasn't sure if the class would fulfill the requirement, so told her to ask her advisor. Her advisor was out for a major surgery that semester, so she asked the director of undergraduate studies. She also asked who could sign her graduation application, since said advisor was on sick leave. The return email came a week later, completely ignored the question of who could sign the application, and simply told her to ask the professor in charge of the class, who was conveniently out of town. A few days later, the director changed his mind and decided that there would be no substitutions. When Jessie talked to him in person, explaining that her parents had enough money for 4 semesters but no more, and that she needed to graduate on time so that she could obtain a job to support herself, the director repeated himself, and told her "I don't know what to tell you. Good luck." She is still fighting, but in all likelihood will be delayed in graduating by a semester if she is lucky and finds a part-time job that pays enough.

 

My dismal efforts

I have spent a dozen hours (and am planning to spend dozens more) preparing a talk on hacking, computer security, RFID dangers, and other information the normal non-computer-geek needs to know.  This talk is intended to be presented to students, faculty, and staff, not just the nerds that hang out in our beloved ACM room. But the process has been long and discouraging. I hear rumors that faculty will only come if they are paid for the 2 hours, that students will only come if they are receiving participation points from their professors, that my time isn't worth enough and on top of the hours spent preparing my talk, I would also have to find someone to fund it. In order to accomplish my philanthropists goals, I have to be famous and jump through all the hoops and then some. So, I will apply to speak at DefCon and put the exploits about the university out in the open public before NAU will accept my talk. As if they are better or more prestigious than an international hacker convention?

My response to this is absolute outrage. There is one question in particular that has been haunting my sub-conscious for nearly a decade; at what point do you stop learning? At what point in someone's career does a person, especially an educator, say to themselves, “I am done learning because I know everything”? Is it when they receive their first or second PH.D? Is it when they have worked in the field for 20 years and decide to retire to education? Is it when new technologies are developed every single day? I must just be young and naive because I cannot fathom refusing free information from people who know more about something than I do. Especially people who have such a deep understanding of computers like hackers do.

 

The fight continues

While working in and around academia, I have experienced this sort of aroma of apathy. A sheer lack of passion for anything, really. I like to think that I am an outlier, in that here I am, wide awake at 1 AM on a Saturday night, writing a blog entry with the hopes that putting my ideas on the Internet will help me sleep at night. Another common dilemma that College has shown me is that often my passion for learning more about a subject surpasses what my professors can teach me in the confines of a classroom. Furthermore, despite being unemployed, I continue to work on a dozen projects throughout the day. I compose symphonies of code every day for my monolithicmedia.org project as the hunt for employment continues. Yet, I am discouraged every day I see funds to education drop, teachers getting laid off, programs and student organizations are cut and dissolved. And even more discouraged when I see teachers and their supporters petitioning the capitol instead of doing what they love. I have one cold, hard response; governments aren't built to listen to their people, and you shouldn't have to be paid to help the world become a better place, get over it and get on with your life.

Despite such miserable outcomes and apathetic responses, I continue to fight for education, especially when some “educators” won't. I am however, absolutely grateful for my wonderful professors, staff, and friends who continue the fight with me. They are the unappreciated heroes of our time, and it is those few who deserve the salaries of rock-stars and athletes (and fellow doctorates in other fields for that matter). These are the people who have inspired me to never stop asking questions!

 

Special thanks to:

Pete and my other managers who love the idea of teaching people what hacking is all about

Abe, Eck, James and my other professors who have instilled on me such a insatiable passion for technology

My parents and friends who are always there to support me in all of my endeavors

 

I 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.

lots of projectsWho 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 sucksCaptcha: 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.
  • WYSIWYG

    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:

Zen EditAs 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...

I 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...

Intelligent Design

I 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...

It 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.

anyDVDIt 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.

bumblebeeI 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:

Apple SucksiTunes 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.

Batman Costume

Design:

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.

© Brian Cullinan's Blag 2012