Leinninger.com https://www.leinninger.com Etcetera. n. et cet*er*a: Other unspecified things of the same class; and so forth. Tue, 21 Jun 2022 15:16:12 +0000 en-US hourly 1 https://wordpress.org/?v=6.4.3 132951533 Homelab Outage and Recovery https://www.leinninger.com/2022/06/21/homelab-outage-and-recovery/?utm_source=rss&utm_medium=rss&utm_campaign=homelab-outage-and-recovery https://www.leinninger.com/2022/06/21/homelab-outage-and-recovery/#respond Tue, 21 Jun 2022 15:16:10 +0000 https://www.leinninger.com/?p=3285 Last Wednesday my AC didn’t work either because of the load buffer module (SMM) that delays turning the AC on if the generator has been activated. Normally, it keeps the AC from switching on immediately and drawing too much juice when the generator hasn’t fully started. In this case, it failed and defaulted to “open” meaning no power to the AC. Hopefully, Generac will extend warranty work because of the failed units and replaced it with a default “closed” SMM (so the AC won’t be unavailable if it fails again). I called the generator service company and they had a repairman schedule to visit the next day.

esxi vmware homelab

That repair was supposed to take “5 – 10 minutes.” The UPS on my homelab server rack is good for 15 minutes or so. Around 12 minutes into the repair, it started beeping like crazy and my whole lab shut off without powerdown. (ESXi VM server which includes media server, automation server, web server and DNS/Pihole VMs plus the SAS array of storage.) Servers don’t like when that happens. It wouldn’t post when I tried to boot. I really, really should have shut everything down in advance… but I wanted to save my over 600 days of uptime on the VM host!

After I got home from a weekend of racing, I spent several hours getting it back up and running by pulling hardware, re-installing VMware to new SD cards (it boots from internal SD cards), running diagnostics on the RAID arrays, etc. Luckily I had the DNS and Web Server VMs backed up to another server and powered that on to cover me for the weekend… but I thought I was screwed. (None of that effort contributed to the solution.)

The fix was to run the Lifecycle Manager… which is a Dell EMC server feature that walks you through server setup and maintenance. I don’t think I used it since I set up the server! It walked through the automated firmware upgrade and it reinstalled BIOS, etc. That unexpected process allowed me to post. I just had to mark all of the disks in my RAID arrays as “good, offline” and re-scan the foreign configuration and I was back online.

Lessons learned:

  1. Backups are important! I have the backup server which allowed me to get up and running on Thursday so I could keep working from home. But, I had no home automation or media server… they rely on hardware that doesn’t work in the spare server. If all else failed, I also have online “cold storage” backups for everything, but the recovery time for those can be weeks or months.
  2. Don’t get too dependent on home automation. 2 of my automated light switched have gone bad (Insteon units which I need to replace and re-configure with Z-Wave). I was able to control them with Amazon Echo commands though… if my server was online. Also, our automated cat feeder is dependent on the automation server. We were gone for a weekend and had to leave bowls of food out for them. I bet it was gone in the first 24 hours.
  3. My daughter’s birthday was on Sunday (6 years old!). While at the racetrack. she made up her mind that she wanted to watch dvd rips of the Gummi Bears when she got home. When we got home on Sunday afternoon, her world fell apart because I didn’t get the server back online yet. I’m working on setting her expectations that the world of entertainment offered by the server is a convenience and isn’t always available when she has screen time.
  4. Practice makes perfect. I haven’t had to perform any significant maintenance on my ESXi host for almost 2 years. In the future, I’ll practice more frequent roll-overs to my backup host and add a USB controller that matches the one in the primary host for automation interfaces. Then, I’ll only be without a media server if this happens again (see #3 above).

Like any other hobby, running a homelab can be a lot of work. I’ve become VERY dependent on the main VMs that run on my host. Most of the experimental hosts could be lost and I could easily start over with them to play with Docker and K8s, etc. I’ll have to make the routine maintenance part of the “fun” of my homelab, too.

]]>
https://www.leinninger.com/2022/06/21/homelab-outage-and-recovery/feed/ 0 3285
Fifth Generation Subaru Legacy GT Bypass Valve Upgrade https://www.leinninger.com/2020/02/21/fifth-generation-subaru-legacy-gt-bypass-valve-upgrade/?utm_source=rss&utm_medium=rss&utm_campaign=fifth-generation-subaru-legacy-gt-bypass-valve-upgrade https://www.leinninger.com/2020/02/21/fifth-generation-subaru-legacy-gt-bypass-valve-upgrade/#comments Fri, 21 Feb 2020 16:55:31 +0000 http://www.leinninger.com/?p=3223 This write-up applies to 2010 – 2013 Legacy GT models with 2.5 turbocharged engine. A stock engine engine/tune is unlikely to benefit from changing you bypass valve.

Replacing the factory turbo Bypass Valve (aka blow-off valve or BOV) is far easier than I initially thought. Whether or not you should is hotly debated, but it’s really up to you. My custom tuned Cobb Stage II was leaking boost and this fixed it, but that may have been due to the age of the original more than the design. Here’s how you do it (since I couldn’t find any other overview):

Parts needed:
1.) New bypass valve. I went with the GFB Hybrid (T9233) because it allows me to use either hybrid or full recirculation easily.
2.) Spare plastic body fasteners. (You may break some during removal of the intake snorkel)
3.) Zip tie or small hose clamp (optional, see step 11)

Tools needed:
1.) 8mm socket or nut driver (snicker)
2.) 10mm (socket and ratchet)
3.) 12mm (socket and ratchet)
4.) Screwdriver or similar tool to pry fasteners and hoses
5.) Vice grips (recommended) or pliers

Steps:
1.) Remove the 2 plastic fasteners for the cool air intake snorkel, then lift it out.
2.) Remove the passenger side radiator fan by disconnecting the electrical connector in the bottom corner. Then remove the 2 10mm bolts on the top. Lift the radiator fan straight up to remove.
3.) You can now easily access the Bypass Valve from above:

Factory Bypass Valve


4.) Slip the vacuum line off of the Bypass Valve.
5.) Use an 8mm socket or nut driver to loosen the upper hose clamp on the Bypass Valve.
6.) Wiggle the upper Bypass Valve tube out of the hose while gently prying the hose with a screwdriver. There’s a lot more flex in the lower hose than you expect. It will allow you to pull the upper hose off of the Bypass Valve and pull it aside to access the lower hose clamp.
7.) Use your vice grips to lock the spring-style lower hose clamp open… or try to do the same with pliers. Wiggle the lower hose off of the factory Bypass Valve.
8.) Compare the orientation of the inlet and outlet to your factory Bypass Valve. Also ensure that the vacuum line is aligned. Most aftermarket Bypass Valves allow you to rotate the vacuum line as needed if you remove a few screws. Follow the manufacturer’s instructions. The GFB Hybrid (T9233) did not require any adjustment.
9.) Insert the new Bypass Valve into the lower hose and align it with the upper hose. Remove your vice grips from the lower spring-style lower hose clamp.
10.) Insert the new Bypass Valve into the upper hose. Tighten the 8mm hose clamp so that it is snug. No need to go gorilla on it.
11.) Slip the vacuum line onto the vacuum inlet on the new Bypass Valve. A zip tie or small hose clamp may be necessary to ensure a good seal if the outer diameter of the inlet is smaller than the stock Bypass Valve.
12.) Install the passenger-side radiator fan: slide it straight down into place. Reinstall the 2 10mm bolts on the top. Re-connect the electrical connector on the lower corner of the fan.
13.) Re-install the intake snorkel and secure it with 2 plastic fasteners.
14.) If your Bypass Valve spring requires tuning, follow the instructions provided by the manufacturer. My throttle response benefited from a slightly tigher spring. It held boost without any adjustment, though.

Visibility Was Better With Fan Removed

Here’s how the hybrid sounds (not too loud) with a full Invidia exhaust:

2011 Subaru Legacy GT w/ GFB Bypass Valve Interior, Stationary
2011 Subaru Legacy GT w/ GFB Bypass Valve Exterior Rear, Stationary
2011 Subaru Legacy GT w/ GFB Bypass Valve Exterior Front, Stationary
]]>
https://www.leinninger.com/2020/02/21/fifth-generation-subaru-legacy-gt-bypass-valve-upgrade/feed/ 12 3223
On Aging Parents, Life and Loss https://www.leinninger.com/2019/02/14/on-aging-parents-life-and-loss/?utm_source=rss&utm_medium=rss&utm_campaign=on-aging-parents-life-and-loss https://www.leinninger.com/2019/02/14/on-aging-parents-life-and-loss/#comments Thu, 14 Feb 2019 23:00:31 +0000 http://www.leinninger.com/?p=3197 I’ll be honest with you, this post is going to be challenging for me to write and for some to read. I’ll do my best if you do the same. Let’s get started:

When I last updated, I explained that we had a lot going on. As it turns out, I didn’t know the half of it. In October of 2017, both of my parents were celebrating Halloween, handing out candy and commenting on everyone’s costumes with our family in my brother’s house. They still lived in their home that my grandfather built. 15 months later… my mom has passed away and dad is alone in assisted living.

Within a month, my parents’ health began to worsen in alternating increments. The first big scare was Christmas morning (2017) when my mother was too weak to get out of bed and ended up in the hospital with a UTI. A few months later and we were taking her to urgent care because she “fell and hurt her knee”… in retrospect, she probably had a small stroke. We took her to the ER that night (another UTI, too) and decided in the ER with the whole family that it was time to find an independent living community.

