<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Random Thoughts</title>
    <link>https://haskovec.com/</link>
    <description>A blog about technology and software engineering</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>jeffrey@haskovec.com (Jeffrey Haskovec)</managingEditor>
    <webMaster>jeffrey@haskovec.com (Jeffrey Haskovec)</webMaster>
    <lastBuildDate>Wed, 18 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://haskovec.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>You Can Just Do Things </title>
      <link>https://haskovec.com/posts/you-can-just-do-things-/</link>
      <pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/you-can-just-do-things-/</guid>
      <description>&lt;h3 id=&#34;retro-computing&#34;&gt;Retro Computing&lt;/h3&gt;
&lt;p&gt;I have been very excited with where we are as an industry right now. To me it feels like how computing
felt when I was a kid and getting into computers. In the late 80s I started exploring computers with
Apple Basic on the Apple IIc and IIe computers available at school and our public library. That was my
first taste of programming.&lt;/p&gt;
&lt;p&gt;When I got into 9th grade my parents got me an old IBM PC with a 20MB hard drive and 640KB of RAM and MS-DOS 5.0.
They also got me a copy of Turbo Pascal 7.0. Turbo Pascal had this great framework for building text-based user interfaces,
called Turbo Vision. It was pretty exciting to be able to build out something that felt like a real application with
very few lines of code. Even the IDE for the language itself was all done in Turbo Vision.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>100 Days of Dante</title>
      <link>https://haskovec.com/posts/100-days-of-dante/</link>
      <pubDate>Thu, 28 Aug 2025 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/100-days-of-dante/</guid>
      <description>&lt;p&gt;I saw a message on a Catholic Facebook group the other day about a thing called &lt;a href=&#34;https://100daysofdante.com&#34;&gt;&amp;ldquo;100 Days of Dante&amp;rdquo;.&lt;/a&gt;
The idea is to read a little bit of Dante&amp;rsquo;s &lt;em&gt;Divine Comedy&lt;/em&gt; each day for 100 days. This is one thing that I have always
wanted to read the entire poem, but have never gotten around to it.&lt;/p&gt;
&lt;p&gt;A few years ago when Father Mike Schmitz was doing the Bible in a Year podcast for the first time, I heard about it on X
(Twitter at that time.) All the Catholic people on there seemed to say he was solid, and at that point I was unfamiliar
with Father Mike. I started listening to it on day 6 and was immediately hooked. I ended up making it the whole way through
reading along most of the time while I listened to the podcast. That approach worked so well I went on to do the Catechism
in a year when he did that as well and made it through the entire catechism of the Catholic Church for the first time in
my life.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Vibecoding a Blog Migration</title>
      <link>https://haskovec.com/posts/vibecoding-a-blog-migration/</link>
      <pubDate>Sun, 03 Aug 2025 20:41:42 -0500</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/vibecoding-a-blog-migration/</guid>
      <description>&lt;h2 id=&#34;intro&#34;&gt;Intro&lt;/h2&gt;
&lt;p&gt;Lately the topic of the day is AI agents and vibe coding. I have been playing around with some
of the ai tools and figured I would jot down my thoughts. This is also a chance to dive into a
bigger test of the tools and see where they help and where the limitations are.&lt;/p&gt;
&lt;h2 id=&#34;the-history&#34;&gt;The History&lt;/h2&gt;
&lt;p&gt;Initially it started out with the copilot style of AI which really was just a much better
line completion than say intellisense from an IDE. At first, I have to say I was pretty impressed
when I could just drop a comment in my code which was basically a TODO for me as I went and
the AI would fill in the code for me. I guess this must have been around 2023 when I started
experimenting with this.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Blog Brain Transplant (part 2)</title>
      <link>https://haskovec.com/posts/blog-brain-transplant-part-2/</link>
      <pubDate>Mon, 02 May 2022 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/blog-brain-transplant-part-2/</guid>
      <description>&lt;p&gt;I haven&amp;rsquo;t updated the site in a long time, so I finally decided to do so. I was on paternity leave a few months back and in that time when I wasn&amp;rsquo;t exhausted or busy with my son I spent the time thinking, reading and doing some exploring.&lt;/p&gt;
&lt;p&gt;One of the things that has concerned me a lot in the last couple of years is the rampant censorship that is being pushed. Finally to type this now with Elon purchasing Twitter, maybe things are going in the other direction, but it seems to me that the reason we are in this situation is because of the increasing amount of centralization of services that has occurred under web2. There used to be tons of independent blogs and competing blogging hosts, and you see so much content shift into Medium. RSS readers were huge and you saw Google kill its reader as more content got centralized.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Blog Brain Transplant</title>
      <link>https://haskovec.com/posts/blog-brain-transplant/</link>
      <pubDate>Sun, 06 Dec 2020 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/blog-brain-transplant/</guid>
      <description>&lt;p&gt;I started writing here at the end of November in 2014. At that time I figured out how to setup &lt;a href=&#34;https://wordpress.org/&#34;&gt;Wordpress&lt;/a&gt; on an EC2 container in AWS and figure out how to secure it. From a general devops standpoint it was a great exercise for me to get better with AWS and just generally how you configure and lock down a website. As the years have gone on I have occasionally upgraded my container to the new long term stability releases of &lt;a href=&#34;https://ubuntu.com/&#34;&gt;Ubuntu&lt;/a&gt; as they were released. Earlier this year I decided to do the same and upgrade to the latest version of Ubuntu. Finally after keeping this container going for 6 years, I just got an error when trying to upgrade Ubuntu. I decided that that point I should just build a new container and migrate the blog over to it. It had been a couple of months, but I decided since I had the whole week off at Thanksgiving to undertake it at that time. As you can see now it has been successful as nothing looks different here.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Our Engineering Process</title>
      <link>https://haskovec.com/posts/our-engineering-process/</link>
      <pubDate>Fri, 26 Jun 2020 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/our-engineering-process/</guid>
      <description>&lt;p&gt;I haven&amp;rsquo;t been active on here lately just due to how busy we have been in getting our product on the market. That being
