Oct
28

SCOCA Gets Social

ScreenShot005One of the cool facets of the modern web is the interplay between functions such as RSS and APIs for web applications. For instance, it is possible to use the Google Maps API with the Garmin Communicator API in a single web application on our own site.

Months ago, I noticed the the NWOCA ITC added links for Facebook and twitter on their home page. At first I thought this was strange, because those are both sites that are regularly blocked by web filtering. However, that doesn’t apply to their users who access the NWOCA web site from home.

As far as pushing information from SCOCA, I‘ve taken a first step by linking SCOCA to both Facebook and twitter. As far as getting SCOCA information to those services, I wanted it to be automated as much as possible so that our staff wouldn’t have to think about specifically posting to either site. Since this blog, the Curriculum and Tech Advisory Committe blogs, and our documents library are WordPress sites, it was relatively easy to find plugins that would automatically send the information from a post to both Facebook and twitter. For our SCOCA Training RSS feed, I used separate web services

You can “like” our Facebook page:

http://www.facebook.com/pages/Piketon-OH/Scoca-South-Central-Ohio-Computer-Association/164050893610541

Or, follow us on twitter:

http://twitter.com/#!/SCOCAK12

 

Apr
22

McAfee Web Gateway 7

mcafee-logoWeb filtering has come a long way since the days of Bess.  Unfortunately the day when 6 individual proxy servers using DNS based load balancing are long gone.  N2H2 was eventually bought out by Secure Computing and later Secure Computing was bought out by McAfee.  We have moved from Bess to SmartFilter to WebWasher and now the McAfee Web Gateway which is really just a re-branded WebWasher.  On the Surface the Web Gateway says McAfee but deep in the OS it’s all WebWasher.

Inside the McAfee Web Gateway, or MGW,  is a derivative of Red Hat Linux called CG-Linux, or Carrier Grade Linux.  This is a highly customized Linux distribution that has been stripped down to support only the bare necessities to make the boxes efficient as possible.  None the less they run on a dual quad core 2.8Ghz processors with 4GB of RAM and nearly 1Tb of disk space for caching.  Even with these hardware specs SCOCA requires 5 of these servers to run properly.  While the idea of a vitual MGW is a good one, it is not currently a supported platform and that was made very clear to me by McAfee support.

Recently I was invited by McAfee to join their beta program and get a sneak peek at the new McAfee Web Gateway 7.0.  I will be honest, i really didn’t expect a lot out of the new version so I never actually installed it.  I know, i’m not much of a beta tester if I never install it.  Well, this week I finally got around to installing it on a virtual machine and I have to say that I am definitely surprised.  Finally a virtual machine is a supported platform, at least in the beta.  The Core operating system that the server runs is a home grown linux distro called, of all things, McAfee Linux 1.0.  The install went really quickly and was much easier than in version 6.x.  That are using a nice setup script after the initial install that walks you through setting up your IP address as well as changing all of the passwords and doing all of the dirty work that previously had to be done manually from a command line.  This was definitely a welcomed improvement.

Once the install was complete I loaded the GUI in a browser and i was blown away.  The move to version 7 from version 6.X is a huge step.   At initial login I was greeted with a Java load screen which was my first clue that something was definitely different.  I don’t mean they moved things around but it is an entirely different system.  All of the old options are there but this is one of those changes where everyone has to retrained.  This was definitely not what I was hoping to see.

Either way, if you want to take a look around without installing your own I have included the login information below for several demo accounts.  This is strictly a demo box and I will not guarantee it’s functionality nor it’s longevity but I will definitly leave it up for a week or so or until someone finds a way to use it for something nefarious.  Let us know what you think in the comments.

FYI:  This interface is not available outside of the SCOCA network for obvious reasons.

http://208.122.95.5:4711

Username     Password
demo1              demo1
demo2              demo2
demo3              demo3
demo4              demo4
demo5              demo5

 

Apr
08

SCOCA Web 2010 – New Features and Changes

