Since I’m no stranger to starting fitness routines over again it’s always the constant reminder of how far I’ve fallen when I start back up a fitness routine again. Of course with each passing year the threshold drops further and further on the fitness levels at the beginning of each phase. On this particular startup phase I started up this week with elliptical cardio. Yes, I’d like to get back to running long distances again, but I’m still very early in the building phase and I know I have lots of body strength symmetry issues I want to work through. It was shocking and disappointing when after ten minutes of a thirty minute “easy” elliptical workout that I could feel the burn in my quads and calves. Because of some stuff around the house I have to get done I couldn’t risk having rigor mortis for the rest of the day so at that point I switched off to do an additional ten minutes of medium-speed walking on the treadmill. My heart rate which was in the high-160s to low-170s during the “easy” elliptical routine was now in the 110-115 range. That’s a perfect sustainable pace.
I’m sure I’ll be able to work up to much greater cardio levels over time. I’ll have a similar problem with my strength training as that kicks in. But it’s better to do the build up as baby steps rather a huge burst and then a crash and burn. It’s easy enough to lose focus with a sustainable pace much less with a crazy fast one.
Anyone who’s been following along knows that I have hardly been a model of fitness and healthy lifestyle here. At the same time I’m (hypothetically) trying to be proactive at avoiding health problems that creep up in later years. It’s not lack of knowledge or following trends but instead a lack of execution. When it comes to watching loved ones around you that are in the midst of having health problems that are caused by or substantially exacerbated by lifestyle choices that everyone knows are bad what can one do?
Continue reading How do you coax without pushing someone away?
While I’ve mostly been absent from writing to the blog, and my fitness routine has only been slightly less absent than that, I have been able to maintain one thing completely dialed in over all this time: fitness tracking (as usual). With all of that data together I decided to create my first annual review post. I’d say compared to the average American I had a very normal year. Unfortunately I don’t want to have the fitness level and longevity of the average American, so while I’m not going to say things were bad they weren’t where I want them to be either.
Continue reading Annual Review 2017 Good and (mostly) Bad
Being the new year is almost upon us and I’ve spent most of the last year lamenting my lack of progress on health fronts (besides that sweet spot in the summer) I was looking forward to dialing in my lifestyle and diet over the next month and into 2018. It wasn’t going to be anything more structured than 2017, which may or may not have led to more or less the same results, but I was going to be focusing in on the same core Blue Zones lifestyle elements that I’ve previously highlighted. It was therefore a bit of a coincidence when I received an e-mail from 23andMe about enrolling in a genetic weight loss study they are doing.
According to the study they are looking at coming up with up to 100,000 volunteers to try three different combinations of diet and lifestyle changes to see if it can create weight loss over a twelve week period of time. They are then going to use that data combined with our detailed genetic data to find correlations in weight loss and the various lifestyle changes. That type of thing sounds fascinating to me in its own right and I certainly would love to contribute to that body of work, so I decided to enroll.
Their initial survey information lined up exactly with all of the things I currently track religiously: food patterns, sleep patterns, sleep quality, stress patterns, exercise level, meditation patterns, and trunk body measurements. Sadly most of those elements they were looking for a weekly survey on. That’s obviously heavily skewed by the holidays. I want to e-mail them about that. Also sadly is that my current levels diet and exercise are about as piss poor as they could ever be. They would be improving anyway (hypothetically) but perhaps that gives them a better baseline to start from. Based on the diet/exercise recommendations I may have to tweak what I was planning on doing into the start of the new year, the study beginning sometime in January, but I think doing that for 12 weeks is a pretty small price to pay (assuming I get accepted for the study).
I almost never wait in huge lines for anything. I camped out once for football tickets in college. Once. I also once waited six hours for an iPhone 4 when it first came out. It was my first smart phone and I had been putting off getting one way too long. That was it though. Yet I know people who have waited in ever decreasing lines for each iteration of the iPhone. The reduced lines are definitely part of the sizzle wearing off and the iPhone being just another smart phone. Yet even at 8 pm last night there was a line for iPhones outside our local Apple store. It didn’t wrap around the mall like in the iPhone 4 days but the end of the first day still having a line for an iPhone 8 was pretty telling to me.
Continue reading iPhone Excitement Isn’t Just For the Fanboys
It was just a few months ago when Ubuntu announced they were killing off Unity, their main desktop option. Many people were wondering if this was part of their larger pivot towards more profitable ventures and thus they would be leaving the desktop behind. I too was filled with worry about that potential outcome but calmed myself remembering that I was not locked into one vendor for my OS any longer. In the intervening months however it has become clear that Ubuntu is not killing of the desktop, far from it. In fact the strides they are taking with Ubuntu 17.10 and Ubuntu 18.04 look like they are about to put out the strongest desktop offering to date. Not having to carry the weight of a phone platform, their own desktop environment, etc. has allowed their team to focus on giving positive contributions to Gnome proper. I’ve had the opportunity to play around with the Ubuntu 17.10 betas and have to say that I don’t think I’d be missing anything from my current Ubuntu experience. I look forward to upgrading to 18.04 when the time comes and no longer worrying about if one of my desktop baselines was going away.
On one of my classic computing Facebook Groups there was a post quoting Edsger Dijkstra stating, “It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.” It’s actually part of a much larger document where he condemns pretty much every higher order language of the day, IBM, the cliquish nature of the computing industry, and so on. Despite most of it being the equivalent of a Twitter rant, in fact each line is almost made for tweet sized bites, there are some legitimate gems in there; one relevant to this topic being, “The tools we use have a profound (and devious!) influence on our thinking habits, and, therefore, on our thinking abilities.” No, I don’t agree with the concept that starting with BASIC, or any other language, permanently breaks someone forever, but the nature of the tools we use driving our thinking means that it can lead to requiring us to unlearn bad habits. Yet has someone tried to actually write BASIC, as in the BASIC languages of the 60s, 70s, and early 80s, with actual design principles? Fortunately/unfortunately, I tried a while ago, with some interesting results.
Continue reading Applying “Good” Programming To Old BASIC
While I’m obviously becoming quite enamored with Kotlin recently, this is like the early dating stage for me. Everything is great when you first start dating someone but it’s after you’ve been with them for awhile and see their warts, which everything and everyone has, that you finally decide whether it’s the right fit or not. While I’m very excited about being able to do a modern language in the JVM ecosystem to have my cake and eat it too I’m still not on the bandwagon fully yet in terms of recommending it for everyone. My homework for this is still underway, or actually in its infancy even. A quick list of the things I still need to weigh are:
- How well is it supported in the various IDEs and on the various platforms? I’ve been doing this in IntelliJ, the base platform from the original vendor that wrote it, but what about Eclipse, or Netbeans, or VSCode? Is it feasible much less reasonable to use this language for real in these environments as say compared to Java or .NET Core?
- How well does this perform compared to other languages? I’ve started exploring the whole benchmarking thing already but there is still a long way to go. I still have many areas I want to explore in terms of not only the raw performance of the base language compared to Java, .NET, and other languages but even questions like: How does their streaming capabilities compare to Java Streams, .NET LINQ, etc; how well does this work with numerically intensive applications since primitive types have to be boxed; etc…
- What is the tooling like for doing code coverage, code instrumentation, etc?
- How good is the documentation, tutorials, examples, etc. for new users and for weird corner cases with the language?
- How well can it be used in integrating with Java libraries like JavaFX, Spring, and other necessary components for building applications. My initial interactions are very positive but I need to do more real world use cases rather than rely on the smaller experiments I’ve already tried.
It’s like many things in life, I’m getting to the point of being committed in this Kotlin direction for projects that solely impact me. However if I’m going to recommend it for others or for larger scale things I need to have my ducks in a row and to have really been through the ringer with it to say whether it is the real deal or if I’m just in the honeymoon phase with a new tool.
As I wrote about here yesterday I am taking my exploration of Kotlin to the next level by looking at performance metrics using the Computer Language Benchmark Game. As of right now I’ve completed my first two steps: got the benchmark building/running Kotlin code, and doing a straight port of the suite (follow along at the Gitlab project). This was really 90% IntelliJ auto-converting followed by me fixing compiling errors (and submitting a nasty conversion bug that came up from one test back to JetBrains). So now onto the results! Well, actually not so fast on that one…
Continue reading Kotlin Benchmark Initial Porting Complete…First Impressions Only
I may be enamored of my new programming toy, Kotlin, but I’m not one to go blindly into something like this. While there is a lot to love about the language I was curious how fast it was compared to Java. It’s all running in the same JVM but as I know from Scala, another JVM language, there can be dramatic performance differences. Benchmarking is the usual, and probably clichéd, way of addressing that. The Computer Language Benchmarks Game website is as good a place as any to start. Unfortunately no one has bothered making Kotlin language tests yet. Undaunted I saw this as an opportunity to contribute back as well as get a little extra Kotlin coding in. So, I’ve started a fork to develop and contribute back Kotlin versions. You can follow along and/or contribute to the port at my Gitlab project.
My approach to this endeavor is as follows:
- Update the project drivers and initialization files to get Kotlin running
- Do a straight translation port of the latest version of each of the Java benchmarks
- Compare the performance of the straight-port versions Java
- Create tweaked versions of Kotlin versions to further optimize
- Compare the performance of the tweaked versions to Java
I’ve already completed the first bullet, and the develop branch of my repo. I think the initial two bullets will go relatively quickly. Tweaking and optimizations will be another matter.
PS a big thanks to Sebastian Thiel for setting up a project/repo that is constantly mirroring the Benchmark Games’ CVS repository. It is an indispensable plus to be able to have the latest and greatest automatically (also thanks to Gitlab’s integration capabilities) as development moves forward.