Apr 8

A colleague recently came to me because she had a long running Word 2007 document that no longer would open.  When we attempted to open it in Word it would state that the document was corrupted.  It prompted us to use the built-in repair tool but that was unable to fix the problem.

Knowing that a Word 2007 document (actually, any Office 2007 document) is just a zip file containing xml files inside, I attempted to open the file using 7-zip.  At the very least I was hoping we could extract the raw text and my co-worker could just reformat it.  While 7-zip could view the archive it reported that it was unable to extract most of the files.  This included the actual xml file holding the text so we were still out of luck.

So, where do you turn when you are out of ideas?  Google of course.  I searched for “zip repair” and DiskInternals’ Zip Repair utility was the first on the list.  Fortunately this is a free program so I thought I’d give it a try.

It only allows you to select .zip files so I had to change the extension from .docx to .zip.  That’s my only complaint, however, and it’s arguably a small one.  Once I did that and ran the utility it reported that it successfully repaired the zip file.  Wow! 

OK, but I’m one of those guys that believes it when I see it.

I changed the extension back to .docx and attempted to open it in Word.  It again reported that the document was corrupt and prompted to run the repair utility.  However, this time upon running the repair it was able to open the document with full text and formatting.  Wonderful!  I saved it into a new document and emailed it back to her.  She was ecstatic. 

So, definitely a +1 and recommendation for DiskInternals’ Zip Repair utility.  Give it a try.  It’s great and worth far more than the price.

Apr 20

As some of you may remember I work for the Riverside County SELPA.  It’s an organization that handles Special Ed data for 22 districts in Riverside County, CA.

Twice a year we submit a huge amount of data to the state for state and federal reporting.

Our school districts send letters out to students/parents where the student dropped out or exited last year. The state basically wants to know their education and employment status since they left Special Ed.

We barely get any letters back so this year we thought to allow parents to enter their info online. Fun and simple.

I created a small little static HTML page and jQuery for AJAX calls into a service backed by ASP.NET MVC. It allows the parent to find their student, answer the two questions and it gets saved directly into our data tables that we submit to the state.

I demoed the project last Friday morning to all the Special Ed directors. They loved it. Friday afternoon (literally hours after the demo) we got a message from CDE (California Department of Education) stating they are not collecting this information this year and we don’t need to submit it.

So I worked on another project that got scrapped. At least I got to demo it. :)

Apr 17

This was an interesting article on HarvardBusiness.org:

“How to Revise an Email So That People Will Read It”
http://blogs.harvardbusiness.org/silverman/2009/04/how-to-revise-an-email-so-that.html

In it David Silverman puts forth the benefits of revising your emails before sending.  He has some great points and tips like:

“…regardless of the source, the advice is sound: no email should be clicked-to-send without revision.”

“[Tip #] 9. Shorten. Remember the reader struggling to digest your message on the run — a BlackBerry or an iPhone gets about 40 words per screen. What looks short on your desktop monitor is an epic epistle on their mobile device.”

However, he then goes on to say that the number of revisions you make on an email is proportional to the number of people it’s being sent to:

“I’ve found that for your average email, the number of revisions largely depends on the number of recipients. Here’s my experience:

    1 to 5 recipients = 2 to 4 revisions
    5 to 10 recipients = 8 to 12 revisions
    Company-wide or to Executive Committee = 30 to 50 revisions

 

Occasionally a good idea just gets way too extreme.  I am not sure what motivated David Silverman to think this is a good idea and I doubt he follows this rule himself.  This is his experience?  Did he revise his blog post 30+ times because I’m sure he expects more than 10 people to read it.  How does he get anything done?

I think most corporate people who email daily can use most of these ideas in just one draft or a couple of revisions. I usually revise all my emails once before sending. However, I think the number of revisions is directly proportional to the importance and complexity of the email, not just the number of people receiving it.

If I am sending an email to our project managers (30+) but it is a quick note about a new item on the agenda I’ll give it a once over and send it on its way. If it is an email to my director that gives an assessment of our vendor’s latest performance I’ll give it a few revisions prior to sending out.

I think 8+ revisions is just wasteful. I have too much to attend to to spend this kind of time on a single email. If you can’t get an email right in the first few revisions there is something more inherently wrong than your ability to revise. Chances are you should be splitting your email into several to focus on the key topics individually. If it really is a "corporate" type email that requires several authors and revisions most likely it would be better developed as a professional document with proper headers, footers and branding and sent as an official PDF attached to a simple email. You know, what they did before email. :)

Feb 26