The new SCOCA web site launched on April 12th, and unlike most posts in this blog, I’m going to give just an overview of the changes and new features that have been implemented, rather then a technological discussion. Look for a couple of posts in the coming weeks on the tech behind the site.

For the information below, click a graphic to see a larger screenshot, or click a text link to be taken to the relevant web page on our site.

Department Merges

EMIS services has now been merged into Student Services. The System support and Development, Network Operations Center, and SCOCATECH Field Technicians are now Information Technology Services.

New Menu System

ScreenShot024

The expanded menu system that appears on most SCOCA web pages should make it much easier to find what you need.

Search Engine powered by Google

ScreenShot026

Our new search engine is powered by a Google server on-site at SCOCA. You can search from most SCOCA web pages or link to search.scoca.org.

Initial searches in the next few weeks may not return optimum results until the server has been tweaked to find all of the new web site pages, and we learn to optimize searches based on the searches that our users perform. Searches should be fully optimized by the start of the 2010-11 school year. Of special note here is that searches cannot be performed on secure pages and documents such as DASL, PB, DFR, etc.

Directions to SCOCA

ScreenShot027

The Directions to SCOCA page has had a major upgrade using Google Maps. You can get directions from any address to our location. Additionally you can download a vCard for use in Outlook, Entourage or other compatible PIMs, that includes address and phone information. If you own a GPS you can download a GPX file to import to your unit. Garmin GPS owners can directly download to their device using the Garmin Communicator plugin.

New Documents Library

ScreenShot028

The new Documents Library has been completely redone, with better features and its own search engine. SCOCA staff is now in the process of learning to use the new system and upload documents. For older documents check links from department pages.

SCOCA Training and Events

The new Training and Events Registration module has been online for a couple of months. Expanded features include a better interface for registration, more info on whom to contact for specific information about an event, and the ability to download a vCalendar file for use in most PIMs:

ScreenShot035

In addition , facility has been provided for attendees to fill out a quick and simple online evaluation for most events.

Staff Directory

ScreenShot036

The Staff Directory includes a new feature that allows you to download a vCard for any SCOCA Staff member for use in your PIM:

ScreenShot034

Regional Links

The Regional Links module has been updated to include links to SCOCA’s non-public entities

RSS Feeds

SCOCA now has 16 RSS Feeds for those that want to stay up to date with the latest information from our site

 

Apr
05

Gadwin Print Screen

If you or your teachers need a full-featured screen copy application, Gadwin Print Screen is hard to beat. I’ve been using it for years, and find it to be an invaluable tool. Here are some feature highlights:

  • Define your own Hot Key Combination for capturing screens
  • Define a delay before capture
  • Preview your capture
  • Run at Windows startup where it is always available from the System Tray
  • Capture the entire screen, or draw a rectangle around the portion you need
  • Capture the mouse cursor
  • Capture your screen to the Clipboard, Printer, Email, or File
  • Automatically save the screen to .gif, .jpg, .dmp. .png, .tif, or .tga image formats
  • Auto-resize image if desired

Gadwin Print Screen is available as a free version, or a pro version ($24.95) that allows for annotations.

 

Apr
03

Staff Directory Screenshots

As promised, here are some screenshots from my new staff directory apps, with some commentary. Click a screenshot to view full size.

Administrative Backend

ScreenShot004

Though this may look a bit complicated, the administrative backend was the easiest to setup of the three apps I built for the staff directory. Using the Adobe Dreamweaver Developer Toolbox, the application setup is Wizard-based, once you’ve setup your SQL database query. I’ve found that the ADDT widgets do not scale well for large databases, but the speed is acceptable for databases with a few thousand records.

ScreenShot005

The above screenshot shows the update page for a staff member.

Intranet Staff Directory

ScreenShot001

The staff directory for the Intranet took some time to code due to using new AJAX and XML techniques on the SCOCA web.

First, the staff information is obtained from an XML page. This means that the directory page is not PHP, but a standard HTML page. This has the advantage of using much less overhead when the page displays. The disadvantage is that again, it won’t scale well with a large database.Look for an upcoming post about how this works.