said I did end up writing a post for our company blog about the engineering process we have built up over the last couple
of years. I figured I would share it on here as well. Check it out here: &lt;a href=&#34;https://wndyr.com/is-what-were-doing-driving-value-as-engineers/&#34;&gt;https://wndyr.com/is-what-were-doing-driving-value-as-engineers/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I am a strong proponent of Agile development and I like the mind shift around thinking about value creation and who is
the ultimate customer for what I am building. I hope that it is useful for you as well.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Running Sonar from Bitbucket pipelines on your Go apps</title>
      <link>https://haskovec.com/posts/running-sonar-from-bitbucket-pipelines-on-your-go-apps/</link>
      <pubDate>Sun, 05 Apr 2020 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/running-sonar-from-bitbucket-pipelines-on-your-go-apps/</guid>
      <description>&lt;p&gt;In the past when I was a Java developer we would run &lt;a href=&#34;https://www.sonarqube.org/&#34;&gt;Sonar&lt;/a&gt; on our projects for static analysis. I have always liked the dashboard view it provides and the way it can find all sorts of problems in a code base that are often overlooked. When I learned that Sonar supported &lt;a href=&#34;https://golang.org/&#34;&gt;Go&lt;/a&gt; I knew that I would eventually integrate it into our environment. Since I had already built out our continuous integration pipeline in &lt;a href=&#34;https://bitbucket.org/&#34;&gt;Bitbucket&lt;/a&gt;, I figured it would be easy to integrate Sonar into our builds. Little did I know that there wasn&amp;rsquo;t much documentation out there on the internet showing how to do so.&lt;/p&gt;</description>
      
      
      <category>golang</category>
      
      
    </item>
    
    <item>
      <title>Happy New Decade</title>
      <link>https://haskovec.com/posts/happy-new-decade/</link>
      <pubDate>Sat, 18 Jan 2020 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/happy-new-decade/</guid>
      <description>&lt;h3 id=&#34;the-2000s&#34;&gt;The 2000s&lt;/h3&gt;
&lt;p&gt;With the turn of the new year it got me thinking a bit about the change in the decade. Hard to believe it has been over 20 years since I was celebrating the change of the century with my friends in Minneapolis. Things have changed drastically since then. At that time I was 6 months into my career. I had joined a telecom startup and moved to Texas after graduating from the University of Minnesota. The 2000s were a decade of change and growth for me. It had me working really hard to get established in my career. Going through a couple of acquisitions and finally moving into my second startup. I met my wife then and got married, and we transitioned from apartment life to having a house. We traveled as much as we could. Mexico was much safer back then and we explored a lot of central Mexico as well as trips to Europe every year.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>2019 Year in Review</title>
      <link>https://haskovec.com/posts/2019-year-in-review/</link>
      <pubDate>Fri, 27 Dec 2019 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/2019-year-in-review/</guid>
      <description>&lt;p&gt;Wow what a year. It has flown by and as you can see I haven&amp;rsquo;t gotten to the blog since I upgraded the site earlier this year. Looking in my drafts it looks like I was intending to write a post about travel, but I didn&amp;rsquo;t get back to it. Anyway given that the year is rapidly ending I figured it was time to start looking back on it.&lt;/p&gt;
&lt;p&gt;I never imagined how busy this year would be. We went from the start of the year where we created a plan on what we were going to build for the year to drive to an MVP. We were building out what we thought would be our alpha release, but discovered in user testing that we needed to pivot. Along the way one of my employees left. We then drove the new concept to an early access release grew the engineering team and it has been an amazing ride. 2020 is going to be focused on product market fit and hopefully upon achieving that, rocketing into a growth phase. Given how crazy it was to build what we have built on such a lean team a lot of my themes for the year fell to the wayside especially this blog. When you are super busy and tired this is an easy thing to drop.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Site Upgrade</title>
      <link>https://haskovec.com/posts/site-upgrade-2/</link>
      <pubDate>Mon, 13 May 2019 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/site-upgrade-2/</guid>
      <description>&lt;p&gt;My site was down for much of today as I finally took the plunge and rebuilt my image from ground up. This was something I had considered doing for some time now. The old site had been through a couple of ubuntu upgrades and was chugging along, but I always thought it would be good to do a fresh install. However I never really wanted to dump the time into it. Then I saw this article: &lt;a href=&#34;https://www.anandtech.com/show/14284/amazon-offers-another-amd-epyc-powered-instance-t3a&#34;&gt;https://www.anandtech.com/show/14284/amazon-offers-another-amd-epyc-powered-instance-t3a&lt;/a&gt;&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>The Chug</title>
      <link>https://haskovec.com/posts/the-chug/</link>
      <pubDate>Sat, 11 May 2019 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/the-chug/</guid>
      <description>&lt;p&gt;So far this year I have not been keeping to my blogging schedule. Since posting my themes for the year I have been AWOL too busy working on launching a product in my current role. That being said a friend of mine just launched a new show on YouTube called The Chug. If you are into craft beer like I am check it out at: &lt;a href=&#34;http://thechug.life&#34;&gt;http://thechug.life&lt;/a&gt;&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Themes for 2019</title>
      <link>https://haskovec.com/posts/themes-for-2019/</link>
      <pubDate>Sat, 19 Jan 2019 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/themes-for-2019/</guid>
      <description>&lt;p&gt;I am late to the party. Normally I tried to take off until Epiphany before I return to work, but I needed to start working on the 2nd so I wasn&amp;rsquo;t able to get to this post until now. As is my tradition I set my themes for the year that I want to focus on. I find doing so helps me stay on track and make sure that I am growing and improving myself.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Coursera Stanford Machine Learning Course</title>
      <link>https://haskovec.com/posts/coursera-stanford-machine-learning-course/</link>
      <pubDate>Sat, 29 Dec 2018 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/coursera-stanford-machine-learning-course/</guid>
      <description>&lt;p&gt;I just signed up to take the Stanford Machine Learning Course for free on Coursera. Anyone who wants to take the course with me is welcome to join me over here: &lt;a href=&#34;https://www.coursera.org/learn/machine-learning&#34;&gt;https://www.coursera.org/learn/machine-learning&lt;/a&gt;. They are only accepting enrollments until January 12th I think it said so not much time left to sign up.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>2018 Year End Review</title>
      <link>https://haskovec.com/posts/2018-year-end-review/</link>
      <pubDate>Fri, 28 Dec 2018 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/2018-year-end-review/</guid>
      <description>&lt;h3 id=&#34;recap-for-2018&#34;&gt;Recap for 2018&lt;/h3&gt;