We briefly pursued this direction a few years earlier, but my father was very resistant. They had too much “stuff” and weren’t ready to part with it. In hindsight, the additional care might have improved their quality of life significantly. This time, everyone was very serious about the endeavor. We kept my mom apprised of our progress while she get better in the hospital. We established a budget and timeline, then researched a few communities. After a handful of visits, we arranged a company to move them and their 2 pets. In just 3 weeks, they were living in a moderately-sized 1-bedroom apartment on the ground floor about 15 minutes from their house. At first, it seemed promising. The meal plan and care from the staff helped, but my parents continued to “take turns” in the hospital each needing care a few times over the next 3 months. The peak of this situation occurred mid-summer, 2018. My father was hospitalized (and later in long-term physical rehab) for a serious infection for almost 2 months while my mom was at the apartment alone. We maxed out the care program offered by the community, but the staff wasn’t trained to the level of care she truly needed. We didn’t realize that her dementia/Alzheimer’s had progressed to moderate. She wasn’t drinking enough water, not eating enough food and just not taking care of herself. When we visited, she put on a great show. We didn’t know how much help she really needed.

In late August, the day before my father returned to their apartment, my mom went to the ER by ambulance. She was having a dementia-related panic attack exacerbated by confusion from yet another infection. This was the first time mom looked really bad in the hospital… but she appeared to get better quickly, even joking in the hospital. Her care was extended by a stay in a rehab facility near their apartment. Eventually, she was even walking (with help) and making plans for Halloween in a few months. She was in the hospital and rehab for 5 weeks.

My mom taking Kara for a walk in post-hospital rehab.

During my mom’s recovery, our family decided to upgrade my parents’ care to assisted living with guidance from the hospital staff. We identified a handful of assisted living locations and decided to move to a community very close to their house (which were just finishing cleaning out to prepare for sale). The cost was significantly greater, but the level of care increased accordingly. The staff is amazing, their apartment is very nice (2 bedroom to accommodate all of their stuff) and their pets were welcome.

Things seemed to calm down for a few weeks, but it was obvious that mom’s dementia was worsening exponentially. In the evenings she was more confused and prone to repeatedly calling out. For years, she could use an iPad for crossword puzzles, video calls, email and web browsing… now she had trouble turning it on or figuring out how to charge it. The staff tried to monitor her fluid intake, but could only do so accurately during meals. Mom, always the social perfectionist, continued to put on a good show in the dining hall.

Mom’s plans for Halloween would never happen: on October 30th mom was back in the hospital. Their new apartment was closer to their “old neighborhood” and allowed for mom to be transported to a familiar hospital nearly around the corner from my brother’s house. We didn’t know then how much time we would be spending at that hospital, but were very glad to have the care, guidance and support of the staff at Beaumont in Grosse Pointe. This stay was different: mom was having trouble swallowing and the speech therapist wasn’t able to get her to follow instructions consistently. We discussed moving mom to the memory care area of their community for closer monitoring and therapy. She was in the hospital/rehab through November, but we were able to drive her to their community for Thanksgiving dinner. This time, mom went back to the hospital (followed by rehab) briefly before returning home.

We wanted to celebrate mom’s 80th birthday a week-or-so before Christmas, but realized that her health was very complicated and unstable… and had to call it off when she returned to the hospital 3 days before her birthday. Again, this stay in the hospital took its toll on mom. We didn’t know it, but the repeated infections weakened her to the point where she couldn’t fight off pneumonia. It just wasn’t detected with tests or examinations and she went home (against protest) instead of rehab.

A week later (Jan 2) and Mom was in the ER with respiratory failure. We all rushed to the hospital and the staff explained that she needed a breathing tube. Her kidneys weren’t working well and her (existing) heart condition was the root cause. I can still remember the minute-by-minute details, but will spare you. After a few days, her condition improved slightly and the breathing tube was removed, but her respiration never fully recovered. Her other organs were not working correctly. At the same time, my father was admitted to the hospital. With all of the stress, he wasn’t taking his medications and had to be admitted. This turned out to be a blessing: he was able to spend time with my mom.

While on the topic of blessings, climate change provided us with oddly warm weather so a smooth 50+ mile commute each morning for updates from the ICU staff was possible. The construction on ALL of the expressways between our house and the hospital wrapped up, further shortening travel time. Mom was able to recognize all of us until she became unresponsive and that time meant a lot to us.

Gina and I went home to have dinner and rest for a night after a few days at the hospital, but we got a call that mom had taken a turn. I went to the hospital and joined by brother and dad. The doctors told us that we only had a few days (at most)…

Mom’s pastor was out of the country, so our pastor and his wife visited, talked to the kids and spent time with us. We moved to a peaceful room and my brother and I stayed with mom until she passed peacefully. We cried a bit, but were grateful for the time we had with her. It was hard telling my dad, but he was able see her one more time, too. We started to make arrangements and my dad’s health improved enough to go to a nearby rehab for a few weeks. He’s home now and we’re preparing for mom’s memorial this weekend.

I never prepared for my parents to be “old” or get sick. I knew one day they would be gone and tried to brace myself, but caring for them and putting together a plan was more than I expected. The past 15 months have been a roller coaster of work, fear, worry, stress, sadness and (sometimes) relief. We should have planned better but luckily my mom had clear instructions for us to follow as her health declined. We’ve learned a lot and still have a lot to take care of, but I want to share some of the basics in case they help others now that I’ve had some time to reflect and gather my thoughts:

  • Be active. Visit your aging parents as frequently as possible. Get them out and about.
  • Don’t take anything lightly. The big things send them to the hospital, the small things are all warnings. Some of the major flags for our situation were trouble swallowing, not drinking enough fluids, missing medications, “small confusions” that ended up being UTIs and eventually dementia.
  • Be involved in their medical care and listen to the doctors. Ask questions. If possible, keep a journal and share it with their healthcare providers.
  • Know their medications. Make sure all of the meds are taken when they are supposed to be.
  • Keep track of their important documents including government-issued ID.
  • Make a budget plan. Update it frequently.
  • Don’t rush into things. Evaluate all of your options: care, housing, medical treatment, funeral arrangements, etc. At the same time, don’t postpone things unnecessarily. This seems contradictory, but there’s a balance to be found.
  • Value the time you have together and do everything you can to preserve your memories. (I’ve never been a big photo/video creator.)

Our family grieves in waves. Happy memories outnumber the difficult ones from recent months… but those memories are most fresh and both bring tears. In time, I know the hard times will fade and happy thoughts will once again take over. I crafted a pair of photo boards for my mom’s memorial service and this helped me more than I expected. We trying our best to keep dad happy; his grand-kids are a constant source of support and new, happy memories. We are working with him to improve his health so that he can more actively participate in our family events and, hopefully, outings. We’ve been dreading the future for so long. It’s nice to look forward to things again and hope for continued improvement and family time.

]]>
https://www.leinninger.com/2019/02/14/on-aging-parents-life-and-loss/feed/ 5 3197
Late Summer 2017 Update https://www.leinninger.com/2017/08/31/late-summer-2017-update/?utm_source=rss&utm_medium=rss&utm_campaign=late-summer-2017-update https://www.leinninger.com/2017/08/31/late-summer-2017-update/#comments Thu, 31 Aug 2017 04:14:27 +0000 http://www.leinninger.com/?p=3169 Well, no racing for us this year. The combination of a 1-year old and new engine/new racing class didn’t really work out. We’ve been able to spend some quality time with Kara at the state and metro parks, plus a few great trips to Northport, MI. The weather has been nice, but my work schedule (especially having my home office in the Mountain time zone) has severely limited my time outside during the week. Hopefully this will ease up soon in my new-ish role (promoted back into Sr. Management again: Sr. Director).

I’ve done a lot of work cleaning up our workshop this year. I’ve meant to clean it up and prepare to insulate/heat the shop so I can install the new engine in my racecar… but it’s turned into a lot of cleanup and corrections for lack of ventilation from our new roof (circa 2009). I also spent a few hours replacing the suspension and lifting my Jeep due to a need for new tires and shocks.

I’ve been keeping up with my retro computer collection: everything is still working and I find an few hours per week to enjoy my Amigas, PCs, Macs and Commodore machines. I’m almost through my Leisure Suit Larry bucket list: wrap up the series. I’ve owned about 3 or 4 versions of the game series (or parts of it) over the years and it’s time to finally wrap it up! (I took a short break for Space Quest and Police Quest in there, too.) I added a SX-64 Executive "e;portable" to my collection earlier this year and have had my eye on few Apple IIc computers, but the price or condition haven’t been up to snuff.

Most recently, I’ve been working on capturing/digitizing a few boxes of 8mm/Hi8/DV that literally fell out of my closet a week ago. I’ve found some amazing stuff on those tapes: lots of high school wrestling, some hanging out with friends, and an emotional collection of holiday footage with many family members that have since passed. The process is relatively slow as I must capture each tape in real-time. However, my setup is surprisingly effective: a Sony Hi8 camera connected via analog S-Video and Audio (when capturing 8mm and Hi8) to my Sharp DV Camera, connected via Firewire 800 to an Apple Thunderbolt Lightning Cinema Display, connected to my 2011 Macbook Air via Thunderbolt with an external Thunderbolt drive for storage. Both cameras are time base corrected resulting in decent quality considering the source media. The capturing process is taking a long time, but it’s mostly hands-off… the real work will be sorting, editing and finalizing for DVD (all source is 480p at best). Some of the content might make it to YouTube, but I’ll likely keep it private for friends.

