Posts
I've self-hosted my website for years, first with Bluehost and then many happy years with Reclaim Hosting. In early 2023 I moved to a VPS with Linode to give myself some more flexibility in what I can make and run on the web. It's more hands-on and today I took a few minutes to update some firewall rules.
I glance at the "failed logins" log anytime I SSH into my server, but I rarely take time to think about what it actually means. Today is December 22. My last login was on December 19. In that time, there were over 1000 login attempts. It's not an enormous number (relative to other, more popular websites) but that's still a lot of tries to get in. I use a strong password and I have keys set up, but still.
I have fail2ban to help lock people out periodically. I've got pretty strict rules in place because I'm the only one logging in or out of this site. I had never gone through the logs, though, to see what was actually being captured. I found a fantastic, step by step guide on The Art of Web detailing how to analyze and interpret fail2ban logs and how to then set up IP address firewalll rules for the most persistent attackers.
I went through the guide, step by step, and identified which IP ranges were the most prevalent in the banned address logs. Then, using The Art of Web's subnet calculator, I was able to get an IP address for a range of IPs which were the most frequently used addresses.
Lastly, I added that range of addresses to iptables to reject any request from that range outright. No more jail time, it's a straight up ban.
The guide was extremely easy to follow and I'm planning on looking this over every couple of weeks as part of my regular update schedule. There are also some suggestions in the post for logging daily stats, and that may come into my routine as well.
Back in November, I wrote about steps I was taking to improve my lesson planning habits. Six weeks later, I'm reflecting back on how I improved and what I still need to get better at.
- I was able (for the most part) to stay two weeks ahead in my planning. My materials were ready and I wasn't running to the copy room. I lost track a little around the Thanksgiving holiday, but I was still more organized than I'd been leading up to that break.
- I have a binder with the last four units' notes, worksheets, and assessments put together. I made it a goal to catalog everything as I made it or used it with students so I have a spot to flip through next year as I prep materials. At the end of each unit, I went through with sticky notes and left reflective notes on things like how to lead into an assignment, other materials to have ready for that activity, or typos to fix for the next time.
- My brain is starting to think differently. This week, I'm getting everything ready for our return in January. Copies are turned in and I'm prepping my slides so we can come back on the 8th with little to no stress about what we're doing.
My two goals for further improvement:
- I find myself wanting to tweak papers leading up to the assignment. I have to set a "free date" for myself so I know when to stop tweaking and to just use what is ready this time around.
- Don't re-create so much. A particular paper or handout might not fit my preference, but sometimes, you just need to use what's available and not put so much energy into essentially tweaking layout without making usability or helpfulness to students any better.
This has been a great semester. I'm tired, but very satisfied with the work we've done in class. I've seen a lot of growth in my students and they're seeing their successes as we spend time at a high-level looking over the scope of work for the final exam.
Sorry for the clickbait title, but I really did. My environmental science class just finished our unit on human populations and the affects it has on the environment along with the effects of social constructs, resource availability, and other factors on the population growth. Along with everything we've done so far this year on biodiveristy, resource allocation, and other ways we interact with the environment, it is the perfect time to watch Wall-E.
I normally don't like using movies in class because the chintzy worksheets that go with many are just busywork. This time, I'm putting a spin on the watching. Instead of completing a simple fill-in-the-blank page of very specific detail-oriented questions, I gave my class a prompt:
Take notes of themes or topics you notice that apply directly to the learning you've done so far this year. It can be any topic from any unit. When you notice something, add it as a bullet point in your doc. This will be the basis of your final synthesis where you discuss and describe your notes in detail for your final exam.
In other words, watch the movie and make a note when something looks familiar. Easy enough.
I want to see how students can synthesize information from a larger stretch of time. Wall-E is a fantastic resource for this class because it is a clear representation of what could happen if some of our trends don't change. Anything from pollution to overpopulation is fair game for the students and each one will have a different perspective and take on the content.
Vox captures this well in their 2017 retrospective:
...the film's genius is probably due to Stanton's [the director's] assiduous efforts to stay neutral. There are no familiar slogans or symbols easily identified with a politicized notion of the environment anywhere in Wall-E. Instead, the film paints a pretty stunning picture of the deleterious effects of letting two things continue unchecked: a society's insatiable need to consume (cheap products, entertainment, food, resources), and private industry's drive for profit when it overtakes public good.
Each unit so far has asked students to consider the human impact on the environment and this is an opportunity to see how they relate to a fictionalized version of a less-than-ideal future.
I haven't seen their notes yet, but the group was attentive and people were actually writing things down, which is an encouraging start. Hopefully this will be a strategy I can use again.
I'm procrastinating on finishing my final exam, so here are two Chrome extensions which make my life much, much easier.
- Reader View for Chrome. This extension has been around since long before Chrome finally added a reader view but I still use it more than the native implementation. It strips images, adds, and CTA prompts from text and gives flexible formatting options. I can take an article and easily get down to a more readable piece of text to then use as a PDF or to print for students. It even includes options for adding multiple columns so a longer piece can be fit on to fewer sheets of paper. This is a great tool for any text, but in particular if you have students who are emerging/struggling readers or students who are English language learners.
- uBlock Origin. As long as this is available, I will have it installed. I don't know why it isn't enabled automatically for students in Chromebook environments, but it should be. The readability of the Internet has degraded and will continue to, especially when the Manifest V3 update takes effect in March 2024. uBlock lets me share my screen with the class without worrying about ad content on web pages or on videos. I don't have to wonder if something awkard is going to come up and I know my browsing for school with minors won't be used by scummy ad-tech. When Chrome changes in 2024, I'm going to petition my IT department to let me use Firefox.
We're finishing our human population unit in environmental science this week. This has been a difficult unit to teach because many of the solutions offered to combat climate change are much more difficult to envision for high schoolers, especially in a rural setting.

Students each calculatd their own footprint and we had a discussion about how resources in our lives contribute to our footprints. Much of the rhetoric about stopping climate change is around individual choice and ways we use resources. As teens, that isn't always an option.

Living in a rural environment means driving places. Public transportation isn't an option and there may or may not be carpooling options because resources are more spread out. One thing I wish we had done was to map out the difference between one person driving farther to carpool and two people driving less to get somewhere independently. Small differences can add up and it can empower students to take ownership of what they can change.
All that said, I also recognized that there is significant inequity. Corporations and wealthier individuals put out far more carbon than any of us ever will. That doesn't mean we cannot help with solutions, but it also means that we are only able to do so much to contribute to change.

One metric for measuring our own use is to look at our country. These are representations of resource use and are not meant to shame or blame any one person - just a way to reflect on how we contribute to the health of the planet. Hopefully this exercise helped them think through what choices they'll make as they get older.
I'm prepping a revamp of the computer science class we have available at school for next year and my first task has been to figure out a cloud runtime for students. We're on Chromebooks and I would prefer to give kids developer mode access so they can work locally, but that's not an option with my technology director. Replit was one of the education go-to recommendations, but they're shutting down their Teams tool in March to focus on AI tools instead (gag).
GitHub's Codespaces are looking like a good option right now. The fact that I can set up specific dev environments for students ready to go with tooling and extensions available is very appealing. I've switched my preference to modal text editor (I'm writing this in Helix - check it out) but for students, VS Code will be more accessible and easier to dive into.
Codespaces runs a virtual machine right from a repository on GitHub. I can have sample code, tests, and prompts all ready to go for them - students just click the button and get to work in the browser. Because it's a container, they still need to learn how to make changes, stage, commit, and push to the repo, so the workflow skills I'm after can still be developed.
I haven't committed (ha) yet because I still need to look into usage quotas. There is a generous free tier for free use and education has an expanded free tier. I want to make sure that the quota is A) per person and not for the class and B) that the quota is only used when the students are actually working in the environment. I think that's the case, but I need to verify. It would be pretty awkward to turn a large cloud bill into the school because kids are coding too much.
I decided to become more active on my YouTube channel again. Students discovered it on their own while doing whatever they do when they look up teachers and they started going through the very old backlog. My style and methods of teaching have changed significatly since some of those original videos were posted, but they don't take me long to make and of the videos I've posted in the last couple of weeks, several students have come up and thanked me for having them available.
I think video as a learning tool is helpful, but not as the primary mode of interaction. I'm sticking with the "Quick Chem" idea right now where I simply talk through an example problem or situation. John Hattie classifies this as a "worked example" - some kind of video that shows the thought process behind doing a thing. In my situation, I want students to engage with the material in class and then go to the video when they need a quick refresher.
I don't want to be a content creator and I don't want my channel to become a main focus. It'll probably just be me, a science teacher, teaching science. And maybe some other stuff.
My students struggled to differentiate single vs double replacement reactions on our latest test. We had used particle diagrams in notes and while practicing, but many students didn't reach for that tool on the test itself. I threw these three slides together to help them see the connection between the particle diagram abstraction (which they can all describe) and the representation of the same idea in a chemical equation.

I prompted students to simply compare and contrast the two reactions represented by colored particles. This got them in the frame of mind to look for patterns and describe those patterns.

Then, we look at two reactions which follow the same pattern to help students connect the chemical representation of change with the particle diagram abstraction.

Since this is a reteach, most students wanted to jump right to identifying the type of reaction rather than identifying patterns. I had to pull them back a little, but once the particle diagram was overlaid, there were a bunch of "light bulb faces" in the room. We're going to reassess later this week to see if this was actually helpful or not.
I'm indebted to Nora Walsh, a chemistry teacher in southern Indiana who has comprehensive blog posts over on ChemEd XChange which helped me plan my own unit.
Small is better
This year, I decided to only focus on chemical reactions - their structure, interpretations, and types of reactions. In the past, I had included mol calculations as well. The intent was to help students make a direct link between the reaction ratios and material quantities, but that may have been too much of a stretch. Limiting my scope this year helped me stay laser focused on the key concepts so students could build deeper skill.
Our three learning objectives were:
- I can identify indicators of chemical change.
- I can balance chemical equations to satisfy the law of conservation of matter.
- I can classify types of chemical reactions based on the equation.
Demonstrations of learning
Because these were smaller, more discrete skills, I was able to have them do more targeted practice. My colleague, Melissa, pointed me to a fantastic resource to generate unlimited balancing and reaction ID questions for students to use on their own. Chemquiz.net has dozens of classes of questions you can generate for quick, immediate feedback activities. These shorter feedback cycles helped students catch misconceptions earlier and fix mistakes prior to the test.
I also updated my assignments to have some more written response. The work they submitted was more than skill demonstration - it was skill application. They did much more demonstration on their own, but it wasn't for a score in the book. I'm attempting to shift away from, "what work am I mising?" to "I'm struggling with this skill." It seems like it's taking longer this year to make the change than it has in the past and I'm hoping this particular structure will help.
Labs!
I've tried hard this year to make sure students have hands-on work whenever possible, especially as intro material. I want them to experience chemistry in action as part of the learning process, not as a result of the end of the unit.
I found a shared folder of mini-labs that I've modified into simple experiences for students. Each reaction demonstrates one of the five indicators of chemical change (temperature change, solid formation, gas formation, color change, or odor released) as well as modeling the five types of chemical reactions.
These labs have been sprinkled through the unit as qualitative demos. Students aren't expected to take data or do deep analysis - just observe and experience. These demos are available as reference materials on test days so they can construct responses with actual chemical examples.
Changes for next year
A notable crash and burn for this unit was my attempt to use a card activity to introduce and practice balancing. In principle, it looked great - students would work together to find coefficients for balanced equations. The cards provided a tactile interface and a way to discuss and debate the process.
In reality, the cards added overhead to an idea that totally took the focus away from the skill. They struggled to conceptualize multiple copies of the cards as represented by coefficients. They had a hard time sorting through the large bag of laminated slips to find the right chemical formulas in the first place. All in all, it was a bust.
If I were to redesign that activity, I would do fewer equations and have multiple copies of the same chemical. They could add units of chemical to find a balance and then abstract those duplicates into coefficients. Live and learn for next time suppose.
One lab in particular (the iodine clock) was too early for them. It relies on temperature and concentration differences, but they haven't learned about those yet. I think next time, I'll push that into our solution chem unit so they have a better connection between reaction rates (time) and amount of reactants.
I need to do a little bit more with exothermic and endothermic reaction qualities. These are fun to demo, especially when a reaction gets colder, but students struggled to explain why endothermic reactions, when they absorb heat, feel colder to the observer. Point of reference relationships weren't really a focus and that led to some misconceptions we'll need to address.
I saw some cool stuff about AntennaPod offering a year-end summary generated from listening stats. Even cooler, it's all done locally on the phone rather than in some cloud account. Good for them.
Anyways, since getting a teaching position at the local high school, my commute time has dropped from 40 minutes each way to about 10 minutes. I could never focus on listening and working at the same time, so my commute was my main time to listen.
Beyond drive time I felt bored with what I would listen to. That's on me for not branching out but - there are bits here and there but most series felt worn out and just rehashes of topics they'd already discussed in earlier shows.
I feel like I'm also preferring written work, kind of like ignoring the tutorial video because I prefer a written guide. Podcasts feel kind of like the video tutorial when I would prefer to do a longer reading session.
Maybe I'll come back some day, but for now I think my podcast listening days are mostly behind me. I don't think podcasting is dead and I actually think it's one of the more accessible forms of creative media, especially for students. I just think it's interesting that my preferences for down time entertainment have changed so dramatically in so short a time.
Test days are tough for my students because they need to be able to show skills in practice. This year, we're not giving any rote exams - there are no multiple choice questions and no true/false statements to guess on. Students are being asked to put skills into practice on their assessments. As a support, all of the tests this year are open note - students can reference their materials to build responses because I'm looking for application.
I don't stand up front and teach much. I try to spiral the activities so basics get built upon incrementally to develop the skills they'll be tested on. This can take time and it's uncomfortable because there is no "end" to an idea or concept. They can't put a skill in the rear-view mirror and just carry on to the next assignment.
Building up the productive struggle capacity helps students develop resiliency and work toward the end goal of being able to do the thing. Finding the balance between too easy and too hard is tough, especially when students arne't used to that kind of work. Metering out activities so they build their own meaning is the biggest challenge because many just give up. On my part, I need to resist the urge to jump in and confirm or deny their initial responses.
One thing that would help is closing the feedback loop. Some of these tasks are paper and pencil, so there is a gap in between completing the task and the feedback that comes with it. Using some digital tools can help, but then the device battle is on. Having some tangible, disconnected tasks helps with attention but feels harder for them in the moment.
I talked with students today about how many are doing double the work. They're so focused on what they're missing from not working with the system in place that they're falling further behind with the current material. There is time enough to do all the things, but it's up to them to engage in the work to make progress.
My wife and I have vastly different preferences for casual listening music. We don't disagree on everything, but I tend to listen to early-mid 2000's emo/punk metal and hardcore when I want something on the background and she's more into American folk and acoustic.
Our kids decided they wanted us each to pick two songs and they would vote on which was better. We indulged the children and my wife graciously let me turn on two songs that would normally never be played outside of some earbuds in the house.
The first one I picked was a fantastic cover of Hey Ya by Alex Melton. The video includes a short intro on why he covered it this way vs the slower versions you normally hear.
The next one I chose was still fast and driving, but much heavier. He is Legend is an old hardcore band and their song The Seduction is good one to get pumped up to.
The music video for this song is worth watching - the story is told as a puppet show with a Mario-like story and a giant purple metal-vocals monster. Also, I'm not sure why there was a trend of metal drummers not wearing shirts in music videos, but that's a thing you'll see here.
My wife had some good stuff, too. This is a group from the early 2010's called The Oh Hellos. I'll need to listen to some more of their music sometime.
A favorite we both share is Gregory Alan Isakov. I actually got to see him perform live in Chicago this year, which was a treat.
Anyways, in the end, the kids voted my music as the funniest, which wasn't the original challenge at all, but it felt great to win.
This is my first year teaching with Google Classroom. It's tough to counteract the kool-aid that is Google stuff in schools, but it's safe to say that I'm definitely not a fan of the platform. It's not an LMS and it doesn't really make things easier to find or complete. It handles document creation and sharing permissions really well, but it isn't anything that could be done earlier with tools like Doctopus (which was incredible, by the way).
Alas, here I am. I come from Canvas, which has issues of its own, but I find myself really missing the flexibility of linking different items together in the LMS. Mainly, if I use a rubric to score something in Classroom, the only way to get that data is to go back to the assignment to find that student's data. There is no overall student page with aggregated data for each assignment shown in a useful way. It's not even possible to scrape because it's all a bunch of javascript instead of useful data.
I think my best discovery so far is the "picture upload" assignment. I can have students do work right into their notebooks, which means fewer copies, and it's all in context with the instruction. They submit a picture to an assignmentin Classroom and I have some nice annotation tools to leave feedback right on the photo. They can look on their paper and make adjustments as necessary rather than waiting for me to stand over their shoulder and point.

In addition to photos for submissions, you can unlink rubrics from the assignment score for qualitative feedback against standards (or other criteria). It took me a while to figure out, but I use this a lot. But, like I mentioned above, you have to prompt students to go back to the assignment to see that feedback. And you can't export it. At all.
...and yeah, that's about it. Other than making feedback a little nicer and being able to annotate student uploads, it's really just a firehose of stuff. The feedback cycle is kind of facilitated, but without better notifications or a way to get back to those cyclical things, it's a one-way stream of information.
Given all that we know about how people learn, it's sad that companies really shoot for the low hanging fruit and let marketing and hype take care of the defecits. It's even more disappointing that so many buy into it wholesale.
Yesterday, I did something dumb: I let my own attitude get in the way of modeling appropraite responses to behaviors. It started with a simple seating chart change. They're always a big deal because students like the familiarity of sitting in the same place with the same people. The switch this time was to help groups of students at different levels of achievement on a test talk about their mistakes and do a little peer teaching. The problems are that A) I didn't prep them for that kind of work, and B) I didn't clearly explain the reason for the change.
I let me own annoyance at their annoyance get the better of me. I kind of reamed out once class in particular. Instead of taking a step back and asking them to trust the process I had in place, I threw the same attitude back at them. Which led to a really great rest of class.
I'm more embarrassed about my own response than I am annoyed at the response to new seats. I need to own that I didn't model an age-appropriate response to their own anxieties. That's the next best step - recognize that our responses to frustration compounded one another and we all suffered as a result.
The classroom is a community and we all impact it one way or the other. My own attitude has an outsized effect on that community given the nature of my role. I'm back today with fresh eyes and ready to move on slightly more wise than I was yesterday.
We're in the middle of writing chemical formulas and names right now and this unit is just mind numbingly boring. It's important for fluency and foundational for chemical reactions, but I just don't have a good way to tell a better story about ionic compound naming.
My attempt this year is to at least turn some of the practice into a small game. This is something we'll use mid-unit to mix the practice up a little bit. The focus is on writing and naming compounds after you've done transition metals and polyatomic ions, but you can substitute any of the ions on the template for any level of bonding.
Each group needs two differently colored dice. They have 10 rolls to write different ionic compound formulas and names. The instructions on the template say to get to at least 35 points, but you could have teams roll until someone gets 10 unique compounds.
You can grab a copy of the template here (Google doc link).
You could mix up a couple different versions of the template and have more variety in the names found. Groups can work together to write the names and get more practice in that way, too.
It isn't much, but I'm hoping it adds a little variety to the routine. If you make modifications or if you have other ideas on how to make this chapter less of a drag, feel free to get in touch via email.
A couple weeks ago, I managed to write a post from my phone because I finally took the time to get my site build process pushed to the server. Today, I spent a few minutes Googling and tweaking to get a better mobile flow set up.
Termux is a handy Android terminal emulator which let me get the pieces connected. To test publishing from my phone, I wrote a short post using nano which was a less-than-ideal experience.
I reinstalled Markor, a great Markdown editor for Android to use as my writing platform. It lets you navigate between directories on the phone and has a nice writing interface. It also lets you set up templates, so my post front matter is ready to go when I start a new post.
The hardest part was getting my repo into shared storage. By default, Termux doesn't have shared storage access because you don't need it for anything. I finally found a blog post which pointed me to the Termux wiki termux-setup-storage to show the storage permission popup. I copied my repo into a shared folder and presto: I can now use Markor to edit.
Baby steps.
There are very few bands that leave significant lasting impressions on me. I'm kind of picky and I have specific tastes, so I don't explore new music too much and prefer to listen to my regulars. This morning at work, I came across a live album put out by The Postal Service and it brought back how wonderful and memorable that group was. They only put out one album in 2003 as an experiment in writing and recording music by sending physical tracks back and forth across the country and I still rememeber almost every word to every song. Listening threw me right back into my old 1994 Ford Tempo with the tape casette adapter.
My biggest weakness, by far, is not planning far enough ahead in teaching. I know generally where I want to be on a given day, but I often don't finalize what I'm doing until the day before (or even the morning of in some cases). This, by the way, is not a good thing. It means I'm feeling rushed or flustered more often than not. I know the content but I need to get better at knowing in what order and when I'm teaching the content.
I took some of my own advice and got in touch with our instructional coach. My department is great but they've all been teaching the same courses for years and I'm just returning to the classroom after several years of coaching myself. I felt like I needed a good, grounded conversation with a third person to get some solid plans in place.
I have to say - it was wonderful. I can only hope my interactions as a coach were as thorough, as supportive, and as non-judgemental as my talk was yesterday. She challenged me to do two things:
- Think ahead two weeks. That's a good span of time to vet what I've planned and to make adjustments if anything needs to be changed based on student skills or assessment results. More than two weeks is overkill because it may all be changed eventually and two weeks is digestible. The other benefit is to have copies ready one week ahead so at that point, I'm locked in.
- Put together a master binder for the semester. Unit by unit, activity by activity. Including all of the planned notes, both blank and filled in. This gives me a paper copy I can flip through in one spot so I'm not hunting for files or presentations in my drive. Making notes on those pages will give me a single source of truth for locations and any edits that need to be made year over year.
Thinking back, my student teaching didn't really prep me to think this way. My mentor was wonderful in every way, but she also flew a little loose. So, I stared using the same methods, but I think that has hurt me in the long run. Over the next several weeks, I'm going to really push to have solid plans two weeks ahead. The beginning will be hard because I need to plan two weeks form now as well as two weeks out, so almost a month in advance. That will let me get on to a good roatation by the winter break and be ready to head into the second semester.
Baby steps...
The other day, I got my blog moved solely to my VPS and buildong from a git push. That will let me write from either of our home computers instead of relying on just one to write, build, and then push a published site dorectory up.
I got curious about how else I could write, so I went exploring and discovered Termux, an Android terminal emulator that I'd heard of but never actually used. It's surprisingly robust because I was able.to install got, openssh, and a couple other pqckages to get my site source cloned on to my phone. This.post was written using nano on my phone, which is super bizarre.
since I just need directory access to write Markdown files, I think my next step is to find a nice, simple Markdown editor to do the composing and then pop into Termux to commit and.push my updates. I'm excited about more options for writing on the fly with this.
One of my goals this month was to make my publishing more flexible. I'm finally publising with a git hook, rebuilding this site on the server (8 seconds) instead of slowly building it on a Chromebook (35+ seconds).
AndiS put me on the right track back at the start of the month. Tonight, with a little more help from Brandon and a bunch of Googling, I got it working.
I'm using a pre-receive hook based on a 2014 post from Jason Stitt because the console will display the progress and fail in case something goes wrong instead of publishing a busted site.
Now that I have this all centrallized on my VPS, I can pull the repo on to any machine and pick up with the writing.