&lt;p&gt;As is my tradition it is time to review 2018 and see how my year unfolded. The first thing that I always do is review my &lt;a href=&#34;https://haskovec.com/themes-for-2018/&#34;&gt;themes for the year&lt;/a&gt; and see how many of them I hit.&lt;/p&gt;
&lt;p&gt;In general 2018 was an interesting year. The year started out with me on vacation. &lt;a href=&#34;https://haskovec.com/here-i-go-again/&#34;&gt;When I was on vacation I realized that I would have to change jobs in 2018&lt;/a&gt; and luckily it all worked out for the better. I can say making that move was one of the best decisions I have made in my career. The difference between the first half of 2018 and the last half was a study in extreme opposites on the career front. Probably the biggest takeaway from that whole situation is that company culture may be the most important thing when it comes to choosing a position.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Site Upgrade</title>
      <link>https://haskovec.com/posts/site-upgrade/</link>
      <pubDate>Thu, 27 Dec 2018 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/site-upgrade/</guid>
      <description>&lt;p&gt;I decided to upgrade my site to the new version of Ubuntu as I haven&amp;rsquo;t done that for a couple of years. It is always a nice thing to work on when I am on vacation as it is the sort of thing that I don&amp;rsquo;t really get around to normally when I am busy. What a pain that ended up being.&lt;/p&gt;
&lt;p&gt;The Upgrade for the OS itself went very smoothly as it seems to normally do so for Ubuntu. But the upgrade to the newer version of PHP broke everything with my site. As I think back actually I think this happened last time when I went from Ubuntu 14.04 to 16.04 as well and it jumped from php5 to php7. I ended up with about a 3 hour outage trying to sort everything out.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      <category>security</category>
      
      
    </item>
    
    <item>
      <title>Reactive Streams Talk</title>
      <link>https://haskovec.com/posts/reactive-streams-talk/</link>
      <pubDate>Fri, 21 Dec 2018 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/reactive-streams-talk/</guid>
      <description>&lt;p&gt;Of all the regular conference speakers on the Java circuit &lt;a href=&#34;https://twitter.com/venkat_s&#34;&gt;Venkat&lt;/a&gt; is my favorite. He has the ability to break down complex topics and make them very simple to understand. In addition to all of that he also shows you why you should care, and how whatever he is presenting can make your development life better. I always hope that when I am explaining something that I can do it 1/10th as good as he does as then it will probably come across pretty fairly understandable to the person that I am talking to.&lt;/p&gt;</description>
      
      
      <category>java</category>
      
      
    </item>
    
    <item>
      <title>Google Kubernetes Engine</title>
      <link>https://haskovec.com/posts/google-kubernetes-engine/</link>
      <pubDate>Sat, 15 Dec 2018 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/google-kubernetes-engine/</guid>
      <description>&lt;h4 id=&#34;introduction&#34;&gt;Introduction&lt;/h4&gt;
&lt;p&gt;I have been messing around with &lt;a href=&#34;https://cloud.google.com/kubernetes-engine/&#34;&gt;Google Kubernetes Engine&lt;/a&gt; for the last few weeks now (as we are deploying my new app to it) and I have to say overall I am impressed. There has been a lot of talk about &lt;a href=&#34;https://kubernetes.io/&#34;&gt;Kubernetes&lt;/a&gt; for a while and at first I was wondering if it was just the next piece of tech being over-hyped like so many things. Having used it now for a month I can say I understand why people are so excited about it. The learning curve is steep, but once you climb it, you will really appreciate the power of the platform.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Go lang</title>
      <link>https://haskovec.com/posts/golang/</link>
      <pubDate>Sun, 25 Nov 2018 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/golang/</guid>
      <description>&lt;p&gt;It has been a crazy few months in startup land. The interesting thing for me about startups is no matter how crazy it is compared to corporate work, I find myself really content amidst the chaos. The big change here is we have decided to build our backend architecture in Go instead of Java. Having done Java for 19 years this is a big change, but for business decisions we decided that the trade offs with Go were better for our long term business needs than the trade offs with Java. Now that I have been using it for a few months I figured I would discuss some of the differences between the languages and what I like and dislike about each.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      <category>java</category>
      
      <category>spring-boot</category>
      
      
    </item>
    
    <item>
      <title>Here I go again</title>
      <link>https://haskovec.com/posts/here-i-go-again/</link>
      <pubDate>Sat, 25 Aug 2018 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/here-i-go-again/</guid>
      <description>&lt;p&gt;This isn&amp;rsquo;t just a reference to an 80&amp;rsquo;s hairband song, I have decided to go to work for another startup company. It was just over a year ago when we sold Choose and I took my previous role. When I joined that company I expected to be there for a while. I was given a position to lead the architecture of a new system that had been built by a consulting company to replace a legacy system. Technology wise there were a lot of great decisions made with the new architecture that they had. It was a modern Spring Boot stack, composed of micro services.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Serverless and Spring Cloud Function</title>
      <link>https://haskovec.com/posts/serverless-and-spring-cloud-function/</link>
      <pubDate>Sun, 27 May 2018 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/serverless-and-spring-cloud-function/</guid>
      <description>&lt;p&gt;We have been discussing going to a more serverless architecture at work and so I decided that I should do some research to see where that stuff is now. When I was at Choose we used &lt;a href=&#34;https://aws.amazon.com/lambda/&#34;&gt;AWS Lambda&lt;/a&gt; to implement the backend of an abandoned shopping cart service. We would then use that data to drive an email campaign to encourage the users to come back and finish purchasing an energy plan. It had a huge effect in driving conversion rates and we were able to implement the service in about 25 lines of vanilla java code. I opted not to use &lt;a href=&#34;https://spring.io/&#34;&gt;Spring&lt;/a&gt; as I judged the startup times to be too slow for it to be worth it. To manage libraries we used the &lt;a href=&#34;https://maven.apache.org/plugins/maven-shade-plugin/&#34;&gt;maven shade plugin&lt;/a&gt; in our build process to build a fat jar.&lt;/p&gt;</description>
      
      
      <category>java</category>
      
      <category>spring-boot</category>
      
      <category>spring-framework</category>
      
      
    </item>
    
    <item>
      <title>Apple Watch Series 3 Review</title>
      <link>https://haskovec.com/posts/apple-watch-series-3-review/</link>
      <pubDate>Sun, 08 Apr 2018 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/apple-watch-series-3-review/</guid>
      <description>&lt;p&gt;I have been watching the &lt;a href=&#34;https://www.apple.com/apple-watch-series-3/&#34;&gt;Apple Watch&lt;/a&gt; for a couple of years now debating about whether I should get one or not. Initially they looked too limited. The battery life on the initial model was very short and then there was the whole lack of being able to get the watch wet, among other limitations. I decided to sit back and wait a few years and see how it evolved.&lt;/p&gt;
