Oct 10

Quartz.Net is an awesome and robust framework for scheduling jobs within .Net.  It is based on the very popular Quartz for Java.

Once you start using Quartz.Net very quickly you will want some sort of dashboard interface where you can view all the jobs that are running and other metrics.

Well, before you go developing your own there are already a few out there.  While most are full ASP.Net WebForms or MVC apps there are a couple of axd dashboards which allow you to easily embed them in your website with only a few changes to your Web.Config.  Take a look at CrystalQuartz or QuartzNetWebConsole.

After looking at both I chose CrystalQuartz because it seemed to be easier to implement with  my particular site and I liked the dashboard a little better.  I encourage you to look at the latest version of both and make your own decision.

Unfortunately I was using the beta version 2 of Quartz.net.  This is a great version and if you are just starting out I recommend it because it is much more intuitive than the current 1.0 release. 

That being said, CrystalQuartz (nor QuartzNetWebConsole) is not compatible with Quartz.Net v2.  So I made a few tweaks to the code and now it works great.

Feel free to download my version here:

CrystalQuartz Compatible with Quarts.Net v2.zip

I’ve contacted the CrystalQuartz team about adding my additions to their project but I have not heard anything back.  I’d love to fold my changes into their codebase so that it can be properly maintained and help others out.  However, in the mean time I’ve received a few requests for my changes so I’m making them available here.  I am not planning on maintaining this so if there are breaking changes as Quartz.Net v2 nears production then I may or may not have the time to update my copy of CrystalQuartz.  I do expect the CrystalQuartz team to come out with a v2 version that works with Quartz.Net when it is finally released.

Enjoy!

Sep 8

At my school district we are starting to deploy iPads just as many others are.  While managing the vast number of iPads is still a difficult task there are several solutions and I hope that in a year a robust solution will be available.

However, what I haven’t seen is a decent business case for iPads.  When you have administrators that have all their documents in a folder on the server, shared documents in their department networked folders and a wealth of sensitive data that needs to be used by various people there just doesn’t seem to be an easy way to tackle this with an iPad.

Beyond simply email, calendar and Internet access how can we make these devices more useful in an everyday environment?  My Assistant Superintendent of Education Services has a goal of getting principals and assistant principals out of their office and more intimately involved in the daily activities of their schools.  To this end they have been given iPads to use in their job.  However, when the iTunes store is the first place users look for apps to utilize, syncing data with iTunes on their desktop computers, non-networked file access, etc this becomes a real challenge.

To this end I have attempted to find out how we may get tools in the hands (forgive the pun) of our staff that take advantage of our networked file infrastructure, Active Directory for authentication and authorization and vast wireless access across our school sites.

Check out my video where I presented our model to the CETPA CTO Mentor Program, of which I meet once a month in Sacramento with other education CTO and IT staff members.

http://vimeo.com/mattpenner/ipadsforadmins

We have had a lot of great interest in our model from the various school districts as well as Apple and Microsoft.

Next week I will be presenting the same topic geared towards developers at the Inland Empire .Net Users Group, of which I also am a member.  At that presentation I will be getting into the nitty-gritty detail of how it all works.  Plus you will see a production ready implementation rather than the proof of concept in the above presentation.  I’ll record this one as well and post it as soon as I can.

More as it comes! Smile

Feb 9

I’m fairly busy with a load of tasks at work, but often I use a fun technology or enhance my learning when I can’t find a solution on Google and I think these would make good blog posts. The problem is finding the time to actually write them. Writing a blog post (at least for me) is often more than just typing for a few minutes. It involves code samples, occasional screen shots, previewing and making corrections and then finally posting. For a somewhat in-depth post this can take an hour or several. I have a running set of potential posts I would like to write but my list is getting longer and longer without much actually happening.

So, here’s my question. If you blog on a fairly regular basis (every week or a few times a month) and your posts are mostly instructional when do you do it? Do you have a few hours a week (like Friday after lunch) set aside to do this? Do you do it at 2am when the family is sleeping? Does your employer frown on you blogging on work time or do they actually promote it? For me, my employer doesn’t really know that I do it but they do occasionally see a post or two. I just discipline myself not to take too much work time to do it.

Do you have any tips that you have discovered that make the process a little smoother?

Do you have an assistant?   I’m serious on this one. A lot of my time is spent on correcting errors, re-wording sections and fiddling with format. If I was a professional blogger I’d probably do like movie composers do. I’d write the content, throw it together and then throw it over the wall. Let my assistant clean it up and rephrase complicated sections. Then I’d proof it and post it. I’m sure many professional bloggers have a similar set up. Any services that are somewhat reasonable that you use and would recommend? Maybe this is a market that is yet untapped. 

Thanks!

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

« Previous Entries