How so?
I’m trying a new Jekyll theme, Basically Basic, made by the same developer, Michael Rose, for the Minimal Mistakes theme that I use for my professional website. He’s done excellent work supporting and maintaining with his Minimal Mistakes theme, so I’m comfortable with his new theme as a starting point.
I’m on a Windows 10 21H1, using WSL2 and Ubuntu 18.04 LTS. In that virtualized OS I am using rbenv to manage my Ruby versions. Already, expecting a non-information technologist to build or configure such an environment is a concern. I suppose a docker image may help? Digression: writing this motivated me to upgrade Ubuntu to 20.04. Thanks to this careful description of the process, I did so without interrupting my post-upgrade environment, which is no small engineering feet.
Noted I used this method to copy the 18.04 image export to my OneDrive as a remote backup. It enabled a PowerShell progress bar on the copy transfer process.
With those details out of the way, my first step was to cd to my desired disk location and create a new Jekyll website
jekyll new recipes
If you’ve been through my website, that premise shouldn’t surprise you. I then cd recipes
to snap in the Basically Basic theme, using the Ruby Gem Method to install the theme and gem requirements.
Great! Ready to go, right? Not so fast. Welcome to Ruby. My first attempt at a server run is met with failure. The ffi gem is incompatible with… something. I don’t know whether Ruby 3.0.0 or Jekyll 4.2. To fix this failure I must backport ffi to version 1.14.2.
I run bundle exec jekyll serve --livereload
and I’m met with this error.
/home/figgles/gems/gems/jekyll-4.2.0/lib/jekyll/commands/serve/servlet.rb:3:in 'require': cannot load such file -- webrick (LoadError)
This is a known Ruby 3.0.0 bug. I fixed it with this:
bundle add webrick
Whoops! I run
bundle exec jekyll serve --livereload
and I’m met with a ffi library error. However, I cannot replicate the error after updating my OS. If you do experience this, you can run the following:
Update the Gemlock.file toffi (1.14.2)
bundle remove ffi
bundle add ffi --version=1.14.2
Finally, I can successfully launch my local compiled website and begin making edits. Since I am an information technologist, that’s fine. These convolutions, however, make recommending this approach more problematic, especially for non-IT users, such as researchers or faculty.
]]>You know the drill. Before you get to the gate to board your flight, you must remove all electronics and metal, shoes, wristwatch off, double-check your pockets, bags, and finally, pass through inspection – like a mini-colonoscopy. Anyhow, flashback a couple of hours earlier, where I’m dressing for the day. My only pair of shorts is my now way-too-loose shorts. Slap on a belt, and I’m fine-ish, right.
Well…
There I am, converting into Mahatma Gandhi to get through inspection when a TSA agent helpfully reminds me; “and your belt, too.” Unthinkingly, I unthread the belt and queue “Moon River.” Um… My hands grab hold of my gravity-obeying shorts.
Houston, we have a problem.
Now, don’t forget, you must hold your hands overhead for the full-body scanner. By now, it’s clear that I decided to wear my dad’s shorts. I see beads of sweat form on the forehead of every TSA agent watching my exam. (Yea, they’re human, too.) I spread out my legs, and shove my belly out as far as I can, and assume the pose. I hear a faint “ding” as they steer me out of the scanner. Of course, we’re not done, yet. I think there’s one Don Rickles reincarnated as a TSA agent, who insists on a pat-down. Really. “Sir, you better grab those shorts tightly, no one wants them to drop.” Thank you, captain O.
The good news is my shorts didn’t drop. The public and I are relieved at this. I scramble to rethread my belt before I re-acquire every other earthly possession to end this abomination.
Now onto my flight.
Oh, by the way? I never fit so comfortably into airplane seats as I do now.
]]>You all have been so kind about the two recent notes I’ve published. I’ve been thrashing that story around for years in my head. As my friend Jim tells me, you don’t have to be writing to be writing. I’d love to write some more, as I’ve found it quite enjoyable and satisfying, but, well, not yet. So, I hope you enjoy this journal entry of sorts.
This is a big week for me. Duke University is holding their TechExpo this Friday, and I’m one of the co-chairs. I’m soberly honored to be working in this capacity along with so many bright lights. We have the highest registration recorded yet. The venue will be at capacity if everyone shows up. Event planners, reading this, are nodding sagaciously. I’m looking forward to attending as many sessions as I can, but I suspect I’ll be Nervous Nelly, running the floor, looking for raging fires to extinguish.
On other fronts, I’m the president of my neighborhood’s HOA, and that is been challenging, put mildly. We’ve got a Gordian knot of informality to fix, and we’re doing our best. Yet, let this cup pass, Lord, I beg you.
Finally, we’re helping Alexa find the right college for her. My children fill me with ineffable pride to see who they are and who they continue to become.
My mom Lorraine is stable now. Her health is strong — all of us should be so healthy, at 89. The staff at Chatham Commons have been wonderful. This was my biggest worry. Not that assisting living is a Shangri-La, of course. Mom is still Jack Nicholson’s Randle McMurphy at the Oregon State Mental Hospital, and this continues to be a challenge for her. Kris is visiting with us, and her, of course, as I write this. For mom, seeing her sons is like water for parched lips.
In short, we’re juggling 5, 6, 7 pins in the air. Keep us in your prayers, I promise we’ll do likewise.
As for the title for this post, I’ve always thought this is a fetching tune. Then I read the lyrics. Good stuff. Not bad for a bunch of punks from Brooklyn.
]]>What you think,
that the world owes you?
What’s gonna set you free?
Note: I originally posted this on my Facebook account on August 1st, 2009. However, Facebook is getting rid of their “notes” blog-like ability, so I’ve moved this content to my blog, with some edits for clarity.
This was my post the day after we adopted Holly from the Wake County SPCA. It is essentially copied from the SPCA pet catalog.
My name is Holly, and I am a spayed female, white and brown brindle Pointer and American Staffordshire Terrier. I am 10 months old.
Hi there! My name’s Holly. One, two, three, go! Come on, let’s race! No, really! Come on! Just so you know, I’m a go-go-go kind of girl! I’m a little shy when we first meet but give me a couple of treats and a few minutes, and you’ll find me by your side in no time. I am also sweet, not to mention a cute little girl who’s looking for a family to keep up with me. Of course, I know whoever I end up with will love me and take care of me for the rest of my life. I occasionally indulge in coprophagia, but I’m sure a steady discipline will help me break this disgusting habit. I like finding new things to chew on, and my new parents will need to make sure I don’t get into anything I’m not supposed to. I will reward your patience with lots of kisses. Are you the perfect person for me? I currently weigh ~40 lbs. and should reach ~45-50lbs.
]]>A tall and thick web of branch silhouettes cut the night sky. A few stars and a bright moon cut through, enough to dimly illuminate the forest around us. There was nothing extraordinary about it, other than the infinite richness around us. We were with other dads and daughters, and we all went for an ordinary walk at the campsite. My eight-your-old daughter and I walked hand-in-hand. Being with her friends excited her, being with me excited her; yet we were walking as if to get the mail.
When I was 8, I played alongside a lake against a star-splattered night with my brother and sister. Kris showed me the Milky Way; Karen showed me the isthmus to a usually unreachable island. That was also an ordinary night, a night that now sneaks up and extraordinarily fills me.
For my daughter, that walk was just a brief moment between the scary campfire stories, marshmallow smores, and watching and playing with the campfire.
For her dad, it was something else.
]]>This is the conclusion to “Two Guys Watch a Burning Building.” I like this title better. The burning house, and attendant ne’er-do-wells, are incidental. That’s Karen, on the left, above.
The windows of Kris’s bedroom were the smallish size of the windows in my room. Their bottoms began a couple of inches above my belly button, making passing through it difficult, even for this expert climber-into-and-out-of-er. Is this really the only way out? I go back into the room and look down the stairwell. The flames are much brighter now. I can feel the heat rising from the steps. The flame’s luminosity pierces the veil of smoke, the fire now visible. The smoke hurts my lungs, my eyes — I must get to fresh air. My young mind assessed that leaving Kris’s door open would be better for the house and my options. Of course, this only made my situation worse.
Karen and I decide there’s no choice but to get on the roof. I wiggle through the window. From my earliest memories, I’ve had a dreadful and stultifying fear of heights. I don’t this evening. There was a thin ledge of the roof in front of Kris’s window, which I follow to the larger roof over the living room. My new waiting area seems safe for now while Karen and I consider our options. Looking right, I see a light rise of smoke from Kris’s window — not too heavy. The roof wasn’t hot, and Karen didn’t see flames in the living room below me. This seemed to buy us time.
Our house on Walnut street had a unique aspect. Our first floor’s foundation was 6 feet higher than the other houses on the street. When last year’s flood had hit us, this was a blessing. Whereas our neighbors had the water level fill their first floor, we only had 2 feet of water on the first floor. As different as fire is to water, our blessing was now my curse. My one-story perch was roughly a story-and-a-half drop. Karen and I didn’t want me to jump. In our desperate hope, we continued to look for alternatives.
Wisps of smoke crawl from the eaves of the roof in front of me. Looking to my right, the smoke had become dense. Karen tells me that my brothers and the neighbors are frantically looking for a ladder tall enough to reach me. In the floor beneath Kris’s bedroom was our laundry room. Our dog, Louisa, and our cat, Handsome, were trapped there, barking and mewing.
Louisa was a beautiful silky-grey Weimaraner. We bought her as a gift for my Mom’s dad, “Pop-pop” as a consolation companion after he lost his wife, my Grandma, his everything, to cancer a couple of years after my father died. “Louisa,” the Skrinak-forced feminine form for “Louis,” my Pop-pop’s name, seemed fitting. Dogs make lousy gifts, however, and Louisa was soon an adopted Skrinak. Handsome was a stray Siamese tomcat badass that was always roaming the neighborhood, calling for in-heat partners, and getting in fights. Yea, you should get your male cats fixed. You don’t want to hear that every night. Handsome got his name when Karen, seeing him for the first time, said, “Hey, handsome!” Handsome and I had a unique relationship as well. Kimmer is a fantastic storyteller and loved to play up the voodoo-superstition of our youth. “The Devil can control cats, Kyle.” Kimmer somberly informed my wide-eyed self. Afterward, I was terrified of that cat. Handsome would chase me around the house. One night I worked up a rouse to have Handsome chase me, wherein I lead him to the basement, and closing it tightly. Score one for me. Looking back, I don’t understand what I was afraid of. Still, Handsome was our pet, and I thought he was the best cat ever.
Fires are loud, and the cacophony of all the discernible sounds only becomes horrific in retrospect. I’m sad to say we lost our pets in the fire, trapped in the laundry room. It still hurts as I type this.
My squatting calves, trembling and tiptoe, are eager to get me out of there. Karen and I agreed — my only option is for me to jump and for Karen to “catch” me. The two adult men, across the street, continue to savor their evening’s spectacle. “Kyle! I’ll break your fall!” as Karen positions beneath me. “How? What does that mean?” “I don’t know; we have no other choice. Just jump.” We sure seemed like we didn’t have any other options, as the fire was spreading and there were no firefighters in sight and my jostling brothers and neighbors could not find a ladder.
I jump.
Karen, God bless her, broke my fall. I didn’t aim, nor think of how to fall. I trusted Karen to resolve the details. It is amazing what we can do in love. Tears well up as I think of my beautiful sister, but this wasn’t her time, yet. We collapse together on the ground. Miraculously, neither she nor I were hurt. The whole drama resolving in a single fall. My neighbors take us in as Karen as we decompress. Karen was hoarse. My knees and ankles sorely burned but I broke nothing. Yes, I was as big for an 11-year-old as I am for a 54-year-old now.
I suspect those two adult men would have come in handy at that precise moment. We, nor they, will ever know. I was later told they were volunteer firemen, waiting for the firetruck to arrive. Sometimes we embellish our memories in vindication or vituperation. Whatever. They will remain shiftless and useless cowards in this story. I pray they found redemption elsewhere.
The fire didn’t consume the house, leaving the frame in-tact. Though I don’t recall their arrival, the fire crew did show up in time to put out the fire and slap us with a costly water charge. Thanks, guys. My perch would have been fine for the keystone cops of firefighters to arrive at their leisure. Though the flames never spread to the living room, the heat was so intense that it melted our television and stereo. Who knows?
Our house was a charred blemish on E. Walnut Street for several months afterward. Our dear friends gave us a place to stay while Mom figured out the details, with us finally moving to Wyoming, PA. I remember my first bedtime after the fire. The eerie orange-glow illumination of the old-style flip-clock before my closing eyes told more than time. I dreamt of fire raging behind a wall, struggling to break through and get me. In my waking moments, however, I never doubted I was safe.
My Mom has been through quite a struggle. I’m unclear on how Mom figured all this out while single-handedly raising her family. She has told me, many times, “I never signed up for this.” The only way I can make sense of all this is this; “It is amazing what we can do in love.”
Postscript, January 23rd, 2021. My Mom passed away on October 29th, 2019, two-some years after I wrote this. I wrote a eulogy honoring her extraordinary life that you can read here.
]]>I forget when in 1973 the Skrinak family house caught on fire. I’m guessing it was in late Spring, but that was so long ago. I do remember this — it was warm enough for my 11-year-old self to be on the roof of my house in my pajamas.
I went to bed after an ordinary day, around 9 PM. We had largely restored our house after the devastating 1972 flood from Hurricane Agnes that ravaged the Wyoming valley. The neighborhood had largely returned to its old Kingston self. We had also recently reshuffled the second floor so all of us siblings were able to get our separate rooms. Not that I minded sharing with my brothers, as many of us youngest siblings love our sibling’s company. Unlike now, a kid per room was a luxury.
As for my bedroom, I had three smallish windows. With the room darkened for sleep, I could see the streetlight-diffused night sky illuminate my room in a row of three rectangles. As I drifted off to sleep, I’d peek my eyes open and closed as I settled in.
My Mom had gone out with her friends, a long-deserved night of fun. She rarely went out, and it was good to see her have some down-time. In the kitchen directly below my room was a cooking pot of vegetable oil. The details as to why are unimportant. The cooking oil was soon forgotten by some other distraction, and a grease fire started. Grease fires move quickly — too quickly. The fire consumed the kitchen in minutes and spread to the dining room. The steps to the upstairs were off the dining room, and the nascent fire blocked access to the steps. My siblings — Kim, Kris, and Karen — scrambled out of the house, unable to get to me.
From my bed, I peeked my eyes open. The row of windows had slightly dimmed. I wasn’t sure why. I couldn’t smell the smoke as it was just starting to fill the room. I closed my eyes to go back to bed. The second time, I peek again. The windows were even dimmer but still clearly set. My eyes faintly burned when I opened them. The Sandman? Really? Odd, but I was so relaxed and comfortable. The smoke was like liquid Nyquil (the old formula), and I felt great. A third time I stirred. I didn’t hear anything (the white-noise wash of crackling house was steadily getting louder), but I “sensed” Karen calling for me.
Kimmer and Kris were scrambling to put the fire out. Someone called Mom, and she rushed home. Neighbors were helping as well with their garden hoses. Karen was focused on yelling for me to get out. The fire department had not yet come. Though a mere half-a-mile away, they took over 30 minutes to respond. I suspect more time than that. They play an imperceptible role in this story. Though I now daily pray for firefighters and first responders and honor the work they do, the hero in this story is Karen.
The last time I was this relaxed was when I was under anesthesia to get my tonsils out. “Kyle! Kyle!” Again, I sensed Karen. I didn’t hear her. I felt her, dreamt her, calling me, demanding my attention. “Kyle! Kyle!” I forced my eyes open. A million pinpricks greet my eyes. I wanted to shut them hard to keep the burning pain out. My breathing was difficult, but the difficulty had come gradually, in my sleep. The windows now were nearly imperceptible. “Kyle! Kyle!” I rose out of bed and walked to the stairwell. Looking down the steps, I see a dim eerie light show of a shifting red-orange-yellow, from behind a thin black smoke veil, raging from the kitchen. I couldn’t see the flames. The light above the steps, which was my night-light, was darkened by smoke. Unmistakably, something was wrong. Now I’m fully awake.
I pass through Kris’s room to his two smallish windows. I snap out of my dream-like state, and now I can hear Karen frantically and unmistakably calling my name. I poke my head out the window. My eyes and lungs get immediate relief. I see Karen, hands cuffed to her mouth to focus her shouts, and she is relieved to now see me. I can see our neighbors gathering to watch the unfolding drama.
Amidst the chaos, I notice two adult men, across Walnut Street, casually watching, having found their evening’s diversion. Karen and I now scramble to figure out how to get me out of there.
]]>--livereload
option in jekyll serve
, I can see my content updates in my browser, in full display context, when I save my markdown.
Jekyll runs on Ruby. Unless you’re a Ruby developer, the occasional visit to a ruby compilation brings a lot of left feet to the dance. Ruby has two environment managers, rbenv (which I use), and rvm. Ruby uses gems for libraries, logic, and object encapsulation, and the environments work to manage dependencies. That’s all nice, but when you simply want to blog, ensuring you’re up to date with your environment becomes a big, hairy, fugly ball of “what just happened?” At work, we use Ruby version 1.9.3 to compile SASS to CSS. Yes, we’re working on that update. It won’t come soon enough. Supporting such an old version, however, comes at a high cost.
I like to keep my code reasonably current. I check for updates from the theme’s author, as well as ruby and gem updates. If I spent even half my day in Ruby, I’m sure I’d be fine with this standard maintenance. But I don’t. I’m usually in mainstream office-type applications. I’m a manager, after all.
Livereload is great, but, until recently, the round-trip from file-save to Jekyll-reloaded web page was in the 10 - 20 second range. I was in the 4 - 6 second range on my Mac-brew managed ruby system years ago. (FYI — I tried natively compiling Ruby and gems in Windows and it is a royal PITA. It’s possible but not worth my time.) I saw the drop in performance when I switched to Windows 10 some years ago, using the new WSL service. Seeing my content in context is important to me. A few months ago, I upgraded my WSL to WSL2 and saw improved performance, now in the 5 - 10 second range. Better, but still annoying for my temperament and preferences.
We’re seeing increasing interest in static websites. This also means more options in everyone’s favorite frameworks or languages. Python has Pelican and others, Node has Hexo, and, not wanting to be left uninvited to the dance, even PHP has Sculpin. At the DrupalCon Nashville 2018 conference, I had the pleasure of attending Steve Francia’s keynote. While there was a lot of good stuff in that keynote, he mentioned his work on the Go programming language at Google, and unsurprisingly, on the Go-based static website generator Hugo. Given my favorable impression of Francia and his work, I was curious to check out Hugo.
My initial impression was, well, wow. Hugo has markdown, was painless to install (I used linuxbrew on WSL2) and most importantly, Hugo is fast. Shockingly fast. My simple “hello world” website renders in under a second, heck in under 100 milliseconds. It’s nuts. So what happens with more content? I’m assured Hugo scales quite well and retains its blazing speed. I also took full advantage of a new CI/CD system in GitLab where a push to the specified git repository branch publishes pages on their service but that’s another topic.
Smitten with this performance, I started to dig into Hugo as a new publishing platform for this blog. I soon discovered that the Hugo theme world is still lagging behind Jekyll’s. Using GitHub’s star rating method, the most popular Hugo theme, which includes Disqus support, is 1/7th that the rating of my current Jekyll theme. Additionally, the features and display of the better supported Hugo themes are missing aspects of my Jekyll configuration that aren’t trivial to give up.
Dejectedly, I spun up the old (current) environment blog environment. I see Ruby has a 3.x major release out. I update and things break. Here we are again. I completely uninstall and reinstall ruby, rbenv, and gems. Then I see Jekyll and my theme doesn’t play well with Ruby 3.0.0 so I set my environment to use Ruby 2.7.2, which fixes the problem. More of the same ol’, same ol’. Then I get jekyll serve
to launch and, wait, what? Jekyll is now generating my page and site updates in under a second? At some point in the past few months, someone, somewhere, made some adjustments, and now my Jekyll system is, while not as fast as Hugo, it is fast enough, and I can keep all of my customizations for this blog.
Here are the stats as I update this page:
Regenerating: 1 file(s) changed at 2021-01-16 11:59:14 _posts/2021-01-16-jekyll-hugo-and-me.md Jekyll Feed: Generating feed for posts ...done in 0.7113945 seconds.
I noticed that I have updated the Jekyll Gemfile requirement from 3.4 to 3.7 as a version minimum. Perhaps this accounts for the dramatic speed increase? Or Microsoft has implemented some architecture changes to WSL2 that is helping? Or both? Or something else? Whatever the reason, I’ll take it.
It looks like this blog will be on Jekyll for a little while longer.
]]>