Author: Dennis

  • Recently on HN, Reddit, and even the New York Times, I’ve been reading articles and comments discussing whether or not COVID-19 is the death knell of in-person universities. They make some decent points:

    • Colleges did make the transition to online
    • Students were able to learn
    • Especially in America, large groups of people in a small room won’t be medically feasible given the continued pervasiveness of COVID-19.
    • Some students say they even learn better online than in person.

    These are all valid points. I learn better with a hybrid approach, where most days I will sit in class but on the days where I have to work or something comes up, the lecture is still uploaded to watch later in the day. The hybrid approach also has the added benefit of allowing students to review the lecture a second time (or more) if they so desire.

    There is, however, an issue with one not so small portion of collegiate education online: the labs.

    For the Harry Potter fans, consider that taking Physics, Chemistry, Biology, or Geology without any of the labs is analogous to Professor Umbridge’s approach to teaching Defense Against the Dark Arts without practicing what you’ve learned. You’ll have all the theory you need, but have you really reached the full extent of your education if you don’t know how to apply that knowledge in the lab?

    Labs are more than just showing up and tooling around with cool gadgets. They’re a practical application of knowledge gained in the classroom, and invaluable hands on experiences that prepare students for work after college (industry or academia). For the students who learn and understand best by doing, like myself, there is no replacement. 

    Another facet of in-person education: the performing arts. Rehearsals for orchestra, big bands, and large choirs would require massive space following the 6-foot spacing rule, and masks can’t be worn if you play woodwind or brass instruments. Choir would be a disaster, as that’s nothing but people constantly forcefully exhaling in a room with other people.

    The online experience

    Friends and colleagues of mine from Eastern Washington University have, overall, given me the impression that online learning in the Spring quarter was an awful experience. This is OK, and I’ll explain why: high schools, colleges and universities around the globe were given NO lead time to prepare for teaching their subjects online. Students who were expecting fully in person classroom experiences were instead given Zoom lectures.

    So, between poorly prepped Zoom lectures and expectations of the traditional college experience, it’s no wonder people had an awful time of it.

    This can be fixed, of course, and I expect that many teachers will spend time over the summer retooling their lesson plans and lecture setups to accommodate what is sure to be another term spent in quarantine, given COVID-19’s current rate of infection across the US. This still doesn’t address how to handle lab work, which is necessary for a lot of jobs that require graduate education (medical field, research, engineering, and more).

    How can we fix this?

    One solution may be to rapidly develop VR labs, but this lacks physical feedback as well as requiring every student who wants to take a lab to probably spend a cool grand or more in equipment (not everyone already has a VR capable PC). This would be a replacement, but not even close to being as good as the real deal.

    Remember those little science kits for children? Super size and super charge them for the college student labs, and you might be able to carry on with in home experiments. This of course isn’t feasible for any of the more hazardous, and of course more fun experiments that require ventilation hoods, protective shielding, or controlled chemicals and supplies.

    So what can we do in the meantime? The answer is of course to adapt the best as we can, and hope that a viable vaccine is near on the horizon. Wear a mask in public. Keep your distance. Use common sense. We’ll get through these times, and maybe, if we act together, thinking about the welfare of ourselves and one another, these times might just be a little shorter.

    A side note, the massive increase in Zoom usage has resulted in many hilarious faux pas by people unaware their cameras are still on.

    I wrote this post under the assumption that we will be returning to life as we knew it before COVID-19 in the near future.


  • I just jogged for 25 minutes straight. That’s the longest I have ever jogged continuously in my life.

    If anyone ever asks if couch to 5k works, I’m going to give them a resounding yes!

    I’ve been at this for 5 weeks. In the beginning, I was blowing my heart rate up to 176bpm after running for only 60 seconds!

    Today, I ran 25 minutes straight and my heart rate only peaked at 162, with an average of 152. 

    WHAT! I mean, WHAT?!?!?

    Seriously, I’ve never been into running, but I need to lose weight so I thought I’d give it a go. I never thought I’d actually see the day where I could jog more than 5 minutes without being totally winded. Look now, 5 times that and while I was breathing pretty good, I walked home from the track without stopping or sitting down.

    This may be one of those areas where training is everything. I used to get really disheartened when running because I would push myself to total failure. The couch to 5k approach, however, took a measured course towards building running stamina over time. This is something I hadn’t considered, but it’s worked.

    I still have 4 weeks to go on training, but I’m very confident that 30 minutes straight is within my reach. I can then focus on getting to what matters, improving my speed, and eventually start entering some local 5k races.


  • I went on a hike this beautiful Memorial Day weekend up to the Rocks of Sharon, a famous hiking destination in the Spokane area. Instead of starting from Iller Creek on the North face of the Dishman Hills, I opted to start at the Stevens Creek trailhead. It’s closer for me, coming from the West of Spokane, and it’s a shorter, albeit much steeper, hike up to the top.

    The heat map of my hiker shows that, compared to walking out at the end, my pace was pretty reserved for the hike up. The trip was well worth it though, I had a fantastic time climbing up. I took a break halfway there to rehydrate and have snack, then picked the pace right back up.

    I crossed two dozen hikers coming down or hiking to different destinations, and passed a handful of people on the way up. There was a crew of mountain climbers at “Big Rock”, about half a dozen of them, scaling the rock face. At the top, several people were perched on different rocks, and after a few minutes, so was I.

    Going up to the Rocks of Sharon is my favorite hike in the area. Sure, Palisades Park offers a better view of Spokane, as does Edwidge-Woldson Park, but getting up to the Rocks of Sharon provides a stunning view to the South Plains.

    That, and access to both Isler Creek and Stevens Creek is drive in only, and the hike up is fairly demanding, so you’re surrounded mostly by people who are serious about getting a good hike in for the day.

    Stevens Creek trail leads you up a hill that is adjacent to “Tower Mountain”. I talked to some bikers while resting, and they said they put in on the South Hill. I didn’t ask them where, and I’m kicking myself because it would save me an extra 15 minutes of driving each way if there’s a South Hill entrance to the Iller Creek / Stevens Creek area.

    All in all, I killed two hours getting to the top, taking a good look around, hiking a bit of the ridge trail, and getting back down.

    It’s a solid hike for an afternoon, and can easily be made into a day trip just by continuing to hike more of the Iller Creek trails.

    In


  • I just got a raspberry pi 3 working with a 3.5″ screen using Pi-Hole and running the PADD status board.

    My largest concern was in buying a 3.5″ TFT from Kuman, and not from adafruit (official vs. not). Fortunately, Kuman has a repo for all of their drivers and displays that work seamlessly with the pi 3. 

    So after installing raspbian lite, installing pi-hole, installing the Kuman driver for the 3.5″ display hat, and then rotating the display output 180 degrees, then finally installing PADD, I have a working pi-hole unit.

    I decided to go with a full raspberry pi 3 instead of a pi 0 (w or otherwise), or a pi 4 for a few reasons:

    1. I wanted a hardwired connection, since this will be a DNS server for multiple devices I didn’t want the extra latency of wireless or fiddling around with ethernet dongles for the 0. Any money I would save by getting a 0 would be lost in adapters and resulting complications.
    2. I didn’t want to have to solder on the GPIO pins for the pi 0.
    3. Most cases for the 3.5″ TFT screens are made to fit a full pi board, not the 0.
    4. I wanted better specs than the pi 0, but didn’t need the capability of the pi 4.
    5. I’ve worked with the pi 3 before and I know it’s reliable.
    6. The canakit for the pi 3 is cheaper than ever, possibly due to the popularity of the pi 4. The pi 4 would have been overkill for this project.

    After building, I pointed my phone, my tablet, and my tv at the raspberry pi, and started browsing and watching. After 18 hours of uptime, 709 requests have been blocked out of 8001. I have noticed sites like imgur and Questionable Content running much smoother, and have seen an overall decrease in ads on mobile sites for articles. My next step will be to point my desktop at it, and see how it affects gaming (if there’s any notable lag).

    So for all of $80, I have network level ad blocking across as many devices as I want. Not too shabby.

    In


  • I’ve come across some articles (this one in particular) that bash on convertibles, and don’t pull the punches. 

    I have also noticed, during my recent search for a new car, that American domestics have all but given up the convertible form factor. Your options, as of 2019, for a new convertible are limited to the following: The Buick Cascada, the Chevrolet Camaro, the Ford Mustang, and, even though I would barely count it as convertible, the Tesla Roadster.

    Before I delve any further into refuting the alleged downsides of convertibles, however, I want to extoll their virtues.

    The Highway Example

    Imagine you’re driving down Highway 1 on the golden coast in the middle of summer. It’s a brilliantly bright day, heat tempered into comfortable warmth by the ocean air, occasional patches of mist brush against you, making your skin tingle. The wind is lightly tousling your hair, and you have a playlist of The Eagles and America music keeping you company.

    Now, forget everything in the above paragraph. You’re still driving down Highway 1, but you have no idea what it’s like outside b/c you don’t have a convertible. The A/C is sterilizing the ocean air, the roof prevents any sun from hitting you, and your windshield wipers dispel any mist on the windshield. It’s a clinical, detached experience, devoid of anything that makes driving enjoyable.

    That’s a large difference, but I think it best illustrates why you’d want to own a convertible. It’s not because it’s the fastest, or the most practical, or the safest. 

    It’s because a convertible lets you enjoy the world as you drive through it. It’s an immersive experience, and takes the monotony out of even the most boring of commutes, time and again. 

    But back to talking about convertibles

    I was a little cheesed that there’s not as much in the way of convertible selection as there used to be in America. I can understand why. 

    • They’re not as safe as their full body counterparts.
    • They’re not really practical for a family. (see the rise in SUVs)
    • They’re typically more expensive than their full body counterparts.

    I’d like to imagine that, even given the above facts, convertibles still appeal to the rebel in all of us, even more so than motorcycles. I’m going to rebut most of the claims made by Aaron Miller in the article I’ve linked to above in an effort to make the convertible more attractive.

    1 – He complains about bird poop

    This is laughable as argument number 1. I truly believe you’re more likely to get hit by bird poop walking in and out of work than you are by sitting in a convertible. 

    2 – He says: “Putting the top up is an enormous pain”

    Not really. I push a button, and the car takes care of the rest, even rolling the windows up. I don’t think I’d ever consider it a “pain” or even and inconvenience. It’s just part of parking a convertible if you had the top down.

    3 – He states: “It rains”

    Um… duh? Of course it rains, that’s when you don’t put the top down. I’ve never had either of my convertibles leak on me, and one was almost 20 years old.

    3.1 – He complains about trunk space.

    Neither of the two convertibles I’ve owned have had tiny trunk spaces. In fact, my Chrysler 200 has a massive trunk when you’re not storing the top in there, and even when you are, there’s still a decent amount of space.

    4 – He mentions mold

    Could this not happen to any car that gets water in it, maybe even by means other than rain through the top (e.g. snow on your shoes).

    5 – He claims they’re slow

    I didn’t buy my car to go fast. I bought a convertible to cruise with the top down and enjoy it. And honestly, my 200 isn’t going to be breaking any land records, but it’s no slouch of a car, either.

    6 – He gives some random, outdated example

    Not even worth a response.

    7 – He says convertibles are flexible

    On this point, and on point 11, we are in total agreement. It can be unnerving to feel your car “flex” a little from time to time, but you get used to it. This is a byproduct of the convertible form factor, and unavoidable without being re-engineered.

    8 – He says “We don’t want to see you”

    I cannot tell you how much I don’t care.

    9 – He claims the shapes suck.

    This is largely subjective, but I have to disagree. The new Mustangs, Camaros, and the Tesla Roadster look pretty sweet. I’m not a big Buick fan, but even the Cascada looks pretty sharp.

    10 – He says you can’t hear the radio

    This complaint leads me to believe the author has never ridden in a convertible made within the last 20 years. My 2000 Camaro had a sound system w/two modes. The first mode was for driving with the top up, and, surprise, the second mode was for driving with the top down. You had to manually toggle it, but it worked very well. My 2012 200 also has this feature, but it’s toggled automatically.

    11 – He says: “Sunburns Suck”

    Again, …duh? Sunburns can happen in convertibles, but can also happen if you leave your arm on the side of the car with the windows down. 

    I would hope that I’ve refuted enough common complaints to restore someone’s interest in convertibles. If nothing else, I’d like to be able to send this to someone next time they get snarky about convertibles.

    In

    ,

  • I first started using DreamHost shared hosting in college, as an affordable means of hosting web projects. It includes domain management, no hassel SSL certs, MySQL databases, and more. It’s a great solution for most PHP projects.

    My largest frustration was being unable to host more interesting projects; due to the restrictive nature of shared hosting, I had no installation privileges on the server. Without these, running composer is next to impossible. I recently pieced together the process for getting Laravel on DreamHost, and I wanted to share my findings.

    Note: I’m assuming that you, the reader, have experience with DreamHost and Laravel, and I won’t bog down this walkthrough with every minute step of the process.


    Configuring DreamHost

    Step 1

    Create a new domain/subdomain.

    Step 2

    Add /public to the end of the web directory field. This is because Laravel’s index.php file is located here, and is the entry point for all requests.

    Step 3

    If you’re not using another database provider, create a database through DreamHost (it’s included). On the DreamHost admin menu, under “Advanced”, you’ll see “MySQL Databases”. Create a new database, and note the Hostname URL, database name, database username, and database user password.

    N.B. If you’re doing local development, you’ll have to add your IP address to the database user’s allowed IP address field. You can find it by clicking the username in the table at the bottom of the databases page. Any DreamHost domains are added by default.


    Preparing Your Laravel Files (locally)

    Step 1

    Create a new Laravel project locally, or get into the parent directory of your existing project.

    Option A (No Source Control)

    Step a2

    Zip the directory, and upload it to DreamHost. For Mac/Linux users, you can use SCP to quickly upload from the command line. Otherwise, use DreamHost’s in browser FTP service.

    Step a3

    Unzip on the server. You can do this via DreamHost’s in browser FTP service.

    Step a4

    Configure your .env file with the APP_URL and database values you noted down earlier.

    Option B (Using Source Control)

    Step b2

    Initialize a git repository in your Laravel project if you don’t have one already. I would recommend using Laravel’s .gitignore to filter out sensitive files, but it’s your choice. Publish your repository.

    Step b3

    Clone that git repo in your domain directory on DreamHost. git clone https://url-to-git-repo.git . That period is important, as it tells git to pull files to current directory, and not create a new directory.

    Step b4

    Upload any missing files via SCP or DreamHost’s in browser FTP. You might find a hint as to what files are missing in your repo’s .gitignore file.


    Finalizing Your Deployment

    • Before you run any migrations, update app/Providers/AppServiceProvider.php::boot() with
    public function boot()
    {
    Schema::defaultStringLength(191);
    }

    This will allow migrations to work with DreamHost’s older MySQL database system.

    • Make sure you run your Laravel migrations (locally, or on the remote server. You’ll have to mess with specifying what version of php to use on DreamHost, so I would recommend running them locally.)
    • Run through your .env file to make sure you have all the necessary fields filled out.
    • Read Laravel’s deployment documentation, it’s always a good idea to read that information from the source.

    And that’s it! Now you’re ready to start developing and deploying Laravel applications for dirt cheap.

    I’d like to thank Alesh Houdek for the well written article that allowed me to get up and running on DreamHost.