That sums up a lot from the past few months. Seems like each season I hope to make more regular updates to my blog, but I end up doing this instead. More to come?

]]>
https://www.leinninger.com/2017/08/31/late-summer-2017-update/feed/ 1 3169
Lessons Learned By A New Father (Part 2) https://www.leinninger.com/2017/02/08/lessons-learned-by-a-new-father-part-2/?utm_source=rss&utm_medium=rss&utm_campaign=lessons-learned-by-a-new-father-part-2 https://www.leinninger.com/2017/02/08/lessons-learned-by-a-new-father-part-2/#respond Wed, 08 Feb 2017 17:59:24 +0000 http://www.leinninger.com/?p=3123 Christmas Eve Kara and DuaneWe’re almost at the 7 month mark with Kara. Everyone said that we should take lots of pictures because time moves so quickly. It’s true! It’s hard to remember the tough parts in the first 3 months and the progress made in months 4 – 6 is incredible! Here are more lessons learned:

  1. I mentioned in my last article that it gets a lot better after week 10… that’s true! But, 3 months is like cresting a hill and seeing nothing but sunshine, green trees, and blue water. You finally feel like your effort is paying off.
  2. That bedtime routing really starts to pay off after 3 months. We got a few full nights of sleep and it was amazing. We also woke up the next morning, double checked the baby monitor, and went to her room to make sure she was ok. We couldn’t believe she slept for 11 hours!
  3. Don’t get cocky, though. Babies occasionally regress. Our first experience with a regression was also Kara’s first cold. She just started sleeping through the night (at least a few times in the same week) and then she got an upper-respiratory/head cold. She barely slept for an hour at a time. It was rough. Then, we got sick. I was afraid of coughing and waking her up, so I slept on a sofa in the basement. It took a lot of effort to get back into a routine after Kara recovered from that cold.
  4. If your baby attends daycare, they’re going to get sick. Our line of thinking is that she will have a better developed immune system eventually… but it can be tough. She’s had 3 colds in the past 4 months… each time making her fussy and depriving us all of sleep.
  5. Despite the previous note on daycare, it’s so worth it. We think that Kara is very well socialized. The schedule at daycare helps establish a rhythm that we continue on weekends and holidays and it keeps things running smoothly. She participates in a lot of activities and the staff has helped her make a number of keepsakes. Kara is genuinely happt to see the staff when we drop her off in the morning.
  6. Around 4 months or so, Kara needed less constant handling and was happier to be on her tummy to play (with supervision, of course). She also started playing in an exer-saucer… kind of a bouncy seat that helps develop leg and core muscles. We could set Kara in her exer-saucer or on a play mat within eyeshot while we cook dinner or clean.
  7. Diaper rash and dry skin… we’ve figured out the few occasions that we’ve encountered to far… but it’s probably going to happen for you too. We found that a 2-layer approach to diaper rash works best: thick coat of bag balm followed by a zinc-oxide moisture barrier. Spread that stuff on like cake frosting! The dry skin ended up being a combination of winter (dry air and furnace heat indoors) and the baby-safe liquid soap we were using. We switched soap and mom lotions Kara up with Aquaphor every night before getting into her sleeper and sleep sack… and no more blotchy dry skin.
  8. At 6 months we started to introduce real food: blended sweet peas, bananas, pears, carrots, squash, mangos, chicken w/ sweet potato, etc. Each are blended and frozen into little 1 oz. servings. We can then pop them into the microwave for 10 seconds and mix with a little nursing milk. Kara has been very excited about this new activity. It’s mostly for fun, as the majority of her calories still come from nursing.
  9. Baby isn’t the only one to enjoy new activities with real food… get ready for baby turds. I noted in my last article that diapers from nursing weren’t too bad. While not the most horrifying experience, that first turd can be quite a surpise… especially if baby just enjoyed carrots! The smells are a little worse, but honestly, if you’ve been changing baby’s diapers regularly, you’re pretty well conditioned for the task by now
  10. At 6 months, Kara is focused on things around her. She anticipates things (like the next knee bounce or kiss). She watches the door and waits for us to get her when she cries in her crib. She is more engaged with us when playing and she gets a focused, intense expression on her face when she’s trying to figure something out (like reaching for blocks, trying out a new toy, or discovering a button on her outfit).
  11. We’ve gone on a few outings together and she’s had a blast: a week ago we went to the computer store for the first time. I was pretty confident that it would go well as Kara has been going to the supermarket with us since she was a few weeks old. She generally enjoys looking at all of the colorful boxes on the shelves as we roll down the isles. The computer store was a little more challenging. We went on the observed New Year holiday… along with what seemed like every other technophile in Southeast Michigan. Kara was starting a cold, but was still an absolute angel. She wanted to get out of her carrier and have me hold her… but really wanted to see all of the exciting new things on the shelves of the store. It was a little scary… especially because we ventured out on our own. I asked my wife if she would like to see a movie while Kara and I went out. This weekend, we went to Legoland in a nearby mall with my brother and his family. It was our first “kid activity”… also a huge success, it’s given us confidence in our decision to visit Disneyworld in April!

Kara is just starting to babble. She’s holding herself up on all fours, turning around on the floor and sitting up on her own. She’s not crawling yet, but we feel like it’s right around the corner. Gina and I refer to Kara as “smooshy” for the first 3 months. She had not yet developed much of a personality, lacked eye contact, and rare smiles were like oxygen to a drowning person. At 6 months, it can be hard to remember those times when your baby smiles when she wakes up and recognizes your face, giggles when you play together, or reaches for you when she’s ready to be picked up.

Stay tuned. I’m pretty sure I’ve barely scratched the surface of this whole new dad thing. I doubt I’m right about a lot of this, but it’s working pretty well for me at the moment. Let’s see what happens in a few more months…

]]>
https://www.leinninger.com/2017/02/08/lessons-learned-by-a-new-father-part-2/feed/ 0 3123
Upgrade Amibian and Enable WiFi https://www.leinninger.com/2016/10/19/upgrade-amibian-and-enable-wifi/?utm_source=rss&utm_medium=rss&utm_campaign=upgrade-amibian-and-enable-wifi https://www.leinninger.com/2016/10/19/upgrade-amibian-and-enable-wifi/#comments Wed, 19 Oct 2016 17:59:42 +0000 http://www.leinninger.com/?p=3095 UPDATE 12/1/17: Amibian 1.4 (or newer) is available, has wifi support and the latest Jessie updates plus a ton of great new feature that make it easier to use than my instructions below!!!!

In my previous post I outlined the (many) steps involved in setting up a raspberry pi 3 in a pi-top laptop case as an Amiga laptop. Since, I can't leave well enough alone, I decided that I wanted to get wifi working and make sure my distribution was more up-to-date than the official Amibian distribution offered. Here are the steps I took to make this happen (at least the steps that I can remember):

It might be worthwhile to use Win32DiskImager (or equivalent) to make a backup of your SD card before trying this. I did and it gave me great peace of mind.

Update Your Pi

(Make sure your connected to a network with Ethernet. Each step will take a while to execute... that's normal.)

  1. "apt-get update"
  2. "apt-get upgrade"
  3. "apt-get dist-upgrade"
  4. "apt-get install rpi-update"
  5. "rpi-update"
Fix Automatic Login
  1. Login using the Amibian defaults: root/1234... or whatever you've changed them to
  2. Edit (see the previous article for file editing from the shell) /etc/systemd/system/getty.target.wants/getty@tty1.service as such:
    1. Change the "ExecStart=" line to: "ExecStart=-/sbin/agetty --autologin root %I"
    2. Change the "Restart=" line to: "Restart=no"
  3. Save and exit the editor
  4. "reboot"

Functionally, you should be back to where you were before starting the upgrade process: Your computer boots and automatically starts the Amiga Emulator. Note, however, that when you quit the emulator "exit" no longer restarts the emulator. Instead it exits the current terminal session. If you want to restart the emulator, just execute your startup script with "/bin/bash ~/.profile". If you accidentally type "exit" out of habit and want to get back into a terminal session, press alt-fn-F2 (or any other alt-function-key combination) to switch to a different terminal session.

Install The Wireless Stuff

These instructions assume that you're using a Raspberry Pi 3 with a built-in wifi interface. Other adapters might be able to leverage some of this info, but the firmware parts probably won't apply.

  1. Install the wireless tools package: "apt-get install wireless-tools"
  2. Install wpa supplicant for secured wireless networks: "apt-get install wpasupplicant"
  3. Configure your wireless connection:
    1. Create and edit a wireless network config file named "/etc/wpa_supplicant/wpa_supplicant.conf" that contains:
      ctrl_interface=/var/run/wpa_supplicant
              ctrl_interface_group=0
              update_config=1
      
              network={
                ssid="network_id"
                psk="password"
                proto=WPA
                key_mgmt=WPA-PSK
                pairwise=TKIP
                group=TKIP
                id_str="Nickname"
              }
    2. Change "network_id" and "password" to your access point's SSID and passphrase. Keep the quotes around the values in that file, though!
  4. Configure your wireless network interface:
    1. edit "/etc/network/interfaces"
    2. Change or add the wlan0 section to...
      auto wlan0
                  iface wlan0 inet dhcp
                  wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
  5. Unplug your Ethernet and "reboot"
  6. When your computer restarts, Quit the emulator and test your wireless configuration from the shell with: "ifconfig -a". You should see something like:
    eth0      Link encap:Ethernet  HWaddr b8:27:eb:07:e5:49  
              UP BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:8 errors:0 dropped:0 overruns:0 frame:0
              TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1 
              RX bytes:1104 (1.0 KiB)  TX bytes:1104 (1.0 KiB)
    
    wlan0     Link encap:Ethernet  HWaddr b8:27:eb:52:b0:1c  
              inet addr:192.168.0.45  Bcast:192.168.0.255  Mask:255.255.255.0
              inet6 addr: fe80::ba27:ebff:fe52:b01c/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:14966 errors:0 dropped:9 overruns:0 frame:0
              TX packets:1307 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:1728707 (1.6 MiB)  TX bytes:171182 (167.1 KiB)
    With an IP address properly configured for wlan0.

There you have it! The official Amibian distribution will be updated soon, but I couldn't wait. If this all seems a little over your head, it might be worth waiting for a packaged solution such as theirs. Please comment with corrections, suggestions, and feedback! Happy Amiga-ing!

]]>
https://www.leinninger.com/2016/10/19/upgrade-amibian-and-enable-wifi/feed/ 2 3095
How To Build An Amiga Laptop Using Raspberry Pi 3 https://www.leinninger.com/2016/10/14/how-to-build-an-amiga-laptop-using-raspberry-pi-3/?utm_source=rss&utm_medium=rss&utm_campaign=how-to-build-an-amiga-laptop-using-raspberry-pi-3 https://www.leinninger.com/2016/10/14/how-to-build-an-amiga-laptop-using-raspberry-pi-3/#comments Sat, 15 Oct 2016 01:13:20 +0000 http://www.leinninger.com/?p=3070 My wife tells me that I've been overcompensating for my adolescent technolust now that I can actually afford some gadgets. I'm not arguing... especially with my latest project: an Amiga laptop that gets about 10 hours of battery life. I wanted an Amiga so badly when I was younger. They were expensive though and I made do with my Commodore 64c. I've since owned 4 Amigas (A600, A1200, A2000 w/ Video Toaster and A4000T w/ Video Toaster), and still own 2 of them. When laptops became more attainable, I lusted for one as well... finally buying on with my web development earnings in 1997. So, I figured that there must be some way to combine two of my fixations into one sill creation: The Amibian Laptop.