I got caught by this one.  A colleague of mine got this response when trying to send an email message containing several attachments to a user:

This is an automated message from the xxxx Email Security Appliance at host xxxx.xxxx.xxxx.

A mail from you (xxxx) to (multiple recipients) was stopped and Discarded because it contains one or more forbidden attachments.

Summary of email contents:

Attachment: PBSP Terminology Guide.pdf
Attachment: FAA_Sample_BICM.DOC
Attachment: Behavioral Deficit Observation Form.docx
Attachment: [Content_Types].xml
Attachment: .rels
Attachment: document.xml.rels
Attachment: document.xml
Attachment: header1.xml
Attachment: theme1.xml
Attachment: thumbnail.jpeg
Attachment: settings.xml
Attachment: printerSettings1.bin
printerSettings1.bin    forbidden attachment (detected as ”) (filename)
Attachment: webSettings.xml
Attachment: app.xml
Attachment: core.xml
Attachment: styles.xml
Attachment: fontTable.xml
Attachment: Behavioral Deficit Observation Form.pdf
Attachment: Time_Sampling_Prepared.docx
Attachment: [Content_Types].xml
Attachment: .rels
Attachment: document.xml.rels
Attachment: document.xml
Attachment: theme1.xml
Attachment: thumbnail.wmf
Attachment: settings.xml
Attachment: fontTable.xml
Attachment: webSettings.xml
Attachment: core.xml
Attachment: styles.xml
Attachment: app.xml
Attachment: 27 PBIP Compilation.doc

OK, so there is a document titled printerSettings1.bin that is causing the issue.  This, of course, wasn’t any of the attachments so I figured it’s some weird display code that Outlook is putting on the email, like through a theme or something.  Well, that wasn’t it.  So I did a quick Google search on printerSettings1.bin.  Apparently this is a file within the new xml format of the Office 2007 documents. 

 

In this case, the Word 2007 document, Behavioral Deficit Observation Form.docx contained all the files listed below it.  As some of you may or may not know, the new office formats (docx, xlsx, pptx, etc) are actually zip files which you can open and view the contents.  Sure enough, when I opened this file I saw the printerSettings.bin file.  It was the *.bin extension that was throwing the red flag on this email scanner.

 

The weird thing was that there was another docx file in the attachments, yet this one did not have the printerSettings1.bin file.  I’m not sure what causes this file to be created; obviously something that affects printer properties.  The page was landscaped so it could be as simple as that.

 

Anyway, there weren’t any Word 2007 features in the doc so I recommended that he simply save it as a Word 2003 file.

 

If this bites us again I may search for more detail, because there isn’t a whole lot on the web as to the specifics on what causes this file to be created and if it can simply be removed from the archive without any adverse effects (such as removing the landscape setting).

 

For now, this quick 2 minute fix solves the problem and I can get back to work. :)

Jan 13

My wife just sent me an email from her Moms Club.  One of the mothers is a teacher at a local district and sent a request for suggestions to all the members of the club.  Apparently her district, in light of the budget crisis in California, is forming a committee of community members and is soliciting applicants or simply suggestions from local individuals.  This is basically a search for ideas from the community on how to save costs and improve schools.

I thought this was great.  As an employee of the Val Verde Unified School District and a father of 2 (soon to be three!) I am very interested in what happens to the state of our schools.

Simply put there is no money.  So, I won’t get on a soapbox and demand that education doesn’t get cut. That’s simply not realistic.

I am the poster child for doing too much with too little time, but this may be one committee I’ll look into being a part of.

Here are some of the suggestions I sent back with the email.  If any of you have some thoughts on these, for or against, or some other additions yourselves feel free to chime in. 

Thanks!


I’m really excited that the district is looking outside for public suggestions.  This is great.  Usually districts (including ours) think they have all the answers.  I always hear people saying "they waste too much money doing X.  If they just did Y it would be better and cheaper."  It would be great to get these ideas into actual consideration and action.

I would say the first two high priority issues for me are class sizes (I.e. keeping teachers) and class days.  At work this morning we talked about the thought of closing the schools for 5 days.  It sounds like David heard some news that this may not happen.  It wasn’t entirely thought through (it really was just one of the suggestions) and there may not be any real savings in it (and a whole lot of opposition!)

So that brings me down to the one priority of class sizes.  Simply put, there isn’t enough money right now to keep that many teachers on staff or pay for the cost of physically having a school open (electricity, custodians, etc).  So, if teachers are to be kept and building are to remain open you have to find MAJOR savings elsewhere.