&lt;p&gt;The Series 2 started looking interesting, but I still didn&amp;rsquo;t find it compelling enough to give up the freedom of nothing on my wrist. Finally they announced the series 3 last fall and it started to sound like something that might potentially work for me. First it is setup for swimming with. While I don&amp;rsquo;t swim very often, for me having a watch on in the pool was always a nice way to keep track of the time. Then factor in the ability to track your workout and get texts and take a call without having to get out and dry off, it starts to look really good for someone who is more active than I am.&lt;/p&gt;</description>
      
      
      <category>review</category>
      
      
    </item>
    
    <item>
      <title>Java 10, already!</title>
      <link>https://haskovec.com/posts/java-10-already/</link>
      <pubDate>Tue, 20 Mar 2018 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/java-10-already/</guid>
      <description>&lt;p&gt;Java 9 we hardly knew ye, yet here we are and today was the GA release of Java 10. This is especially true for those of us using Spring boot as we just got official Java 9 support a couple of weeks ago and now 10 is out. From my standpoint the big features of the release are the Root Certificates. Java 9 shipped without root certificates if you used OpenJDK which in my mind makes it less useable as now you have to with that, you can&amp;rsquo;t just run it and go. That is what was keeping me on Oracle&amp;rsquo;s releases of Java. Now in Java 10 there is no difference with the oracle JDK and the OpenJDK so I will probably just deploy my apps on OpenJDK in the future. That simplifies Linux installation as now you can just run apt-get install and go. Before I used to have to add the ppa for Oracles and install it and then deal with the strong crypto policy files. All those old pain points are gone.&lt;/p&gt;</description>
      
      
      <category>java</category>
      
      
    </item>
    
    <item>
      <title>Let&#39;s Encrypt Wildcard Certs</title>
      <link>https://haskovec.com/posts/lets-encrypt-wildcard-certs/</link>
      <pubDate>Sun, 18 Mar 2018 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/lets-encrypt-wildcard-certs/</guid>
      <description>&lt;p&gt;Recently &lt;a href=&#34;https://letsencrypt.org/&#34;&gt;Let&amp;rsquo;s Encrypt&lt;/a&gt; announced that they would be supporting wildcard certs. I was pretty excited to hear about this as many times I would like to get certs for machines that might not be accessible on the internet. Currently I didn&amp;rsquo;t see an easy way to do this. With the new certs you could get a cert on your web server for your domain and use that cert on all the other machines in your domain that need TLS as well.&lt;/p&gt;</description>
      
      
      <category>encryption</category>
      
      <category>security</category>
      
      
    </item>
    
    <item>
      <title>Java 9 Upgrade</title>
      <link>https://haskovec.com/posts/java-9-upgrade/</link>
      <pubDate>Tue, 13 Mar 2018 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/java-9-upgrade/</guid>
      <description>&lt;p&gt;After upgrading my test app to Spring Boot 2.0 yesterday I decided to see how difficult the Java 9 upgrade was from there. I am happy to report that it was fairly trivial. I upgraded my maven pom to set the Java version to 9 and did a mvn clean install.&lt;/p&gt;
&lt;p&gt;Immediately I see some no class def exceptions around javax.transaction.Transaction. I did some quick google searching and discovered the problem seems to be in the Maven Surefire plugin. I found a work around that said to set the version to 2.20.1 and added a command line flag of &amp;ndash;add-modules javax.transaction. After doing that I was seeing errors around java.xml.bind. Doing some more searching I then added a second &amp;ndash;add-modules java.xml.bind. This fixed the issue. In the course of doing so I found a &lt;a href=&#34;https://issues.apache.org/jira/browse/SUREFIRE-1424&#34;&gt;link to the issue&lt;/a&gt; on apache&amp;rsquo;s website. Reading through the comments I ended up with a final configuration of 2.21.0 with the following options:&lt;/p&gt;</description>
      
      
      <category>java</category>
      
      
    </item>
    
    <item>
      <title>Spring Boot 2.0</title>
      <link>https://haskovec.com/posts/spring-boot-2-0/</link>
      <pubDate>Mon, 12 Mar 2018 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/spring-boot-2-0/</guid>
      <description>&lt;p&gt;Spring Boot 2.0 has finally arrived. Unfortunately we aren&amp;rsquo;t yet in a position at the office to be able to begin the upgrade so I decided to start playing around with it on one of my projects at home as I didn&amp;rsquo;t want to wait until we were ready to update our app.&lt;/p&gt;
&lt;p&gt;The first thing I noticed about it they removed findOne() from CrudRepository. This to me is a bad change for all the users of the framework. It is one of the most commonly used methods in Spring Data, and not people either have to refactor their code to use findById() which returns an Optional&amp;lt;&amp;gt; of the type and deal with the optional instead of a null or you have to add a findOne with an @Query to all of your repositories. I have worked on projects in the past that have hundreds of tables and Repositories. This change is forcing them to update hundreds of classes just to upgrade to Spring Boot 2.0. It seems to me a better choice would have been to @Deprecated on findOne and encourage people to upgrade to the new findById method.&lt;/p&gt;</description>
      
      
      <category>spring-boot</category>
      
      
    </item>
    
    <item>
      <title>Upgrading to Java 9</title>
      <link>https://haskovec.com/posts/upgrading-java-9/</link>
      <pubDate>Sun, 25 Feb 2018 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/upgrading-java-9/</guid>
      <description>&lt;h3 id=&#34;upgrading-to-java-9&#34;&gt;Upgrading to Java 9&lt;/h3&gt;
&lt;p&gt;Ever since Java 9 was released last fall, I have been wanting to upgrade our software at work to the new platform. I am not interested in the new module stuff, mostly I just want the convenience methods like List.of(), and the platform improvements. I think G1 by default looks good, the new representation for strings to save memory looks like a huge win, and all the performance numbers that I have seen show it to be a big win. Unfortunately this is not as straight forward as one should hope.&lt;/p&gt;</description>
      
      
      <category>java</category>
      
      
    </item>
    
    <item>
      <title>Themes for 2018</title>
      <link>https://haskovec.com/posts/themes-for-2018/</link>
      <pubDate>Mon, 08 Jan 2018 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/themes-for-2018/</guid>
      <description>&lt;h3 id=&#34;introduction&#34;&gt;Introduction&lt;/h3&gt;