Amibian Laptop

WARNING: Always properly shut down your Pi from the command line before powering off. SD Cards tend to corrupt when abruptly powered off while reading/writing. The commands are simple: "poweroff" (turns off the power) and "reboot" restarts the Pi. Note: I used Windows to prepare my SD card, the references to software below are based on this platform. Linux, and Mac OS both have solutions that can be found with a little search engine effort.

The Parts

  1. Pi-Top Laptop Case (includes keyboard, 13" display, touchpad, and interface for rpi). I also recommend buying a pi-top speaker.
  2. Raspberry Pi 3 (Model 3 has the best performance and can be purchased from pi-top above or separately for less convenience and possibly a lower price)
  3. A heatsink for the Pi. (It gets quite hot when emulating.)
  4. A good-sized micro-sd card. I like having a few around to experiment with new versions and make backups. 32-64 gigs will store every WHDLoad game and demo ever made with room to spare for MOD files and Deluxe Paint.
  5. A 1080p hdmi display (might work with other television resolutions, but I used a 1080p monitor... more on this later)...
  6. An Ethernet cable to copy software, games, music, etc. once you're set up.

The Software

  1. Amibian! So far the most direct, lightweight, and best performing UAE image I've used.
  2. SD Card Formatter
  3. A way to extract the Amibian RAR file such as 7-Zip for Windows, The Unarchiver for MacOS or just use unrar for Linux.
  4. Software to write the image file to your micro sd on aWindows, Mac or Linux system.
  5. Kickstart ROMs. This is the "bios" (and part of the operating system) for Amiga computers. There are 2 ways to get these legally, both via Cloanto. I used the Amiga Forever distribution, which is a great product in and of itself (get the "plus" version at least to ensure you get all of the kickstart versions for WHDLoad). Alternatively, you can buy the Amiga Forever Essentials for Android and extract the ROM files for a little less money. I haven't done it, so your mileage may vary.
  6. Workbench 3.1 adf files. This is the operating system that we will install. ADF stands for Amiga Disk File. Workbench 3.0 will work too, but 3.1 has some nice refinements. Cloanto's Amiga Forever Plus distribution includes Workbench 3.1 adf files.
  7. Classic Workbench from Bloodwych. I recommend the UAE build available here.

The Process

Assembly and Basic Set Up
  1. Assemble your pi-top following the latest instructions provided. Of course, you don't need a pi-top to make a modern Amiga emulation box, but c'mon... IT'S AN AMIGA LAPTOP!!!
  2. Boot into pi-top os using the provided micro-sd card. Make sure everything works. Read the inside of the pi-top speaker box to install the software for the speaker. Make sure your audio is working in pi-top os (go to youtube or something) before you try setting it up for Amibian. Knowing your hardware is working beforehand might save you some time later.
  3. Using another computer, format your new, larger micro-sd card using SD Card Formatter (see software, above).
  4. Extract the Amibian image file downloaded in step 1 of The Software, above, using the unRAR software from step 3, above.
  5. Image your freshly formatted micro-sd card with the extracted image using the software from step 4 above. Note: Windows users will probably not be able to mount the .img file, nor read the micro-sd card once you have imaged it. Windows will likely even tell you that it is corrupt. If you've followed these instructions, I'm 91.675% certain it's not corrupt as you'll see in a few steps. Linux users need not worry, but honestly, you're probably used to doing things the hard way and will have a blast with this...
  6. Insert the new Amibian-imaged micro-sd card into your pi-top (if you use the ethernet method below, connect an ether cable before powering on) and turn it on. You pi-top screen is going to look bad... like "OMG, I just cooked this thing" bad. But, Amibian is just configured with a really incompatible screen mode by default. Here's where that 1080p display comes in handy:
    1. Disconnect the pi-top display from the raspberry pi board's hdmi connector and plug in your HDMI 1080p display. You should now see the uae4arm-rpi menu.
    2. Click "quit". (Pro-tip: once you've quit UAE, you can restart from the shell by simply typing "exit"... or just type "reboot" to reboot and UAE will start automatically, again.
    3. From the command line/shell prompt, use your favorite (cough-VI-cough) text editor to modify /boot/config.txt. (If you don't know how to use vi, which is built-in to this distribution, install "nano" with "apt-get install nano". Open the file to edit by typing "nano /boot/config.txt". Move around the file with the cursor keys. Save and exit by pressing "ctrl-k", then "x". To cancel (exit without saving), press "ctrl-c".)
    4. Add "hdmi_drive=2" (without the quotes, of course).
    5. Change "hdmi_group=1" to "hdmi_group=2".
    6. Change "hdmi_mode=16" (or whatever it is by default, I don't remember) to "hdmi_mode=81".
    7. For more information on these settings check out https://www.raspberrypi.org/documentation/configuration/config-txt.md.
    8. Save your changes
    9. Type "reboot"
    10. Your pi-top should reboot and be quite nice to look at now.
    11. Follow the instructions on the Amibian site to get your system set up. I'll also cover what worked for me in the steps below as of the time of this writing.
  7. From the uae4arm-rpi menu, click "quit" (again) and type "raspi-config" and press enter
  8. Choose "Expand Filesystem" to let the Rasbian installation expand to fill your entire micro-sd card.
  9. While you're in the config screens, change a few settings that will help later:
    1. Configure your location and keymap in Internationalsation Options
    2. Enable SSH in Advanced Options -> SSH (you'll need this for SFTP/copying files and remote management of your PI, the username is "root", the password is "1234"... really...)
    3. Enable SPI (Advanced Options -> SPI) which will allow you have your laptop automatically poweroff when you poweroff your Pi as well as adjust display brightness.
    4. Enable I2C (Advanced Options -> I2C) which you will need for your pi-top speaker (pt-speaker) to work.
    5. Set your audio to "auto" (Advanced Options -> Audio) so that you can choose your audio output manually later if needed.
    6. "Back" out of the setting menus and click on "Finish". You will be prompted to reboot, which you should do.
Amibian/uae4arm-rpi Configuration

Reality check time: you should have a booting system with a display that is working at native resolution in the shell and use4arm-rpi menu. We've set up your kernel modules for sound and power control. It's time to install Workbench (Amiga OS). You can simply install a vanilla version of Workbench 3.1 using the adf files from Amiga Forever Plus, but I will be detailing the instructions for the beautiful Magic Workbench for UAE from Bloodwych. Either way, you're going to need the Workbench ADF files...

Here are the modified instructions from Bloodwych to configure both a Picasso 96 (fancy, hi-res desktop) install as well as a more compatible ADVSP install (that you can switch between):

  1. Unpack the archive by double clicking its icon (do this on your regular computer)
  2. Place an uncompressed 3.0 (or 3.1) ROM file into the ROMS directory (on your pi-top), renaming it "kick3.rom" (I copied amiga-os-310-a1200.rom from the Amiga Forever Plus "shared" directory to my pi-top's "/root/amiga/kickstarts" directory using sftp, then renames it to "kick3.rom"... if you have the space, just copy all of the rom files over. You'll be using some of them to set up WHDLoad later. Then create a directory in /root/amiga called "hdd". Copy "System_ADVSP.hdf" and "System_P96.hdf" from the unpacked Classic Workbench folder (ClassicWB_UAE_v28) to "/root/amiga/hdd" on your pi-top using sftp. Copy the entire "Software" directory from Classic Workbench's "Hard Disk" directory to "/root/amiga/" on your pi-top. Finally, copy the Workbench ADF files from Amiga Forever Plus's "shared" folder to the "/root/amiga/floppys" directory on your pi-top using the same method.)
  3. (Start or restart your pi-top. Remember, if you're already in the UAE menu, click "quit", then type "reboot" and press enter.)
  4. (Go "Configurations" in the left menu and click on "Run Me First, then Delete" ONCE.)
  5. Select "Paths" from the left hand menu - tick "Use relative paths" and click "Reset to defaults" (This step doesn't apply to uae4arm-rpi. Instead, select "ROM" from the left hand menu. Then click on the "..." button, navigate to "/root/amiga/kickstarts" and choose kick3.rom. Click on "Hard drives" in the left menu and navigate to "/root/amiga/hdd" and choose "System_P96.hdf" for DH0:, "root/amiga/Software" for DH1 and "/root/amiga/PC" for the device named "PC". Select "Configurations" and save.
  6. When asked to insert a Workbench 3 disk, hit F12 (use the "fn" key to get F12 to work), enter the Floppy Drives tab and select an ADF for DF0: (Select "amiga-os-310-workbench.adf" that you copied to "floppys" above. I ran through the entire installation process following the instructions when prompted until it told me to remove the Workbench disk and reboot.)
  7. Go to the "Configurations" section and double-click/load (single click) "Run Me Second then Delete"
  8. Select "ROM" from the left hand menu. Then click on the "..." button, navigate to "/root/amiga/kickstarts" and choose kick3.rom. Click on "Hard drives" in the left menu and navigate to "/root/amiga/hdd" and choose "System_ADVSP.hdf" for DH0: this time, "root/amiga/Software" for DH1 and "/root/amiga/PC" for the device named "PC". Select "Configurations" and save.
  9. Click "Restart" and follow the on-screen instructions.
  10. When asked to instert a Workbench 3 disk, hit F12, enter the Floppy Drives tab and select an ADF for DF0: (Select "amiga-os-310-workbench.adf" that you copied to "floppys" above.)
  11. In the "Configuration" menu, select, then "Load" each of the A1200 and A4000 configurations. Using the information from the steps above, then select the appropriate Kickstart ROM (kick3.rom should work, or you can try the other ROMs available if you like) and fix the paths for the Hard Drives.
  12. Pat yourself on the back, grab your favourite bev and enjoy! (Whew! That was a lot of work!)
Making It Pretty

From here on out, you have a working Amiga laptop. Be sure that you "Quit" UAE from the F12 menu, and "Shutdown" from the shell/command line before powering off your pi-top!

Time for another reality check. You're practically a pro at this stuff now. You should now be able to boot into one of your configurations. I prefer the A4000 Turbo, myself. You probably wish it was a little higher, resolution, right. Well, here's how we do that:

  1. In your emulated Amiga, open the "System" hard drive icon on the left. Then open "Prefs", followed by "ScreenMode". In the left-hand menu, scroll down and select "UAE: 1024x768 32bit RGBA", then click "Use". This doesn't save the setting, so if you reboot, you'll be back at the lower-resolution ScreenMode. If everything looks good, open the "ScreenMode" Pref again, select "UAE: 1024x768 32bit RGBA" and click "Save"... now it will stick.
  2. If you prefer to use every pixel of your display (like I do), you can change the aspect ratio in your UAE settings. Press fn+F12 (which I'll just refer to as F12 from now on) to open the UAE menu. Make sure you've selected the correct configuration, then select the "Display" category from the left. Uncheck "4/3 ration shrink". Return to the "Configuration" menu and click "Save". If you like, you can mess around with the other settings in the "Display" section, but make sure you either save your settings or write them down beforehand. If you want a more accurate display, you can re-check "4/3 ratio shrink" any time you feel the need.
Optional: Tweaking Your Setup (Sound, Power and Display Brightness)

This section is optional, but I believe it really completes the configuration. Without making these changes, you will need to manually power off your pi-top when shutting down, your display won't be as bright as it could be, and you will need to use your headphones instead of the pt-speaker.

Display Brightness
  1. The detailed instructions can be found here. I've summarized them for reference with additional notes specific to Amibian. The installation scripts and instructions on github assume you're using the normal Raspberian distribution, which we are not.
  2. Quit UAE (F12, click "Quit").
  3. From the shell prompt, type "mkdir Downloads", this creates a Downloads directory
  4. Type "apt-get install wiringpi git "
  5. "cd Downloads"
  6. "clone git://github.com/rricharz/pi-top-install"
  7. "cd pi-top-install"
  8. "chmod +x install*"
  9. "apt-get update"
  10. "apt-get upgrade"
  11. "cp brightness /usr/bin"
  12. "chmod +x /usr/bin/brightness"
  13. You can now adjust your display brightness with "brightness [0-10]" (use a number between 0 and ten to set brightness directly) or just "brightness increase" and "brightness decrease".
Auto Poweroff When You Shutdown
  1. "cd /root/Downloads/pi-top-install"
  2. "mkdir /opt/pi-top"
  3. "cp poweroff /opt/pi-top"
  4. "chmod 755 /opt/pi-top/poweroff"
  5. "systemctl disable pt-poweroff.service"
  6. "cp pt-poweroff.service /lib/systemd/system"
  7. "cd /lib/systemd/system"
  8. "systemctl enable pt-poweroff.service"
  9. Now, when you quit UAE and execute either a "shutdown now" or "poweroff" command, your pi-top will actually turn off!
Sound via pt-speaker
  1. This was the most difficult part of the installation. It took a lot of guesswork and I don't know if I recall every step. You may need to refer to the instructions on github to figure it all out. This is what worked for me in the end.
  2. "apt-get install -y python-smbus wiringpi i2c-tools"
  3. "cd /etc/apt/sources.list.d"
  4. "nano pi-top.list" (or use another editor)
  5. add this on it's own line in the file: "deb http://apt.pi-top.com/raspbian/ jessie main"
  6. Save and exit
  7. "wget http://apt.pi-top.com/apt.pi-top.com.gpg.key"
  8. "apt-key add apt.pi-top.com.gpg.key"
  9. "mkdir /etc/xdg" (it might already exist and that's fine)
  10. "mkdir /etc/xdg/lxsession" (it might already exist and that's fine)
  11. "mkdir /etc/xdg/lxsession/LXDE-pi" (the pt-speaker package expects this directory to be here to install correctly even though we don't need it)
  12. "apt-get install -y pt-speaker"
  13. Add this line to /etc/rc.local before "exit 0": "/usr/bin/pt-speaker &" (this initializes the speaker when your computer starts)
  14. Reboot with either "reboot" or "shutdown -r now"
  15. You should now be able to hear audio. Test it out with Eagle Player and listen to a MOD file. If you are unable to hear audio through the pt-speaker, check out the troubleshooting info in the instructions.

There you have it! A fully functional Amiga laptop... with a not so great keyboard... but all, in all, it's a great device! If you want to boot into a UAE configuration without the menu appearing first, just uncheck "Show GUI on startup" in the F12 menu, under "Miscellaneous" and change "./uae4arm -f conf/autostart.uae" in /root/.profile to point to your prefered configuration, such as "./uae4arm -f conf/A4000\ Turbo\ v2.uae".

Check back in a little bit. I may post a summary of the steps needed to get WHDLoad configured to play almost every game and demo ever made for the Amiga. WHDLoad is already installed in Classic Workbench, but there's some more work to do to get it working. You can read about it here, or check out Nostaligia Nerd's quick video overview here.

It is likely that I missed a step or have a few typos. I completed this project over a few days and documented everything very late at night a few days after I finished. Please share your questions and suggestions in the comments below. Note that comments are moderated so yours may not show up immediately. Thanks and good luck!]]> https://www.leinninger.com/2016/10/14/how-to-build-an-amiga-laptop-using-raspberry-pi-3/feed/ 6 3070 My Home Server Closet Is Overkill https://www.leinninger.com/2016/09/02/my-home-server-closet-is-overkill/?utm_source=rss&utm_medium=rss&utm_campaign=my-home-server-closet-is-overkill https://www.leinninger.com/2016/09/02/my-home-server-closet-is-overkill/#respond Fri, 02 Sep 2016 17:40:57 +0000 http://www.leinninger.com/?p=3048 TLDR; I’m the king of overkill, but I want to do things the right way. I installed a managed switch just to have my DTE Smart Meter Energy Bridge in my server closet.


Server ClosetI got the DTE Energy Bridge for my Smart Meter a few weeks ago. My server closet is the best place for it, but I’m out of ports on my 24-port switch, so I temporarily installed it in my theater using an Ethernet jack on the wall. Having it dangling there drove me nuts, but I knew that I would remember to install it correctly if it was kept in plain sight.

When we moved into our current house, I made running Ethernet to (almost) every room a priority. Gina was a real trooper and helped crawl through the attic, pass cables through walls, and even dig into insulation to find lost cables where my hands wouldn’t fit. I built everything around a freecycled telecom rack with some rackmount shelves installed. All in all it has worked well and been through a few dozen iterations. But it has had a 24-port patch panel (rescued from the trash at work), a 24-port unmanaged switch, cable modem, router/access point, media server and web/home automation server.

Computer RackAfter 10 years I had run out of ports on the switch and my server closet is in a perfect location to install the DTE Energy Bridge: ~15 feet away from the exterior wall where the Smart Meter is installed. I had a few rarely used network devices that were unplugged to save ports as well (a/v receiver, bluray player, etc. that I only needed connected to update firmware). It was time to upgrade.

I decided to buy used since enterprise and small-business organizations alike tend to upgrade their network hardware regularly. I found a great deal on a Netgear ProSafe GSM7224 Managed Gigabit switch on ebay ($25, shipped). It arrived in used, but fair condition… and missing one of the rackmount ears. So, I set it aside along with the patch panel to deal with another day.

Network Panels and Smart Meter Bridge"Another day" happened today when I finally had some time off of work to do maintenance in my server closet. I fabricated a rackmount ear out of a generic ear for Belkin hardware that I had laying around and attached it to the switch. After re-configuring the rack once again (moving shelves, keyboard trays, etc. around), I installed the new switch and patch panel. The switch was configured by the previous owner in a way that wasn’t working for me. So, after a factory reset and network speed test, we were up and running.

Finally, I moved the Energy Bridge into the server closet, plugged it into the switch, mounted it to the interior wall and called it a day. Most people would have just unplugged something and been done with it. That would have driven me nuts. 2 hours later and I feel like I actually accomplished something… what that is, I’m not sure, but I know I did it the right way.

]]>
https://www.leinninger.com/2016/09/02/my-home-server-closet-is-overkill/feed/ 0 3048
Lessons Learned By A New Father (Part 1) https://www.leinninger.com/2016/08/30/lessons-learned-by-a-new-father-part-1/?utm_source=rss&utm_medium=rss&utm_campaign=lessons-learned-by-a-new-father-part-1 https://www.leinninger.com/2016/08/30/lessons-learned-by-a-new-father-part-1/#comments Tue, 30 Aug 2016 14:22:16 +0000 http://www.leinninger.com/?p=3038 Here’s the first installment of stuff I’ve learned in the past 10 weeks of new fatherhood:

    Stay Puft Baby and Dad
  1. The first 2 weeks are tough. More difficult than you can imagine. Everyone says this. You think you know what it means. You’re wrong.
  2. Weeks 3-4 are better than the first two… but your brain will be erased and you won’t remember how bad 1 & 2 were. Weeks 3-4 are about as bad as you imagined 1-2 could be before baby arrived.
  3. After week 6, it gets a lot better. You come out of the haze and really realize that this new person is in your family. By week 10, you’re interacting with her and you can barely remember the first month.
  4. Take lots of pictures/videos. Everyone tells you that it goes by so fast and they grow too quickly. It’s true.
  5. Diapers aren’t as bad as you imagined… especially if baby is nursing. The first few days are a horror show (meconium), but really, it’s not too bad.
  6. There will be blow outs… big time. My wife is a scientist and bought a case of “blue pads” used for surgeries, etc. We put them on the changing pad as well as line her car seat with them. Keep a few in your diaper bag for impromptu changing. Lastly, make sure the “seal” around baby’s legs is good by pulling the diaper up on her waist after securing it… like you’re putting a pair of shorts on her. Nothing can stop the dreaded “rooster tail”… it’s just going to happen some day(s).
  7. Gripe water works. All of the articles/books I read said that there’s no scientific evidence for it to work (our baby showed no signs of colic, so that may be a different story), but a dose of gripe water and a little patting on the back and she produces some of the most amazing belches and stops crying
  8. Your wife will need a break… especially if she’s nursing. As soon as you can prepare a bottle and baby is ready to accept it (check with your pediatrician), offer to take the last feeding of the night and put her to bed… or tell your wife to go out shopping for herself and stay home and feed baby. (Just make sure you time everything right so that you have enough milk and/or mom comes back in time.)
  9. A bedtime routine is key. Our baby has slept in her room, in her crib, since she was 2 weeks old (before that we tried a bassinet in our room). Having a bedtime routine was key to making that happen. On bath night, she gets a warm bath… but otherwise, it’s the same every night: mom puts on a lullaby and dims the lights. I undress baby and change her diaper (if needed). Mom applies night time lotion. I put baby in her swaddle. Mom feeds baby. Usually she’s asleep by the end of the feeding and mom waits 20 minutes, then puts her in her crib. 90% of the time, that works. The other 10%… well… all bets are off
  10. Speaking of swaddles: they work… just be sure that you follow the instructions for your swaddle blanket or quick-swaddle. Talk to your pediatrician about positioning baby’s head. Baby should always sleep on her back.
  11. We found out about swaddles in on of our classes, but we also learned about the 5 S’s for getting baby to calm down/sleep from “The Happiest Baby On The Block” by Dr. Harvey Karp: Side, Swaddle, Shush, Swing, Suck. Look it up… it helps, but as you’ll find, nothing is a guaranteed solution
  12. We’ve always cooked dinner together, and doing that with baby is a challenge. We found that a bouncer or car seat on the kitchen counter (if you have space) works well. We tried wearing her in a front-carrier, but worried about hot spatter from pans could get her. Of course, be careful with cutlery, spices, or other hot liquids.
  13. Bonding time helps. If you’re only holding baby when she’s crying, that’s all that you’re going to get out of it. Make time to play with baby (tummy time included) and I find that just a minute of fun when changing diapers or getting dressed means a lot before my day starts or before baby goes to bed.
  14. Teamwork helps. My wife and I have always teamed up: hobbies, chores, projects, and now baby. We calm each other down and cover for each other when we’ve just had enough. Teamwork can be fun too… and makes bath time a lot safer.

Well, that wraps up my first installment of lessons learned. There’s a ton more and I’ll try to provide ongoing updates.

]]>
https://www.leinninger.com/2016/08/30/lessons-learned-by-a-new-father-part-1/feed/ 21 3038
Car Update: Camaro Emerges https://www.leinninger.com/2016/07/03/car-update-camaro-emerges/?utm_source=rss&utm_medium=rss&utm_campaign=car-update-camaro-emerges https://www.leinninger.com/2016/07/03/car-update-camaro-emerges/#respond Sun, 03 Jul 2016 22:46:01 +0000 http://www.leinninger.com/?p=3017 many struggles with my Firebird I finally got it started, only to confirm that my last hurried fuel line repair wasn’t good enough. So, I took a break to focus on my 10-year newer old car: 1999 Camaro. It has been sitting for over 2 years, but I thought it would be a better candidate to get on the road. I removed the cover, knowing that I had some mildew to deal with in the interior… however, I also discovered that I had left the passenger window open about an inch. More than large enough to let mice in and definitely enough to let the stink of my old pole barn set in. We had some work ahead of us: deep cleaning, odor elimination, flushing fluids, cleaning out acorns and mouse nests. [peg-image src=”https://lh3.googleusercontent.com/-elNiu7Ad0rg/V3g0OlABdnI/AAAAAAAA8nA/J5OF3Ktg_j8sYx0e1EXaq1qQacKTQ_TDwCHM/s144-o/IMG_2085.JPG” href=”https://picasaweb.google.com/106726501754907162579/6302845105978564881#6302845103560029810″ caption=”” type=”image” alt=”IMG_2085.JPG” image_size=”3264×2448″ peg_single_image_size=”w240-c” ] [peg-image src=”https://lh3.googleusercontent.com/-6bruQq4iU88/V3g0OuGMOUI/AAAAAAAA8nA/2OchZ3COcgcvnwnDvb4XbImFEyG27WMKACHM/s144-o/IMG_2084.JPG” href=”https://picasaweb.google.com/106726501754907162579/6302845105978564881#6302845106001819970″ caption=”” type=”image” alt=”IMG_2084.JPG” image_size=”3264×2448″ peg_single_image_size=”w240-c” ] [peg-image src=”https://lh3.googleusercontent.com/-6RxE1IG0gIo/V3g0OtInI_I/AAAAAAAA8nA/SD8qTOsgOCcaJ932DF3ax2veUIqSfAX1QCHM/s144-o/IMG_2083.JPG” href=”https://picasaweb.google.com/106726501754907162579/6302845105978564881#6302845105743537138″ caption=”” type=”image” alt=”IMG_2083.JPG” image_size=”3264×2448″ peg_single_image_size=”w240-c” ] [peg-image src=”https://lh3.googleusercontent.com/-jFBThfAyI54/V3g0OiXOzEI/AAAAAAAA8nA/yNjk4ZP4auk1qPDvDaW9wndJY0OOyGOVgCHM/s144-o/IMG_2082.JPG” href=”https://picasaweb.google.com/106726501754907162579/6302845105978564881#6302845102852066370″ caption=”” type=”image” alt=”IMG_2082.JPG” image_size=”3264×2448″ peg_single_image_size=”w240-c” ] [peg-image src=”https://lh3.googleusercontent.com/-Oj5Cuh72bWs/V3g0Om80A2I/AAAAAAAA8nA/9a4zYz22jQ4RMKNYc5Gfb-yUUPER9wYGQCHM/s144-o/IMG_2081.JPG” href=”https://picasaweb.google.com/106726501754907162579/6302845105978564881#6302845104083436386″ caption=”” type=”image” alt=”IMG_2081.JPG” image_size=”3264×2448″ peg_single_image_size=”w240-c” ] [peg-image src=”https://lh3.googleusercontent.com/–otztXderos/V3g0Oi–_tI/AAAAAAAA8nA/i5fqH6P3QQc6W5kRzwnh-dwiNFbf4awXQCHM/s144-o/IMG_2080.JPG” href=”https://picasaweb.google.com/106726501754907162579/6302845105978564881#6302845103018802898″ caption=”” type=”image” alt=”IMG_2080.JPG” image_size=”3264×2448″ peg_single_image_size=”w240-c” ] During the next 2 weeks, I spent the better part of 3 days cleaning the interior and prepping the engine. The only surprise was a mouse mess to clean up in the C pillar that I missed on my first pass. I used our commercial carpet cleaner, baking soda, Lysol disinfectant, water/vinegar, clove/water (to prevent mildew), and eventually bleach/water. Ultimately the mild bleach solution was most effective at neutralizing odors. I let my car bake with the roof off and doors open in the sun. All in all, there is a marked improvement in odor. Continuing to let it air out in our garage that has just recently been upgraded by Insta Garage Doors of San Bernardino county, has continued to help. However, as I let it run (trying to work through the fuel/stabilizer in the gas tank, it started to overheat. Yesterday, I replaced the the thermostat, but the old one looked like new. I’m hoping that I just failed to bleed all of the air out of the cooling system last time (which is a common issue with aluminum block LS motors). If that’s not it, a replacement radiator cap might be the solution… but I dread that I could have a bad head gasket and air/oil is getting into the coolant. Though my time is limited at the moment, I hope to figure out what’s going on before my birthday in mid-July. I just want to drive it around for 1 day… [peg-image src=”https://lh3.googleusercontent.com/-rANak572jhE/V3g0OhcHRCI/AAAAAAAA8nQ/kCd15WiZS8sg7J-tnaff1OWs1tfBtEjjACHM/s144-o/IMG_2100.JPG” href=”https://picasaweb.google.com/106726501754907162579/6302845105978564881#6302845102604108834″ caption=”Look at ’em there, pretty maids all in a row.” type=”image” alt=”IMG_2100.JPG” image_size=”3264×2448″ peg_single_image_size=”w640″ peg_img_css=”aligncenter” ]]]> https://www.leinninger.com/2016/07/03/car-update-camaro-emerges/feed/ 0 3017 A Wild Kara Appears! (Part 1) https://www.leinninger.com/2016/06/29/a-wild-kara-appears-part-1/?utm_source=rss&utm_medium=rss&utm_campaign=a-wild-kara-appears-part-1 https://www.leinninger.com/2016/06/29/a-wild-kara-appears-part-1/#respond Thu, 30 Jun 2016 00:14:42 +0000 http://www.leinninger.com/?p=3005 church as usual and performed during the service (Gina sings and I play guitar in the praise band). During a particularly energetic song, Gina started to feel a little… weird. We went home to have lunch prepare for a Father’s Day visit with my family when Gina started feeling contractions… real ones. Excited to use some of our training, we started timing their frequency and duration. We quickly reached 5-7 minute intervals, but the duration was still around 30-45 seconds. After an hour-or-so, we decided to go to the hospital and check in… since Gina wasn’t supposed to go into labor due to baby being breach. [peg-image src=”https://lh3.googleusercontent.com/-jKDfrjSgHXo/V2d8e1d05jI/AAAAAAAA8Sw/Z4-KklA4n4Aw426-iYrgw7TP1uLT8dS-QCHM/s144-o/IMG_2109.JPG” href=”https://picasaweb.google.com/106726501754907162579/6301650718860961233?authkey=m95zN97S54Q#6298139473091028530″ caption=”” type=”image” alt=”IMG_2109.JPG” image_size=”2448×3264″ peg_single_image_size=”w500-c” ]

After checking in, we were ushered to a triage room where Gina was hooked up to some monitors, got checked out, and then told to go back home. I thought Gina might take a swing at the staff! When asked when we should come back, they said “… when the contractions are 5 minutes apart and stronger…” We ended up going to the parking lot, watching “House” on Netflix for a while, then going to a market and walking around/buying some water to drink. Not sure what to do next, we just went home. Once home, we tried to eat lunch and wait it out: more Netflix and a few phone calls to alert family of the false alarm. Gina called her parents and after a brief conversation, hung up and immediately her water broke. Big time. For real. No mistaking what just happened. Our previously calm demeanor stepped up to “go time”: while Gina got cleaned up, I took care of the new laundry tasks. We were definitely anxious and our next trip to the hospital was definitely more hurried, but still calm. This time it took longer to get into a room… at least it felt longer. Our nurse took a little longer than we liked to hook up the monitors (again… compared to the first visit). After we explained our concerns, she stepped it up and we heard Kara’s heartbeat. Our nerves calmed, we settled in and waited for the staff to confirm that labor had begun. Once that was complete, we were scheduled for an… um… unscheduled…(?) C-Section at 9:00. The next 40-ish minutes were a whirlwind: operating room (OR) cover-alls, spinal anesthetics, waiting outside the OR, then in the OR seated next to Gina. It seemed like just a few minutes later that we heard Kara cry… loudly. Our daughter had arrived and our biggest adventure together begins. [peg-image src=”https://lh3.googleusercontent.com/-HIU96DscVvI/V2mBQavfOnI/AAAAAAAA8WU/lLNeJHQk83wHefj51EGNAYsIxspMeqbOwCHM/s144-o/IMG_2115.JPG” href=”https://picasaweb.google.com/106726501754907162579/6301650718860961233?authkey=m95zN97S54Q#6298707672910740082″ caption=”” type=”image” alt=”IMG_2115.JPG” image_size=”3264×2448″ peg_single_image_size=”w500-c” ]

]]>
https://www.leinninger.com/2016/06/29/a-wild-kara-appears-part-1/feed/ 0 3005
Firebird Update – More Fuel Leaks https://www.leinninger.com/2016/06/06/firebird-update-more-fuel-leaks/?utm_source=rss&utm_medium=rss&utm_campaign=firebird-update-more-fuel-leaks https://www.leinninger.com/2016/06/06/firebird-update-more-fuel-leaks/#comments Tue, 07 Jun 2016 02:17:17 +0000 http://www.leinninger.com/?p=3000
New section of fuel line out of the fuel filter

New section of fuel line out of the fuel filter


However, I noticed during the installation that there was potential for another leak on the inlet side of the filter… this might have been a much older leak that I mistook for a brake line leak when I parked my car 6 years ago. I continued prepping the car by changing the coolant and installing the re-charged Optima red top battery. Excited, I ran into the house to get my keys and returned to the barn where I turned the keys to the accessory position. The good news? The fuel pump energized. The bad news? The pressure caused a pretty nasty fuel leak right where I suspected. I’m not going to run out to the auto parts store again, instead I ordered the parts and a better tube bending tool online. It should all be here in plenty of time before the weekend. However, there’s an increasingly good chance that we’ll be heading to the hospital to welcome our daughter. Who knows, maybe this will be her first car? Nah… I wouldn’t do that to her 😉 Update: Camaro]]>
https://www.leinninger.com/2016/06/06/firebird-update-more-fuel-leaks/feed/ 2 3000
Thoughts and Regrets Regarding Storing Cars https://www.leinninger.com/2016/06/06/thoughts-and-regrets-regarding-storing-cars/?utm_source=rss&utm_medium=rss&utm_campaign=thoughts-and-regrets-regarding-storing-cars https://www.leinninger.com/2016/06/06/thoughts-and-regrets-regarding-storing-cars/#respond Mon, 06 Jun 2016 04:13:16 +0000 http://www.leinninger.com/?p=2991 1999 Camaro in 2001… and there was really no competition. I still love my ’89, but haven’t driven it much.
Firebird Uncovered

To be honest, the same goes for my Camaro. Both have been resting in my backyard workshop. I did my best to prep them for long term storage: battery tenders, fresh oil, fuel stabilizer, fresh antifreeze, etc. I even placed a moisture absorbing container of desiccant in each of them. Car covers protected their paint. I did some things wrong and knew better. I left them both on the ground, surely (temporarily) flat-spotting their tires. I accidentally left the passenger window cracked in my Camaro, leading to mildew on much of the interior leather… and apparently a few mice visited occaionally. I didn’t start them up every month to let the engines run. About 2 weeks ago, I figured that it was time to clean out my shop before the newest addition to our family arrives. Then I figured I should take it a step further and actually reorganize and insulate my shop… and that meant moving my long neglected f-bodies around. Uncovering them, I was impressed that they’ve held up so well despite my neglect. A trip (or 2) to the auto parts store and I was prepared to swap a battery (the Optima in my Camaro survived), change the oil and filter, flush the coolant, replace the trans fluid (in the Firebird… Camaro has a manual), replace the fuel filters in both cars and replace the fuel in the Firebird. Oil, coolant and trans fluid in my Firebird all went smoothly. The battery was dead, so I couldn’t fire it up… which was good because I needed to drain the fuel and change the fuel filter. All was going well until I got to the second fitting on the fuel filter: I twisted the solid fuel line. Dammit. Here ends the story for now. I will get parts to repair the line tomorrow and will likely start my Firebird for the first time in 6-ish years. Hopefully the next update will be less exciting, if that’s possible. Update 1: Firebird Update 2: Camaro]]>
https://www.leinninger.com/2016/06/06/thoughts-and-regrets-regarding-storing-cars/feed/ 0 2991
Retro Computer Restoration https://www.leinninger.com/2016/04/25/retro-computer-restoration/?utm_source=rss&utm_medium=rss&utm_campaign=retro-computer-restoration https://www.leinninger.com/2016/04/25/retro-computer-restoration/#respond Mon, 25 Apr 2016 19:02:55 +0000 http://www.leinninger.com/?p=2980 Each has received a few upgrades or modernizations. Stay tuned to my youtube channel for some details coming soon.]]> https://www.leinninger.com/2016/04/25/retro-computer-restoration/feed/ 0 2980 Baby! https://www.leinninger.com/2016/03/30/baby/?utm_source=rss&utm_medium=rss&utm_campaign=baby https://www.leinninger.com/2016/03/30/baby/#respond Wed, 30 Mar 2016 19:48:52 +0000 http://www.leinninger.com/?p=2970 While not news to most, I though I should finally update my blog and note that we’re expecting a daughter in late June! We’re both thrilled and terrified, thank you very much… Her room is almost together (painted and carpeted… furniture assembly in progress). Our house layout has changed a bit (moved the exercise equipment from the nursery to the den, and den furniture into the living room, and living room furniture into the basement bar). We have a short list of names, but will make that final decision when we meet her.]]> https://www.leinninger.com/2016/03/30/baby/feed/ 0 2970 Pets! Page Updated https://www.leinninger.com/2015/05/08/pets-page-updated/?utm_source=rss&utm_medium=rss&utm_campaign=pets-page-updated https://www.leinninger.com/2015/05/08/pets-page-updated/#respond Fri, 08 May 2015 18:29:22 +0000 http://www.leinninger.com/?p=2943 pets page! Charlie and Charlize are now featured.]]> https://www.leinninger.com/2015/05/08/pets-page-updated/feed/ 0 2943 I miss blogs, dammit. https://www.leinninger.com/2015/05/01/i-miss-blogs-dammit/?utm_source=rss&utm_medium=rss&utm_campaign=i-miss-blogs-dammit https://www.leinninger.com/2015/05/01/i-miss-blogs-dammit/#respond Fri, 01 May 2015 15:30:06 +0000 http://www.leinninger.com/?p=2932 I had an old blog and was pretty good at updating it. It used my personal framework instead of a mainstream, feature-packed system like WordPress. It was modular and linked to friends’ blogs. They were all pretty good at updating their blogs too.