Second, you’ll notice the use of a hover action. When a staff member hovers over an entry in the directory, a small window opens that includes the staff member’s picture, along with office/home phone numbers, and home address.

Before I move to the next screenshot, notice the link in the above screenshot for a staff member to update their information.

ScreenShot002

After clicking the update link, the form to update information appears on the same page as the directory, rather than opening on a new page. This is one of the advantages of using AJAX interactivity.

SCOCA Web Staff Directory

ScreenShot003

This is the version of the staff directory that will be seen by public visitors to the SCOCA web. Again, the data is being obtained from an XML page. The tabbed interface for each department is another use of AJAX.

My goal for our public web is to make applications intuitive to use. Here, the user simply clicks a department tab to view the members of the department. Clicking the staff member’s name will send an email, and the icon beside the name will allow a user to download a vCard for that person.

You may notice that there is no banner or menu system at the top of the page.  Those two items, along with the SCOCA home page, are the last aspects of the site that will be coded.

 

Mar
31

Out with the old…

DSC_0845

This week I’m starting on one of my big projects for the new SCOCA web, our Training Management System (TMS). TMS is arguably the most complex app I have on our web, especially on the backend for staff and administration management. I have a list of my own changes and new features, changes requested by staff, and changes requested by Administration. I’ve budgeted about four weeks for the project, and I plan to post more about what I’m doing as I get further into the coding. This week I’m outlining my final changes, and getting ready to setup for the new administrative backend.

I originally planned for the new web site to be online by the end of 2008. This will be my fourth version of the site, and the SCOCA web has probably been redone more than any other ITC web site in the state. I’ve traditionally used the redesign to learn and apply a new technology. The first web site I did for SCOCA was to basically make a static site that fits into the profile of a service oriented organization. The second redesign was the first to make use of Dynamic web pages using PHP and MySQL. The 2004 site made use of Flash coupled with XML.

Adding AJAX

I really like the functionality of the Flash-based home page and the Flash menus used on interior pages with the current site, but working with the Flash interface is a real pain, and I also had other problems trying to update anything on the Home page. I also didn’t like leaving my usual Dreamweaver environment and going into Flash, It really slowed things down for me.

For the new web, I spent time last summer learning some of the ins and outs of AJAX (Asynchronous Javascript and XML). I first noticed the use of AJAX on the netflix site, and now it is being utilized as probably the new de facto standard for web page interactivity. I can get most of the functionality of Flash, but with better integration with my PHP and MySQL environments. AJAX is fairly easy to integrate, and I’ll have much more to say on this topic later, with some examples that you can use to spruce up your own site.

Tear Down That Wall

As I began my redesign last September a few things became apparent. First, I really needed to migrate our applications to use our MySQL v5 server, but there are apps that we still use from 2003, and some of those databases are only compatible with our current MySQL v3 server. Second, if you code with Dreamweaver, you know that the default option is to store all of your scripts, images, and CSS files in the same directory as your app. This can make for a lot of unneeded redundancy on the site. The last huge gotcha is that when Adobe purchased Macromedia, they really changed their PHP environment, and although they released a Developer’s Toolbox, it is not compatible with the old Interakt toolbox (which Adobe also purchased). So after studying all of this I came to these conclusions:

  • All apps need to be upgraded for MySQL v5 compatibility
  • All apps need to be upgraded for Dreamweaver CS3 (and beyond) compatibility
  • Javascript, CSS, PHP includes, and Image files need to be centralized

After looking at our current site, I soon realized there was no way I would have the new site ready by December. The biggest slowdown is making everything compatible with Dreamweaver CS3+. For example, my upgrade to the State Districts Directory web app should have only taken 20-30 minutes (after I migrated to MySQL v5), because all I wanted to do was add a simple vCard feature and change the CSS. I ended up having to recode from scratch because of syntax changes from the old tools to the new tools. Another very annoying problem was that there was a bug that kept changing MySQL queries when I used MID, RIGHT, LEFT for zip codes and phone numbers.The project ended up taking three days.