&lt;p&gt;As is tradition on this blog I always lay out some themes to focus on for the upcoming year. These were &lt;a href=&#34;https://haskovec.com/themes-for-2017/&#34;&gt;last years themes&lt;/a&gt; if you want to get an idea for the types of things I usually do. I haven&amp;rsquo;t spent as much time as usual pondering my list this year as I was very busy over my holiday break (at the start with sick kids, and at the end with lots of family activities). Given that today is my last day of vacation I decided it is time to get some things written down. Here are my themes for 2018.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>2017 year end review</title>
      <link>https://haskovec.com/posts/2017-year-end-review/</link>
      <pubDate>Mon, 25 Dec 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/2017-year-end-review/</guid>
      <description>&lt;h5 id=&#34;recap-for-2017&#34;&gt;Recap for 2017&lt;/h5&gt;
&lt;p&gt;Now that I am off of work for the rest of the year I decided that it was a good time to work on my annual year end review for 2017 and see how my year went. This is the post I did at the start of the year for my plan on what I was going to focus on: &lt;a href=&#34;https://haskovec.com/themes-for-2017/&#34;&gt;Themes for 2017&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I am going to start with just an overview of my year and then I will drill down into my themes. 2017 was a whirlwind of a year. In the 4th quarter of 2016 we made a push to make Choose a profitable company. We achieved that by the beginning of the year and in my mind we were going to run hard for another year and really grow the revenue and hopefully sell the company in 2018. Instead the board decided to sell the company in May which led to major changes for me.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>HTTP Location Header</title>
      <link>https://haskovec.com/posts/http-location-header/</link>
      <pubDate>Mon, 02 Oct 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/http-location-header/</guid>
      <description>&lt;p&gt;I came across this &lt;a href=&#34;https://blog.codecentric.de/en/2017/09/polite-http-api-design-use-the-headers-luke/&#34;&gt;blog post today&lt;/a&gt; about using the HTTP Location Header in REST API responses when creating a resource. I have been doing Web development now since 2008 and in all that time I have never actually seen anyone use this header on any of their endpoints.&lt;/p&gt;
&lt;p&gt;That being said it makes a lot of sense, traditionally when I would create a new resource I would return the json for that object back in the response so the caller could pull the ID out of the object, but this seems like a better way to do it, as now you could just return your 200 like normal and set this header and not have to send the response body back when the caller knows what they just sent you.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Bose QC-35 Product Review</title>
      <link>https://haskovec.com/posts/bose-qc-35-product-review/</link>
      <pubDate>Thu, 21 Sep 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/bose-qc-35-product-review/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://haskovec.com/wp-content/uploads/2017/09/IMG_2291.jpg&#34;&gt;&lt;img src=&#34;images/IMG_2291-768x1024.jpg&#34; alt=&#34;Bose QC35 Box&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Today I received my new &lt;a href=&#34;https://www.bose.com/en_us/products/headphones/over_ear_headphones/quietcomfort-35-wireless.html&#34;&gt;Bose Quiet Comfort 35&lt;/a&gt; headphones that I ordered, so I figured that I would do a review on them.&lt;/p&gt;
&lt;p&gt;I have been a long time Bose Headphone user. It all started back in 2007. Sofi and I were about to fly out to Scotland to celebrate our wedding anniversary and I had recently received a small amount of inheritance money after the passing of a grand parent. Faced with an 8 hour flight to London (before we flew to Edinburgh) I was thinking man some noise cancelling headphones would be nice for the flight. So Sofi and I ran over to the Bose store at the mall in our area and bought 2 pairs of &lt;a href=&#34;https://www.bose.com/content/dam/Bose_DAM/Web/consumer_electronics/support/pdfs/qc3/owg_en_qc3.pdf&#34;&gt;Bose Quiet Comfort 3&lt;/a&gt; Headphones for our flight.  We quickly charged them until it was time to head to the airport. Previous to this I had never owned any premium headphones before, and I was immediately hooked. They were night and day better than anything I had ever used before. They cut out so much noise from the jet engines that I could actually play my iPod at a lower volume level that I would otherwise which lead to much more comfort when listening to music as well as much more comfort on the flight just having the headphones turned on with nothing playing. At that point I decided that these were the way to go going forward.&lt;/p&gt;</description>
      
      
      <category>review</category>
      
      
    </item>
    
    <item>
      <title>Microservices as the way to onboard a new engineer</title>
      <link>https://haskovec.com/posts/microservices-way-onboard-new-engineer/</link>
      <pubDate>Thu, 14 Sep 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/microservices-way-onboard-new-engineer/</guid>
      <description>&lt;h5 id=&#34;microservice-onboarding&#34;&gt;Microservice onboarding&amp;hellip;&lt;/h5&gt;
&lt;p&gt;It has been a crazy couple of months since I took my new role. I have had so much new stuff to learn I haven&amp;rsquo;t been making a lot of time for other technical pursuits in my spare time. But that being said I am on paternity leave right now, so I figured it was a good time to sit back and reflect on my first couple of months. Similar to Choose the first project that I was asked to work on was to write a new Micro Service. This got me to thinking maybe this is the way to on board a senior engineer.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Last Choose post</title>
      <link>https://haskovec.com/posts/last-choose-post/</link>
      <pubDate>Wed, 30 Aug 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/last-choose-post/</guid>
      <description>&lt;p&gt;I haven&amp;rsquo;t had a chance to update my blog lately as I have been so busy in my new role. That being said I did want to highlight the writing of some of my former coworkers as I think they are writing some great stuff. First check out Kevin Stephen&amp;rsquo;s blog over at: &lt;a href=&#34;http://kevindstevens.com/&#34;&gt;http://kevindstevens.com/&lt;/a&gt; Kevin is talking about Technology, Growth, and Venture Capital all topics that I find interesting. Also our former Chief Revenue Officer John Tough is blogging over at: &lt;a href=&#34;http://johntough.com/&#34;&gt;http://johntough.com/&lt;/a&gt; John has provided some great stories about the whole acquisition process and even as an employee I learned things that I wasn&amp;rsquo;t aware of at the time, so I have really enjoyed his writing. My final reading recommendation is Jonathan Crowder over at: &lt;a href=&#34;https://medium.com/@jonathan.m.crowder&#34;&gt;https://medium.com/@jonathan.m.crowder&lt;/a&gt; He is also writing some great business content. Though JC you really need to host on your own site and not on medium. Own your content man! Anyway check out their posts there is some good stuff there. Going forward I have been playing around with some new stuff in my new role and I plan on discussing some of that going forward.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>My Last Day at Choose</title>
      <link>https://haskovec.com/posts/last-day-choose/</link>
      <pubDate>Fri, 14 Jul 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/last-day-choose/</guid>
      <description>&lt;p&gt;Today was my last day at choose. What a ride it has been. Thus far it has been my favorite job in my entire career. The quality of the team was top notch and I can&amp;rsquo;t believe how much software we shipped. The turn around was epic and we just had a ton of fun at work. We took a couple of pictures from our last happy hour.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;images/IMG_2042.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;images/IMG_2044.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Stories about the acquisition</title>
      <link>https://haskovec.com/posts/stories-about-the-acquisition/</link>
      <pubDate>Thu, 29 Jun 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/stories-about-the-acquisition/</guid>
      <description>&lt;p&gt;When I posted my &lt;a href=&#34;https://haskovec.com/wow-we-were-acquired/&#34;&gt;previous post&lt;/a&gt;, I left out most of the details about our acquisition as I was not sure what information was public and what wasn&amp;rsquo;t. Now that there has been some press around the acquisition I figured I would share some of it to provide some details.&lt;/p&gt;