What happened?

One explanation is simple: we don’t have time any more. We’re old. We have families to spend time with. There are more complicated hobbies to maintain. We write (good) code all day long and don’t need that special fix that we used to crave.

Another explanation? WordPress is less fun. It’s not my personal code sandbox. I don’t take pride in the feature set… I just download another plug-in and enable it. I don’t have friends providing feedback on what’s working vs. what could be better… and when they do, I don’t take it personally.

Does this post mean I’ll try harder to make blog posts? Maybe… but with the summer (and race season) starting soon, I make no promises…

]]>
https://www.leinninger.com/2015/05/01/i-miss-blogs-dammit/feed/ 0 2932
The Adventure Continues https://www.leinninger.com/2014/02/06/the-adventure-continues/?utm_source=rss&utm_medium=rss&utm_campaign=the-adventure-continues https://www.leinninger.com/2014/02/06/the-adventure-continues/#comments Thu, 06 Feb 2014 19:15:06 +0000 http://www.leinninger.com/?p=2917 I started my new job 3 months ago and it’s been everything I wanted (and needed). We’ve been building a new application from the ground up with no integrated legacy dependencies with the latest Javascript frameworks. Node.js and Angular.js are absolutely wonderful to work with… which only makes me regret taking so much time off of dedicated coding even more. I feel like I’m about 2 years behind where I should have been if I stayed more hands-on with code, even if it was just at home. Pro tip from Uncle D: if you love to code, don’t stop… even if it’s not your job any more.