As a technologist there are several low cost solutions that I can think of that would replace some more expensive practices that are in place right now.  I’d like to see these explored.  It would be a great way to save money with little loss of quality.

Here’s just a bullet point of ideas I have.  Again, most of them are on technology but there are a few others in here.  For the technology ideas I would extremely encourage seeking the assistance of the IT staff or a knowledgeable person.  Some inexpensive and flashy solutions that are getting a lot of press late just aren’t ready for the market yet or simply do not save money.  The ideas I present below are simply suggestions and may or may not fit all situations.

  • Alternatives to SMART Boards
    SMART boards are very popular, and extremely costly.  A project started by a student (Jonny Lee) at Carnegie Mellon allows you to use the wireless controller for the Nintendo Wii and a projector in place of SMART Boards or similar technology.  If you already have a projector and a computer (many classrooms have these) the cost is ~$50.  Very comparable to a Smart board and in some ways better.
    Here is a video talking about the Wiimote whiteboard: http://www.youtube.com/watch?v=5s5EvhHy7eQ
    Here is the project webpage: http://www.cs.cmu.edu/~johnny/projects/wii/
    Here is a comparison (by a school) comparing this solution to smart boards: http://www.youtube.com/watch?v=BSDxc2kFjms
  • Alternatives to new computers
    Everyone wants computers in their child’s classroom.  This can be very costly.  Fortunately technology is incredibly powerful these days and most school applications don’t need state-of-the-art computer systems.  This has created a market where schools (and other organizations) can purchase high quality computers that are slightly used for as little as $100 each.  Computers coming off of 1 or 2 year leases are called "off lease" computers.  Some companies do extremely intensive work and constantly need to purchase high-end new computers for their employees.  This creates a large market of quality computers that are only 1 or 2 years old.  At Val Verde we commonly purchase these types of computers.  There are some pros and cons to this but largely getting computers for $100 has been a real cost savings and has allowed us to purchase many more computers than we normally would have been able to.  Just make sure to go with a reputable vendor who has several hundred in bulk (rather than your local small business getting rid of 2 or 3).  This way the vendor can easily guarantee the machines and replace any that may fail to work.
  • Laser printers instead of Ink-Jet
    Do not buy ink-jet printers.  This seems counter intuitive for some people since they are very cheap and in some cases free.  However, you spend a fortune on ink and they often breakdown much more often with paper jams, dried up ink, broken plastic parts, etc.  They are pretty much considered disposable these days.  When you have 25 students in a classroom this can be quite a lot of abuse for a home type ink-jet printer.  These have become a black hole for expenses.
    Instead purchase inexpensive but economical laser printers.  These often cost more initially but their toner lasts much longer, thus being much less expensive in the long run.  They are also usually intended for businesses and as a result can withstand much more use.
  • Classroom supplies
    Basic supplies like paper, pencils, pens, crayons, rulers, notebooks, etc can be quite costly.  It’s fallen on the teachers themselves to personally pay for any supplies they cannot get from their district.  I say it would be great for the teacher to have a fundraiser in their own classroom every so often, such as during back to school night.  If each parent would donate as little as $5 (maybe like sponsoring their child :) ) in a class size of 25 students this would create $125 for supplies .  That’s not a whole lot but if you shop at warehouse stores like Costco or discount stores you can purchase a huge amount of supplies for very cheaply.  $100 at Costco goes a really long way in their office supply section.
    If you have the ability to make use of a computerized whiteboard, such as my first bullet point, then you can cut way down on any "presentation" supplies such as dry erase markers, chalk, etc.  The teachers and students can easily use the computerized whiteboard without any consumable costs.
  • Textbooks
    I’m not sure about all schools but our high schools (and many others near us) have gone to the point of purchasing 2 textbooks for every student.  This is so that one textbook stays in the classroom and the other permanently goes home with the child.  With the amount of textbooks kids need these days and the removal of lockers at some sites this was a solution so that kids wouldn’t have to lug around books or forget them at home.  Unfortunately this effectively almost doubles your textbook costs.  I had to lug around books when I went to school.  I think most of us did.  At high school we used our lockers (normal or PE) and cars to stash books between classes.  When finances become real slim I think this is a solution to a problem that doesn’t take priority. 
    Even more encouraging is many of the textbook publishers now offer the entire textbook as an Adobe Acrobat file.  Many students in our area come from low income households and may not have access to a computer.  However, there are a majority of students who do have a computer or some other device such as an iPod Touch, iPhone, Palm Pilot, etc that can read PDF files.  They can take advantage of having their entire textbook in an electronic form.  Purchasing only one textbook per student would be a great cost savings while still offering the ability for most students to have multiple electronic copies.  With the ability to search, index, cross-reference the book in Acrobat Reader, along with no torn pages or defacement from a previous student I wish electronic versions were available when I was a student!
  • Music/Art
    We were just talking about this in my department this morning.  It’s most likely that music will be cut entirely across our whole elementary level.  This is very sad and will obviously be protested by many music lovers.  But I won’t join them on my soapbox because there is no money.  That’s it, plain and simple.  The question is what are we going to do about it (besides demanding money that isn’t there)?
    There are three experienced musicians in our department (that IS unusual) but I was thinking there are probably several dozen in a decent sized district.  If it’s possible and can be worked with administration I think it would be a great idea if staff could volunteer their time.  Yes, it would be unpaid and have to be worked into your schedule.  But I think it would be great to keep our music programs running if a few people would adopt the program at their site.  They could take a few hours out of their week, or work out some sharing program where maybe they only took one hour out of the week.  Then they could run the music class at the elementary level.  This would require a basic knowledge about music and working with kids.  For the most part you are working with beginners so you wouldn’t have to be a well seasoned music instructor, just someone who liked working with kids and could teach music fundamentals.  This may be an economical way to keep the program going in these hard times. 
    This same idea could be applied to any of the "creative" areas that are in danger of being cut.
    When I was in elementary school we had one parent who was really creative and also knew how to play guitar.  She would come to our school entirely on her own time and visit classrooms on Fridays for a half an hour.  During that time we either learned songs, music fundamentals like clapping rhythms or basic notes, would work on various art projects, etc.  It was all volunteer and unfunded but was a great time that I remember.

