Now that I’m at our vacation home, I set up the workstation in the basement and did some test coloring and more examination. I decided that the neck should remain as-is, because it seems like there’s a more durable coat of sealant on it. I tried sanding off the top coat on the back of the joint where it would connect to the body, but it was taking more effort than I expected.

In various angles of light, I could see the shimmer of the mahogany, so it felt like it’d be a bit of a shame to lose that contrast with the future blue body.

I assembled the tuning machines just for a sense of some accomplishment:

I sanded down the body with 220 grit sandpaper to prep it for the Goodfilla ebony grain filler.

Then I realized my first mistake. I didn’t sand enough, because when I wiped off the dried grain filler with a damp shop rag, I was taking off all of it. I ended up right where I started again. So I went down to a 120 grit to take the sealer off and then I could tell that I was making a difference with a touch test. I applied the grain filler, thinned with a little bit of water to make it more paste-like than chunky-solid.

It was late when I finished laying it in on the back of the body, so I decided to let it dry and sit overnight until I could tackle it in the morning again.



The Blue-J Project – Intro


A log for a custom guitar build

For decades, I’d been fascinated by the BC Rich Mockingbird guitar. US audiences may associate this with Slash. For me, however, the style was favored by one of my favorite guitar players, the late Hide (‘HEE-deh‘) of X-Japan:

When I was in Japan in the late ’90s, I wandered into a music shop and saw a replica of Hide’s yellow Mock with the hearts. Despite knowing that it was a consumer-grade copy, I wanted to try it out, to get the feel and balance of the unique shape. It stuck with me since then.

I’m certainly not of Hide’s caliber in guitar playing, and my aesthetic style is nowhere in his stratosphere, so I wanted to build a Mock more to my own style. Typically, I lean toward red guitars, but a sudden flash of inspiration and some trial mock-ups later, I settled on a deep blue, as shown in the lead-in image.

The project is named Blue-J (since my legal first name starts with “J”), but I haven’t decided whether that’s the name of the guitar or not.

I ordered the MBK-1 kit from Solo Guitars (no affiliation links, as I’m not going to blog nearly enough to drive traffic to the company to earn a cent), and five days later, the box was home. Did a test fit of the neck and body and to examine the mahogany:

Upon examination of the grain, I decided that a solid color and sunburst fade would be a disservice to the natural qualities of the wood. So it’s going to be stained instead.

Supplies I bought to accomplish this include:

  • TransTint wood stain/dye – blue
  • Goodfilla ebony grain filler
  • A bunch of PVC to build the finishing rig
  • Collection of sandpaper ranging from 120 – 3000 grit
  • More shop rags than I ever thought I’d ever need

To make the finishing job easier, I bought supplies at Home Depot to make a finishing rig of PVC and a piece of project lumber. While I have scrap wood available, they’re in 8′ deck plank sizes, so cutting them down would’ve just been extra work for the $4-5 cost of the finished project board that I have to cut anyway.

I also want to replace the stock tone/volume knobs that came with this kit, but will make that decision after the finish is complete to make sure that the vision in my head actually matches reality.

Because the mahogany is an open-pore wood, I need grain filler to keep the wood from getting all funky once I lay down color substance. After several days of poring over various Internet forums, blogs, and vendor sites, I decided I wanted a dark-to-black grain filler to help accentuate the grain against the blue stain. This was where I settled on the Goodfilla ebony.

Several YouTube videos on refinishing guitars later, I was as ready as I was going to be.



Enhanced Guardian Alerts PowerSchool Plugin

Plugin #2 is out on PowerSource. Like the Medical Alerts visual enhancement, this adds some additional icons under the student header in the admin portal to visually indicate whether extra attention should be drawn to the guardian page.

This initial version will include blue icons for the existence of a restraining order and whether an adult should have limited contact with a student.

Download from PowerSource

For the Greater Good

I get asked every so often by those in enterprise IT why I spend my nights and weekends answering e-mails, doing custom coding, and building analytical reports for my teacher and administrator colleagues.  I get the impression from those counterparts that they’re only in IT for the 30% of the time they get to play with new technology and that the remaining 70% of the time when they have to actually do their jobs and help their colleagues out is a burden and a chore to them.

“Stupid users….” is a frequent utterance.  Maybe it’s the benefit of having been in my position and industry for over 20 years but I don’t see it that way.