Glorious PC Gaming Master Race

Glorious PC Gaming Master Race

Frankly, I’ve found myself with more free time that I’ve had for about 5 years. Working from home allows me to take care of a few chores a couple of days per week during lunch. Even when I work until 7:00 or 8:00 at night, I just walk out of my office and I’m home! With the extra free time and no home improvement projects underway, I’ve needed to keep myself busy. After finally cleaning out that extra room that was used for storage during the last 2 years, I really wanted to get started on my race car prep… but with single (or negative) digit temps, working in an non-insulated, non-heated metal pole barn isn’t exactly smart. So, I’ve found that playing online PC games with my friends is a great way to stay in touch. We don’t see each other as much since I started working from home. Brad has hosted his famous Atomic JanLAN which got a few of the Peasants to experience the glory of gaming above 30 frames per second at resolutions above 720p.

Since then, we’ve enjoyed playing Battlefield 4 late into the night, despite the unforgivable amount of bugs still present in the game 4 months after launch. To keep my hands busy when not on a keyboard, I’ve made some significant upgrades to my PC, including a new case, additional graphics card for SLI, water cooling, and new keyboard and mouse (thanks to Gina for the Christmas presents).

Outside of the house, a few friends and I have been visiting the Howell Gun Club during public range times to deal with our cabin fever by putting holes in targets. We’ve all done well despite our lack of practice. I really haven’t fired a pistol in 20 years, but a new S&W M&P .40 sure makes it easy to get back in the groove. We’re considering membership since the folks at the club are so welcoming and helpful. They’re full of great advice and always have a smile to welcome you.