Those are just a few suggestions off the top of my head.  I’m sure there are many other people here that have wonderful ideas in many different areas.  I am encouraged that this district is looking for suggestions like this and may be considering putting some of them into action.


Technorati Tags: ,
Jan 9

It’s been a while since I wrote a blog post.  The problem is I see a lot of cool little things and think, oh, everyone’s probably seen this already, and never post about it.  Well, that will change.  Not everyone has seen everything and my co-workers and I share lots of great links and such about cool things we find.  So I’ll start posting this stuff.  If nothing else, it should make a fun set of links for people to check out.

Nov 14

There are a million blog posts on this sort of thing but it just bit us so I thought I’d add mine to the mix.

Date calculations can be notoriously difficult depending on the language you are using.  However, DO NOT succumb to the desire to "fake" it as our vendor did.  Here’s what happened:

In California every school has to submit data for their special ed students/programs to receive proper funding.  This is called a CASEMIS report, and reporting day is every June 30th and December 1st.

For CASEMIS if a child is under 6 they are in one category and if 6 and over in another.

In our data there is one student in question who’s date of birth is 12/3/2002.  So on the reporting date of 12/1/2008 this student will be just two days shy of 6 years old.

We were getting an error in our validation process because apparently our vendor was calculating ages using 1 year = 365 days.  12/1/2008 – 12/3/2002 yields 2190 days, which at 365 days a year results in 6 years exactly.

Ugh!  Sorry, but the "close enough for government work" doesn’t apply here.

I don’t know exactly what language they are using but I believe they use perl on the back end and Business Objects InfoView XI for the reporting.  The actual date calculation could be in either of these two places, or somewhere entirely different.

While some languages make calculating proper dates difficult, there is almost always a correct way to do it.

For instance, in Microsoft T-SQL, asking the difference in years between 12/1/2008 and 12/3/2002 using:
SELECT DateDiff(yy, ‘12/3/2002′, ‘12/1/2008′)
incorrectly returns 6 years, since 2008 – 2002 = 6.

However, if you change the question slightly and ask if the birthdate + 6 years is less than the reporting date using:
SELECT CASE WHEN DateAdd(yy, 6, ‘12/3/2002′) < ‘12/1/2008′ THEN ‘6 or Over’ ELSE ‘Under 6′ END
this results in the correct response “Under 6”.

It’s a matter of finding the proper question and syntax for the language.

Technorati Tags: ,
Oct 8

In an ideal world you would design your applications so that your users could never enter bad data.  Well, that’s not always possible for some technical reasons and for 3rd party apps you’re at the mercy of the vendor.

 

One case in point is our Student Information System (SIS) at the Val Verde Unified School District.  It does a great job and we love it, but as a developer it does have its cons.  The database isn’t as normalized as I would prefer and sometimes their data model just seems weird.  Granted it is a Microsoft Access UI that links to a SQL back end, however, it still doesn’t change the way things are.

 