&lt;p&gt;First off we had a story in &lt;a href=&#34;http://fortune.com/2017/06/26/red-ventures-choose-energy/?lipi=urn%3Ali%3Apage%3Ad_flagship3_search_srp_content%3B8dw1z5D2SYOh6uXlZFkE3g%3D%3D&#34;&gt;Fortune&lt;/a&gt; about Red Ventures acquiring us. After reading that story, I found another story trending on linked in from &lt;a href=&#34;https://www-greentechmedia-com.cdn.ampproject.org/c/s/www.greentechmedia.com/amp/article/KPCB-Funded-Choose-Energy-Acquired-By-Red-Ventures-For-Less-Than-100M&#34;&gt;Green Tech Media&lt;/a&gt;. I liked that the Green Tech story had more detail, and since I can&amp;rsquo;t really talk about anything that isn&amp;rsquo;t public it is nice to see more details in a public forum.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Wow! We were acquired!</title>
      <link>https://haskovec.com/posts/wow-we-were-acquired/</link>
      <pubDate>Sat, 10 Jun 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/wow-we-were-acquired/</guid>
      <description>&lt;p&gt;Wow! That was unexpected after my last post talking about my first year, but we found out on Monday that we were acquired. It is the goal of every startup to be acquired so I am proud to have taken part in a huge turn around of a business to have made that possible. We took a startup company that was losing money when I joined to one that was profitable today, and I was able to work with the strongest engineering team that I have ever worked with in my career which was hugely rewarding.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Reflecting on my first year at Choose</title>
      <link>https://haskovec.com/posts/reflecting-first-year-choose/</link>
      <pubDate>Sun, 21 May 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/reflecting-first-year-choose/</guid>
      <description>&lt;h2 id=&#34;my-first-year&#34;&gt;My First Year&lt;/h2&gt;
&lt;p&gt;I just celebrated my one year anniversary in my current position, which is a great opportunity to look back on the last year of work. This role has been unlike any other that I have had in my career starting from the interview.&lt;/p&gt;
&lt;p&gt;When I was interviewing with my boss and we were discussing what I did in my previous role, I discussed the architecture that we had built. It was a traditional Spring application that was a monolith. It was a very well designed layered architecture. We were doing a mix &lt;a href=&#34;https://trunkbaseddevelopment.com/&#34;&gt;Trunk Based Development&lt;/a&gt; and feature branch development depending on how large and invasive the feature was using git as the repository. We had a great unit test suite and did weekly deployments. We tried to commit early to master and use feature toggles to role out new features and mitigate risk. They were still largely a waterfall model though, just a company that moved faster on waterfall than any I have ever worked with.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Lent and Easter fasting recap</title>
      <link>https://haskovec.com/posts/lent-easter-fasting-recap/</link>
      <pubDate>Sun, 23 Apr 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/lent-easter-fasting-recap/</guid>
      <description>&lt;p&gt;As we are at the end of the Easter Octive I realized that I have been remiss to give an update on how the intermittent fasting went for Lent. From Ash Wednesday through Holy Saturday I only ate between the hours of 6pm and 10pm.&lt;/p&gt;
&lt;p&gt;Overall I found that after a day or 2 your body adapts and you don&amp;rsquo;t really get hungry during the day. The exception to this was Saturdays. Since Catholic&amp;rsquo;s can&amp;rsquo;t eat meat on Friday&amp;rsquo;s during lent the food that I consumed did not keep me as full. Additionally I have more time on Saturdays and I think there is a natural habit to munch sometimes when bored or just hanging around the house.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Bring on the intermittent fasting</title>
      <link>https://haskovec.com/posts/bring-intermittent-fasting/</link>
      <pubDate>Thu, 02 Mar 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/bring-intermittent-fasting/</guid>
      <description>&lt;h2 id=&#34;lent&#34;&gt;Lent&lt;/h2&gt;
&lt;p&gt;Lent is here and I decided to go with the intermittent fasting that I had been considering. First as &lt;a href=&#34;http://haskovec.com/slow-carb-diet-book-review/&#34;&gt;previously mentioned&lt;/a&gt;, I was doing the slow carb diet. Between January 9th and March 1st I went from 251 pounds to 228.8 pounds. And that wasn&amp;rsquo;t adhering too closely to the diet. For example the diet has you eating smaller meals every three hours and that is something I struggle with. It doesn&amp;rsquo;t really work for me. So I was just eating 2-4 meals a day depending on the day. At the beginning close to 4 and by the end just 2. Also in that time frame, we celebrated my wife&amp;rsquo;s birthday, our wedding anniversary, and my daughter&amp;rsquo;s birthday all of which involved breaking the diet to some degree. I think if I had stuck close to the diet I could have lost that weight in 6 weeks based on the rate that I was losing early on before family obligations came into play. But at the end of the day if you can&amp;rsquo;t cheat here and there to celebrate the important things in life, that is no way to live. And Slow Carb is definitely a system that if you stick to it most of the time will work for you even with the built in cheats.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>More fasting benefits</title>
      <link>https://haskovec.com/posts/fasting-benefits/</link>
      <pubDate>Sun, 26 Feb 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/fasting-benefits/</guid>
      <description>&lt;p&gt;I came across another article on hackernews about the &lt;a href=&#34;http://www.bbc.co.uk/news/amp/39070183&#34;&gt;benefits of fasting&lt;/a&gt;. It seems that as more and more time goes by the evidence grows that intermittent fasting has enormous health benefits. This story is even more amazing from the diabetic standpoint and the regenerating your pancreas.&lt;/p&gt;