Once we’re thawed out, I fully expect the repairs due to the record winter to consume my time. On top of that, I still haven’t pulled the engine from my race car and replaced the transmission. For now, I’ll keep cleaning the house and gaming at night… hoping for some sunshine and double digit temperatures to free us from our frozen prison!

]]>
https://www.leinninger.com/2014/02/06/the-adventure-continues/feed/ 1 2917
A New Adventure https://www.leinninger.com/2013/11/04/a-new-adventure/?utm_source=rss&utm_medium=rss&utm_campaign=a-new-adventure https://www.leinninger.com/2013/11/04/a-new-adventure/#comments Tue, 05 Nov 2013 03:57:05 +0000 http://www.leinninger.com/?p=2910 Gina near the Utah mountain  peak just beyond Park City. Approx. altitude: 10,000 ft.

Gina near the Utah mountain peak just beyond Park City. Approx. altitude: 10,000 ft.

After much deliberation, I’ve decided to seek out a new career opportunity. Having spent 15 years with my former organization, I’ve made many friends and learned so much. I am eternally grateful for my time with them. I had a personal need to work more directly with a smaller team on a "start from scratch" project. My new opportunity provides this.

I am almost done with my 2-week onsite orientation/training/meet-the-team in Utah. It’s very pretty out here… but Gina and I just aren’t into mountains. (My new company flew Gina out for the weekend.) After this onsite visit is complete, I’ll be working from home most of the time, with regular remote work-together days (there are several other software folks relatively close to each other) and occasional visits back to HQ in Utah.