In this case we need to perform audits on our data.  Anyone who is in data management knows that if it’s possible to enter an invalid value (such as a 5 digit phone number) some user will do it someday.  In some cases bad data is rare and other cases just plain prevalent.  The other issue is how that impacts your organization.  Sometimes the invalid data will just be informational and not a big impact, however, in other cases this can impact reporting, automated processes, data exports/imports and many other systems.

 

So, I came up with our current data auditing system.  We started it up back in June, 2006 and it’s been a great help.  We currently have 60 checks on our SIS that run various times of the day.  Each check is really just a simple SQL statement that looks for errors and stores these in a violations table.  After each job a report with the results is sent to the relevant users.  Typically we have only a few jobs, most of which run at night and by the morning staff have the latest error report in their email. 

 

This has been a real labor saver as data entry errors are caught within 24 hours.  Those who are responsible for the data usually have the information fresh in their minds or the reference paperwork readily at hand.  We have to send various reports to the state several times in the year.  In the past, before we had audits, many of the reported fields were not actively maintained and we would get thousands of errors that needed to be corrected before we submitted our reports.  Now, the errors are corrected by the next day.  When it comes time to submit the reports it’s a much faster and less stressful process.

 

Currently our audit system is in a very 1.0 stage.  It only runs on our SIS data since that is what it was originally created for.  Also, it’s entire maintained in SQL by our database managers (3 of us).  There is no UI at all.  It works, and is great for a 1.0 venture if I am allowed to say so.  But it’s definitely time for a 2.0 version.

 

Here are just a few features I’m looking to put into the 2.0 version:

  • Easy to use web UI
  • Make use of ASP.Net security and roles
  • Able to audit ANY data through various data providers:
    • SQL
    • Active Directory
    • Exchange
    • File System
    • IIS logs
    • Etc.
  • Better reporting system
  • Easily setup generic audits on fields such as:
    • Non-empty
    • Alpha
    • Numeric
  • Real-time audits (such as using triggers in SQL)

 

I’m thinking about putting this on CodePlex once I have the basic framework up and running.  I have no ETA on this project since it’s rare that we get a lot of “free” time to work on things like this.

 

Technorati Tags:
Jun 30

Back in the good old days, when MS Office simply was Word, Excel, PowerPoint and Access, we all knew what Office was and why we needed it.  It was similar with other market leading programs such as WordPerfect and Lotus 123, Photoshop, QuickBooks or PeachTree, etc.

By my list of software above you may be trying to figure out what I mean by "way back when".  Let’s pinpoint this time period as cerca 1995.

The world was great.  Well, not great, but it was less confusing. :)   For the general consumer there was only a few operating systems to choose from, one or two office packages, etc.

Back then we knew we needed Microsoft Word or Word Perfect.  We knew we needed Excel or Lotus 123.  If we wanted to know how to use it we bought a book, took a class, or (gasp!) read the manual.  Yeah, manuals were actual paper books bundled with the software back then too.  This meant that companies could charge for in-depth books and training programs for their software.  It was the "if you build it people will pay to learn how to use it" era.

Now come back to the present.  It’s a lot more complicated.  Do I use Office Home and Student, Standard, Small Business, Professional or Ultimate?  What about this Open Office thing I keep hearing about?  What in the world is Groove, InfoPath, OneNote and why do I care?  People keep telling me that OneNote changed their entire work process.  How?

Notice I’m just sticking to the MS family (except for the Open Office reference I threw in there).  It seems like with every new version Microsoft throws a new product or two into the Office family.  If I were to list all the non-MS alternatives this post would be a mile long.

So, what’s Microsoft’s answer?  As you probably have noticed much of the Office website (and really any major Microsoft product site these days) is mostly devoted to helping you understand what each product does and how to use it.  It’s still pretty confusing, but there is a wealth of how-to articles, videos, webinars, trial demos and sometimes even online interactive demos.  All free.

It’s not like the world woke up and suddenly Microsoft realized they needed to convince us why to buy their product.  That has always been the case.  It’s just now they are freely telling us how to actually use it.  That’s great. 

This is definitely more of an industry trend.  Most software companies offer free product demos, videos and training on their website.  In fact, if a new product can’t show me in a 5 minute video why I would want to use their software I tend to move on.

It’s nice to be able to spend a half an hour in the morning beefing up on a new product.  I’m trying to set this as a weekly (perhaps daily) habit.  Currently I’m a OneNote training junkie.  :)