&lt;p&gt;Then my coworker sent me this video which I also think is good food for thought:&lt;/p&gt;
&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/PKfR6bAXr-c&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;
&lt;p&gt;This got me thinking that maybe I should try the one meal a day thing throughout lent this year and see how that goes. I was already considering closing it out with another 72 hour fast. Though this year I am not going to fast from coffee I found that I was too mentally foggy in the afternoons without it. So given that I like to experiment anyway spending a bit over a month just having maybe supper every day and coffee (black) in the morning I think will be a good test to see how this actually would work lifestyle wise. I haven&amp;rsquo;t decided for sure whether I will go with that or not (I don&amp;rsquo;t have to decide until Wednesday morning), but that is the direction that I am leaning right now.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Jackson Bug Update</title>
      <link>https://haskovec.com/posts/jackson-bug-update/</link>
      <pubDate>Wed, 22 Feb 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/jackson-bug-update/</guid>
      <description>&lt;p&gt;Well that was fast. I didn&amp;rsquo;t expect the day after the post to have an update but here it is. One thing I love about open source it is possible to find answers quickly. So it turns out that &lt;a href=&#34;https://haskovec.com/bug-jackson-json-serialization-immutable-objects/&#34;&gt;this is not in fact a bug&lt;/a&gt;. Apparently Jackson 2 aims for a Java 6 compatibility level. As a result of this they can&amp;rsquo;t include Java 8 features in the baseline as that would break compatibility. So they have a module to use the Java 8 features that you can bring into Maven with the following settings:&lt;/p&gt;</description>
      
      
      <category>jackson-json</category>
      
      
    </item>
    
    <item>
      <title>Bug in Jackson JSON serialization of Immutable objects</title>
      <link>https://haskovec.com/posts/bug-jackson-json-serialization-immutable-objects/</link>
      <pubDate>Mon, 20 Feb 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/bug-jackson-json-serialization-immutable-objects/</guid>
      <description>&lt;h3 id=&#34;the-bug&#34;&gt;The bug&lt;/h3&gt;
&lt;p&gt;I have been using Jackson for JSON processing for many years now. It is a great framework and mostly just works. It is the default framework in Spring Boot and mostly it just sits behind the scenes and drives most micro services in Java these days. That is why I was surprised when we hit a bug in the framework as I hadn&amp;rsquo;t really had any issues in the past.&lt;/p&gt;</description>
      
      
      <category>jackson-json</category>
      
      
    </item>
    
    <item>
      <title>Why starting a blog will change your life</title>
      <link>https://haskovec.com/posts/starting-blog-will-change-life/</link>
      <pubDate>Sun, 19 Feb 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/starting-blog-will-change-life/</guid>
      <description>&lt;h3 id=&#34;introduction&#34;&gt;Introduction&lt;/h3&gt;
&lt;p&gt;I came across &lt;a href=&#34;https://www.linkedin.com/pulse/why-starting-blog-change-your-life-even-one-reads-vincent-carlos&#34;&gt;this post on linked in&lt;/a&gt; and it was too good to not share. The author highlights all the benefits of starting a blog. The key thing he mentions is that you accrue all these benefits even if no one reads your blog. I have found all of this to be true in my personal life. I have very few readers of this blog, but in the end I write this blog for me and not for someone else.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Slow Carb Diet and Book Review</title>
      <link>https://haskovec.com/posts/slow-carb-diet-book-review/</link>
      <pubDate>Sat, 18 Feb 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/slow-carb-diet-book-review/</guid>
      <description>&lt;p&gt;Shortly after Epiphany I started doing the slow carb diet as outlined in the &lt;a href=&#34;https://www.amazon.com/Summary-4-Hour-Body-Incredible-Superhuman/dp/1520543476/ref=as_li_ss_tl?ie=UTF8&amp;amp;qid=1487441602&amp;amp;sr=8-2&amp;amp;keywords=four+hour+body&amp;amp;linkCode=ll1&amp;amp;tag=classliber-20&amp;amp;linkId=d5a844e7e9d265daacd0046306f306f7&#34;&gt;Tim Ferriss book The four Hour body&lt;/a&gt;.