I work nights and weekends because my teachers and administrators do.  If they’re on-line, that means they’re trying to finish something up for their customers: their students and their families.

If it wasn’t important to take care of some business for the kids so that the kids can continue to have the best experience in school that they can, they wouldn’t be on their laptops and tablets at home doing this work at 8, 9, 10 o’clock at night.

So when they run into problems, they come to me.

When they do, I have a choice.  I can resort to “I’ll look at it tomorrow when I’m on the clock and in the office.”  Or I can take a quick look to see what will be involved and make a judgment call over whether I can take care of it right away or lay the groundwork for “tomorrow.”

I tend to go for the latter because of that indirect but cascading effect that ultimately ends on the kids’ shoulders.  Because in my work in supporting teachers, it’s more than just grades and assignments that are affected.

Maybe a student is having a really rough time in class because of things happening at home. Without knowing it, he needs just that one little shining hope of success, like knowing he earned a perfect mark on a tough assignment, to make him believe that he’s not a complete waste of time and space like an older relative makes him think he is.

Maybe a student is struggling to comprehend the English language because her family moved here from another country just before the school year began.  She knew no one before walking into the cold, fluorescent brick building full of incomprehensible noises and colors.  And the one piece of familiarity that she can latch onto is a math equation.

Maybe a student who has autism has been in and out of disciplinary measures all year because he has difficulty expressing his frustrations and sensory overload in class, and lashes out violently as a coping mechanism.  And the one thing that can help him, his teachers, and his classmates is for his teacher to finally have access to his IEP and his accommodations list that had additional, helpful details, like “frequent breaks.”  “No sudden movements and low voice.”  “Minimal physical contact.”

None of this seems like it has direct connection with technology, but they do.  Whether it’s technology (my previous life) or data (my current life), they all touch students in some way.

If teachers are working right now at 9:30pm on a Tuesday, there’s a reason.  And if I can support that with answers or suggestions or even a game-plan when they run into problems or have questions, there’s a small chance that I can positively affect a student’s life in the long term, because that’s what we in schools are here for: the students.

This is why I do what I do, when I can. 

Add Former English Learner from PowerSchool Into Illuminate

Our English Language Development department wants to track students who are considered “former English learners” in Illuminate.  The criterion is if they’ve been exited from the EL program within the last four years.  This requires a few preparations.

First, set the code within Illuminate to display the former EL status.  I just chose the next one available.  I’ll use this variable in my SQL script, which comes next.

From the cog, choose Code Management

Look for English Proficiency.  I just start typing “english,” and it appears:

Then add the new code.  In our case, plain number 6 was the next available one.  I have to remember this value:

Next, I need to edit studemo.sql on the server where the SQL extract scripts are installed.  These are the scripts that build queries from the PowerSchool database, assemble the files, and then SFTPs them to Illuminate’s server.

The column that provides English proficiency status is column 14.  For that column, I use a CASE statement:

case
   when (sc.flaglep = 1) then 3
   when (sc.lepexitdate > to_date('6/15/'||to_char(extract(year from sysdate)-4),'mm/dd/yyyy')) then 6
else null end

The prefix sc refers to an alias for our state reporting code.  PowerSchool users outside of Michigan may have different column names.  Walking through this CASE statement, here’s what I’m saying:

  • If the “is an English learner” checkbox is marked, the value is 1 in the database, so I want to return the value of 3 to send to Illuminate (note in the screen shot above of the code table, where 3 indicates “English Learner”).
  • If the EL exit date is greater than a date of June 15 of the year that’s 4 earlier than the current system date, then return a 6.
  • Otherwise, return nothing

So the possible output values will be 3, 6, or nothing.  This is proven when looking at studemo.txt in Excel:

Once uploaded to Illuminate, this value can then be used in filters for reports, student groups, and assessments:

Handy Honorware

Honorware seems to be a newer term to describe freeware that asks for donations if you like the product.  It’s otherwise not limited in use, like most major companies’ “DOWNLODE FER FREEEE” or “PHREE TRYLE!” marketing gimmicks that permit them to slap the word “free” over everything as long as one small component of use is free.

(let’s be real, though.  This “free” really isn’t)

I’ve been using a few of them for quite a long time, and I finally got up the gumption to donate some funds to the developers.  Most of you probably know of at least one of these three.  The other two may not be as familiar.