I’m looking forward to working more directly with code, being able to contribute to the design effort and build a new team from the ground up. The side benefit of having more time to spend with my family is pretty nice as well. (I averaged 16 hours per week commuting to downtown Detroit previously.) I’m a little rusty, but I’ve already written a bit of handy jQuery for custom field masking, cleaned up some unwieldy CSS, and generated lots of clean, standards-compliant HTML. Not bad for a few days on the job!

I know I’m being very vague regarding my past and current job history. If you know me (or know how to use social networks), I’m sure you can figure it all out. But really, is it worth your time?

]]>
https://www.leinninger.com/2013/11/04/a-new-adventure/feed/ 2 2910
Slacker https://www.leinninger.com/2013/10/10/slacker/?utm_source=rss&utm_medium=rss&utm_campaign=slacker https://www.leinninger.com/2013/10/10/slacker/#comments Thu, 10 Oct 2013 21:59:53 +0000 http://www.leinninger.com/?p=2901 I have really slacked on updates this year… a lot has happened and I just haven’t had time to catalog it all here. So, here’s the Cliff’s notes version:

  • I was promoted to Vice President, Software Engineering at the beginning of the year.
  • Since then, I’ve really had no time to focus on code, technology, my hobbies or home projects
  • I have, however, learned a great deal about high level leadership and the complexities of an enterprise organization
  • Our engineers have been cranking out awesome stuff all year long and I’m grateful to be part of their team. We launched the first phase of a revolutionary product a few weeks ago and are already ready to release the next version. I hope this release gets the team the props they deserve from our business leaders.
  • This year’s racing season was expensive and full of technical difficulties and repairs. During the first practice weekend, I hit a wall going about 80 and wiped out all of the suspension on the left side of my car as well as destroying the fiberglass nose. After that I battled with my brake bias, had a few bumps and scrapes with other cars, disintegrated my clutch, pulled the engine and trans, and tried to make my tires last a few weekend longer than I should have. The last straw was blowing up 3rd gear during the last scheduled race of the season. The car is still sitting in the barn waiting for me to pull the engine again. I hope to do that before the winter comes…
  • Gina and I went to Germany for a week… it was pretty damn awesome. Gina allowed me to tag along while she attended a conference. She was honored with a nomination for her work in appetite regulation mechanics. We spent a few extra days in Munich and Stuttgart to visit museums, castles, and more than a few Biergarten.
  • The week after we got back from Germany, we spent a week in Traverse City with our bandmates. Generally, we visited a lot of wineries, drank some wine, played a lot of music and chilled out. There’s no better way to get over jetlag than to chill in a cabin with your friends.

I’ll have some big news soon, so stay tuned. I promise I’ll post the details on this site!

]]>
https://www.leinninger.com/2013/10/10/slacker/feed/ 1 2901