Basically slow carb is a high protein low-carb diet. It seems friendly to fat in general, but I would say not as fat
friendly as Paleo is. In the past I did paleo (&lt;a href=&#34;http://www.marksdailyapple.com/&#34;&gt;the Primal version by Mark Sissan&lt;/a&gt;) and successfully lost a lot of
weight, but I wanted something that I thought was a little more flexible. In the month and a half of slow carb I have
lost 20 pounds. I think the rate of weight loss is slightly slower than doing paleo for me, but I think it is sustainable
longer term. One interesting aspect of the diet is you can eat whatever you want on one day of the week (your cheat day).
On my cheat day (Saturday) I tend to gain a pound or 2 but the weight loss the rest of the week eats this away and still
leaves you with gains. I think it is an interesting aspect of the diet because now instead of saying I can&amp;rsquo;t eat X, it
becomes I need to wait till Saturday to have this. Waiting a few days is much easier on the will power than saying I
can&amp;rsquo;t eat this as eventually people tend to cheat. The other thing to note is even though I have been doing this diet on
the weekend of my Wife&amp;rsquo;s birthday I ate whatever she wanted, and we had Valentines where we ate fondue, so I haven&amp;rsquo;t been
entirely faithful to the diet like I was with Primal. Given how well it is working with all those aspects I will keep
going with it, I would like to lose at least another 30 pounds so I am almost halfway to where I want to be.&lt;/p&gt;</description>
      
      
      <category>review</category>
      
      
    </item>
    
    <item>
      <title>TIL: default hashCode() in Java</title>
      <link>https://haskovec.com/posts/til-default-hashcode-java/</link>
      <pubDate>Mon, 13 Feb 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/til-default-hashcode-java/</guid>
      <description>&lt;p&gt;I came across this blog post today which I thought was really good. It is a deep dive into the default hashCode() implementation in java. To me the most amazing outcome of the piece is that if a given class is going to be accessed by multiple threads you really need to override hashCode otherwise biased locking is disabled. All in all it is an interesting look in the guts of the JVM and worth a read: &lt;a href=&#34;https://srvaroa.github.io/jvm/java/openjdk/biased-locking/2017/01/30/hashCode.html&#34;&gt;default hashCode&lt;/a&gt;&lt;/p&gt;</description>
      
      
      <category>java</category>
      
      
    </item>
    
    <item>
      <title>Sorry for the lack of updates</title>
      <link>https://haskovec.com/posts/sorry-lack-updates/</link>
      <pubDate>Thu, 02 Feb 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/sorry-lack-updates/</guid>
      <description>&lt;p&gt;Sorry for the lack of updates. We have been busy working on a game changing micro service for our business. It has been a blast but a couple of crazy sprints. I hope to get back to more writing in the near future.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Themes for 2017</title>
      <link>https://haskovec.com/posts/themes-for-2017/</link>
      <pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/themes-for-2017/</guid>
      <description>&lt;h3 id=&#34;introduction&#34;&gt;Introduction&lt;/h3&gt;
&lt;p&gt;As is my tradition on this blog this is my annual post for my &lt;a href=&#34;https://haskovec.com/themes-for-2016/&#34;&gt;Themes for the year&lt;/a&gt;. Why themes and not goals? I feel like if you don&amp;rsquo;t hit your goals that feels like a failure, but as witnessed by my &lt;a href=&#34;https://haskovec.com/recap-for-2016/&#34;&gt;recap of last year&lt;/a&gt; I did a poor job of hitting my themes and was still very happy with how the year turned out. Themes are designed to be open ended and the idea is just an accountability tool for myself to make sure I am working on personal and professional growth. In the case of last year my life changes resulted in many of the themes not making sense anymore, but I still felt like there was a ton of growth so I call it a successful year.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Recap for 2016</title>
      <link>https://haskovec.com/posts/recap-for-2016/</link>
      <pubDate>Fri, 30 Dec 2016 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/recap-for-2016/</guid>
      <description>&lt;h2 id=&#34;end-of-year-recap&#34;&gt;End of year recap&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s that time again. Time to reflect on my &lt;a href=&#34;https://haskovec.com/themes-for-2016/&#34;&gt;themes for the year&lt;/a&gt; and see how I did on them. This is an annual tradition of mine to see how I am doing in general. I find it is a useful accountability tool for myself to make sure I am not wasting too much time on unimportant things and am spending the time that I would like on personal development.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>Upgrading from Ubuntu 14.04 -&gt; 16.04.1 under Amazon EC2</title>
      <link>https://haskovec.com/posts/upgrading-ubuntu-14-04-16-04-1-amazon-ec2/</link>
      <pubDate>Tue, 27 Dec 2016 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/upgrading-ubuntu-14-04-16-04-1-amazon-ec2/</guid>
      <description>&lt;h2 id=&#34;the-upgrade-process&#34;&gt;The Upgrade Process&lt;/h2&gt;
&lt;p&gt;I finally got around to upgrading my web server from Ubuntu 14.04 to Ubuntu 16.04.1. I decided to jot down my experiences in case anyone else runs into these issues.&lt;/p&gt;
&lt;h2 id=&#34;preparation&#34;&gt;Preparation&lt;/h2&gt;
&lt;p&gt;The first thing I did prior to doing the upgrade was to run updraft plus to backup the Blog&amp;rsquo;s database and files. After that finished I logged into the Amazon EC2 console and created an image of my AMI. This way in the worst case scenario that I trashed my image I could just boot the backup image and be where I was before I began.&lt;/p&gt;</description>
      
      
      <category>general</category>
      
      
    </item>
    
    <item>
      <title>AWS Lambda or should I call them nano services?</title>
      <link>https://haskovec.com/posts/aws-lambda-call-nano-services/</link>
      <pubDate>Sat, 12 Nov 2016 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/aws-lambda-call-nano-services/</guid>
      <description>&lt;p&gt;Recently at work I worked on a project using &lt;a href=&#34;https://aws.amazon.com/lambda/&#34;&gt;Amazon AWS Lambda&lt;/a&gt;. This is a cool concept. Amazon calls it serverless computing, but really what it is, is abstracting the server so that you can just focus on a small task that needs to run.&lt;/p&gt;
&lt;p&gt;In this case we had a rest endpoint that just stores some data in a database.  If we think about a traditional Spring Boot Microservice we would probably do Spring Data JPA, point it at a mysql DB, and then have some rest controllers that talk to a service tier which persists the data. With Spring Boot this isn&amp;rsquo;t much code, but you still have some embedded Tomcat Server and a fair amount of ceremony for doing something very simple. After building the app you will need to deploy it to Elastic Beanstalk instance or else an EC2 Nano Instance or something similar. That is a lot of DevOps overhead to do something very simple. With Lamdba we can create a simple class that takes a pojo java object (&lt;a href=&#34;https://github.com/FasterXML/jackson&#34;&gt;Jackson&lt;/a&gt; style). With Lambda you don&amp;rsquo;t have Hibernate, you are just dealing with raw JDBC but when you are just inserting 1 Row into a Database you don&amp;rsquo;t really need am object relational mapping. You then use Amazon&amp;rsquo;s API gateway to send any requests to an endpoint to the lambda function and you are all good to go.&lt;/p&gt;</description>
      
      
      <category>java</category>
      
      
    </item>
    
    <item>
      <title>MacOS Sierra Slowdown update</title>
      <link>https://haskovec.com/posts/macos-sierra-slowdown-update/</link>
      <pubDate>Sat, 12 Nov 2016 00:00:00 +0000</pubDate>
      <author>jeffrey@haskovec.com (Jeffrey Haskovec)</author>
      <guid>https://haskovec.com/posts/macos-sierra-slowdown-update/</guid>
      <description>&lt;p&gt;I have an update on my slowdown issues on Sierra. It appears the real problem lies in the AWS Java SDK. After talking to the spring boot people via github they were able to narrow it down to an Amazon issue. I opened an &lt;a href=&#34;https://github.com/aws/aws-sdk-java/issues/885&#34;&gt;issue on github&lt;/a&gt; with Amazon and they responded that the version of the SDK that ships in the current spring cloud has this issue in it, and it has been fixed in a newer version of the SDK. One of the big value propositions of Spring Boot to me and the release train concept of Spring Cloud or Spring Data is that it is a collection of dependencies that have all been tested together, which lowers my risk of using them together. So I opened a request with &lt;a href=&#34;https://github.com/spring-cloud/spring-cloud-aws/issues/183&#34;&gt;Spring Cloud AWS&lt;/a&gt; to upgrade their SDK. Unfortunately they don&amp;rsquo;t seem very timely in responding to issues as I notice it looks like there are no responses on any of the issues raised in the last 2 weeks.&lt;/p&gt;</description>
      
      
      <category>java</category>
      
      <category>spring-boot</category>
      
      <category>spring-framework</category>
      
      
    </item>
    
  </channel>
</rss>