Disclaimer: I am linking to these products because I like them.  I am not receiving any kind of stipend or kickback from these product developers.  Contrary to common blog themes of “MONETIZE UR CONTENT!!!!!” it actually is possible to like a product for its own sake and promote it as such.

  • AdBlock.  While we get that many (most) Web sites now depend on ad revenue as one of their income sources, some are just ridiculously intrusive.  I’m not an advertising or marketing major, so I have neither the background nor interest in researching the effectiveness of advertisements through history, but my anecdotal observation indicates that it’s a really lousy source to rely upon for income.  As a consumer, it’s irritating so I ignore them anyway.
  • Greenshot.  Possibly the best screen-capture software ever.  Lightweight, and allows you to edit a screen-cap in its own built-in image editor.  More features than I ever expected, and more than I can adequately describe on this post.
  • Social Fixer.  My goodness, this thing is a blessing.  It’s a plug-in to Facebook that lets you tweak so many aspects of your news feed.  Annoyed by politics?  Get rid of ’em!  Sick of the Trending Stories box on the side?  GET RID OF IT.  Don’t care about where your friends Check In?  GET RID OF THOSE CHECK-INS.  It’s much more robust than expected, so non-tech folks who aren’t accustomed to spending the time to tweak settings may feel a bit intimidated by all the check boxes and options, but if you spend the initial time investment, it’s so much cleaner and less stress-inducing.

Conditional Formatting Not Applying Unless I Modify Cell Content with F2

I have a big spreadsheet fed by a data model in Excel 2016.  Several columns are numeric values and the end user wanted conditional formatting to apply colors to certain value ranges (green for scores 51-100, yellow for 41-50, and red for scores 40 and below).

When I created my first conditional formatting rule for the scores 51 and above, it highlighted everything.  Only when I updated a cell with F2 did the correct condition apply.  Naturally, I didn’t want to modify over 300 cells in at least 4 columns, especially if my model updated with new data.

After a couple of hours of searching the online world using a multitude of combinations of the words in the subject above, I discovered the problem.

Even though the numbers appeared visually as numbers and even though I set my cell formatting for those columns to numbers, the underlying model had stored them as text.

I returned to my data model and sure enough, the data type for my numeric columns were set to text.  I changed them to whole numbers, refreshed my query, and the condition applied properly.

 

Use Assessments to Build Student Groups

Illuminate as two main ways to build student groups: choose a common characteristic of those students as the basis or use the results of an assessment to separate out a group of kids.  But what if you need to provide an assessment to a group of students who have no common characteristic?

Or what if that common characteristic doesn’t exist in the Illuminate dataset?

For example, a question I was asked was “do kindergarteners who receive a waiver perform differently academically in later years versus those who do not receive a waiver (and therefore, start kindergarten later)?”  Another request I received was to be able to generate Illuminate answer sheets for math test-outs being administered to various students of various grades from different buildings, simply because they applied for the test to skip certain math classes.

In both of these cases, Illuminate stored no common characteristic of these students.  For the kindergarten waiver question, I could have used an unused field in student demographics to build that common feature (which I’ll discuss in a future post), but because this was an ad hoc report intended to prove a point, it wasn’t worth the extra effort to build automation around it.

The students applying to test out of certain math classes certainly had no common characteristic.

So I used an assessment itself as the tool to establish that commonality to create the student group.  Here’s how.

Create a Dummy Assessment

The dummy assessment simply consists of one question.  The answer doesn’t matter, as all we’re looking for is a way to capture the specific students we need.

The students we need are identified in our SIS, so the import file can be built out of there.  I narrow down the students who had kindergarten waivers, or applied to test out of Math 8 or pre-calculus.

Upload the Students

I reduced this CSV to two columns: StudentID and Q1.  Q1 (the “answer” to the question) simply needed to contain the same character for each record.  This was then uploaded to the dummy assessment, which produced the familiar overview:

Now we know that 403 students in the district received a waiver for kindergarten at some point.  The rest of their demographic details are stored in Illuminate already.

Create the Student Group

Creating a student group from an assessment requires generating a report first.  So let’s do that.  Clicking on either the donut or the number of students in the summary section will display the list of students:

Click Create Custom Report to create the report consisting of only these students.

From inside that new report, click Advanced then Create Student Group.

And now that student group can be used as any normal student group.  That group can be used to generate pre-filled answer sheets for particular assessments, it can be used as the basis of a trend report, or it can even be used as a focus group or intervention group.

What otherwise started as no other commonly bound group of students are now together through a few extra steps.