Most users of our site don’t see or care how it works, so they don’t know that almost every page that they see is generated dynamically from a database, and that the information gets there from even more web applications that our staff uses or are generated from CRON scipts for updates.

The new site is going to have to be up and running sometime between June and August. This will give some time for the staff to get used to new functionality and for the site to “settle” before the beginning of the 2009-10 school year.

 

Mar
23

Importing fixed-length files into MySQL

When I started on the first version of SCOCA’s District File Repository (DFR) a few years ago I needed a way to have an updated list of our school districts and IRN identifiers. Ryan suggested that I use a file titled disbld.seq, a fixed length text file that is updated monthly and sent to ITCs. When I first imported the file for MySQL, I used a Windows desktop application. I also use disbld for  the SCOCA State Districts Directory. a somewhat popular application on our site.

Last week I started to upgrade the Districts Directory application, mainly to automate the conversion of disbld to MySQL on a regular basis. I know some of our schools run PHP and MySQL so I thought I might post a bit on how fixed length files differ from comma-separated files.

If you’ve ever had to import a comma or TAB delimited file into MySQL, you know it’s a fairly painless process. All you really need to do is delineate the field separator (comma or TAB) and let MySQL know if the fields are enclosed with double-quotes or some other character. If you use phpMyAdmin to manage your MySQL server (and you should ) there’s an import option to make the process easier.

Fixed-length files are a bit different because fields aren’t enclosed or separated. Here’s an entry from the disbld file that I work with (scroll horizontally to view the entire entry):


S035451Springfield Intermediate MiddlMahoning  11333 Youngstown Pittsburgh RdNew Middletown   OH4444287243305423624170010104837130100503

Preparing for Import

What you first need to do with a fixed-length file is count how many characters make up a field for each entry. The disbld file breaks down like this:

  • 1 character that defines if the building is a District or School (D or S)
  • 6 characters for the IRN number (disbld uses leading zeroes to make the length equal)
  • 30 characters for District or School name
  • 10 characters for county
  • 30 characters for address
  • 17 characters for city
  • 2 characters for state
  • 9 characters for zip code
  • 10 characters for phone number
  • 23 characters for “misc” – not used in any of my apps

All of the fields except for one can be defined in MySQL as CHAR or VARCHAR field types (depending on length). The special case is the IRN field, and here’s where thinking ahead when you code an application pays off.

IF a user wants to search for a district or school IRN number, he or she wouldn’t use a leading zero for the number, since OHIO IRNs are usually not listed this way. In the above example an individual would type in 35451 in an IRN search, not 035451. So how do we fix this when importing the file? The answer is to make the IRN field an integer (INT) instead of a CHAR field type. When MySQl imports the file, the leading zeroes will be dropped.

Remember, define the MySQL table structure first, and make sure that the length of your fields exactly match what is in the file you are importing.

Import the File into MySQL

The easiest way to import the file is to load it onto the same server where MySQL resides and use MySQL’s LOAD DATA LOCAL INFILE command. You can do this from phpMyAdmin by going to your database and clicking the SQL tab. Here’s the recipe:


load data local infile 'C:\\filedir\disbld.seq' into table disbld_db.disbld fields enclosed by '' terminated by '' lines terminated by n' (`btype`, `irn`, `name`, `county`, `address`, `city`, `state`, `zip`, `phone`, `misc`)

Two things to note are:

  1. fields are terminated and enclosed with two single quotes (indicating that fields are not enclosed or terminated)
  2. you must include the field names of your table when using this command.

Last Task

Finally, you need to add an easy unique indentifier/primary key for each entry in the table. This is usually done by adding an auto-incrementing INT field type with a size of 11. The command below will add the field at the beginning of each entry, and after the addition each entry will have its own ID number. In my case I named the field DISID


ALTER TABLE disbld ADD disid INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST

Below is a screenshot that shows the final import in phpMyAdmin (click for full size):

screenshot002

 

Older posts «

Switch to our mobile site