Senior Software Engineer Learns Functional Programming

With explorations in Haskell, Elixir, and Clojure. Plus book reviews, side project notes, and occasional dives into different web frameworks.

O'Reilly Spring Framework Essentials

This time I’m working on reinforcing some of the Spring and Spring Boot knowledge I’ve picked up from other videos, while seeing if I can learn a couple of new tricks while at it. I’m watching Spring Framework Essentials through my Safari Books Online membership. It’s presented by Ken Kousen, who often hosts the Groovy Podcast. He has a series of three Groovy videos in Safari Books Online that I wouldn’t mind going through sometime in the future. The video series runtime is 5 hours, 14 minutes and it has a five star rating from 35 reviewers. Not bad, let’s see what it covers. ...

June 26, 2017 · 7 min · 1450 words · Lewis Cawthorne

Udemy - Spring Boot Intro

I figured since I am a professional Java programmer that I might as well spent some time getting familiar with some Java technologies that I don’t get to use at work. With this in mind, I purchased Udemy’s “Spring Boot Intro” course for $10 when they had a sale. This course moved a lot quicker than the last course I took from Udemy. It covered basic dependency injection in Spring in probably an hour or less, where the last class focused on dependency injection fundamentals for the entire time. I appreciated the faster pace, as there’s a lot of stuff to cover with Spring Boot. It handles autoconfiguring all the main projects that make up Spring… Spring MVC, Spring Rest, Spring Data, Spring Security, etc. ...

June 22, 2017 · 6 min · 1200 words · Lewis Cawthorne

AWDWR 5.1 - 03-05 - Theory

Chapters 3 through 5 focus on a little bit of theory before we get to building the tutorial application. Chapter 3 - The Architecture of Rails Applications Chapter 3 jumps into explaining MVC. It’s a pretty simple concept. MVC stands for Model, View, and Controller. The model is responsible for the state of the application, often the data you store in a database. It’s also more than data; it enforces the business rules that apply to your data. The model is both a gatekeeper and a data store. The view is responsible for generating some type of user interface. The view’s job is done once the data is displayed. Multiple possible views of the same data are a common case. The controller orechestrates the application. Controllers receive events from the outside world, interact with the model, and display the appropriate view. The book provides a simple diagram: ...

June 5, 2017 · 5 min · 1044 words · Lewis Cawthorne

Misc Reading

I’m still going back to finish my Agile Web Development with Rails 5.1 series. I finished reading the main project in the book a while back now. I just haven’t made time with the computer to create the demo project, and I want to have it in a repo to upload and talk about the code a little. I didn’t read the reference chapters, since they were still incomplete. I think I’ll read Agile Web Development with Rails 5 on Safari Books in its entirety, and that will give me a good perspective to see what changes with the project in the Rails 5.1 version of the book. The only thing that I noticed so far that was 5.1 specific is the ActionCable Websocket stuff they throw in, so that if a price changes on the backend it pushes the update to customers. Pretty neat to see Websockets used for something so small, instead of big examples of chat servers and what not like you commonly see. ...

June 2, 2017 · 4 min · 740 words · Lewis Cawthorne

Practical Vim, 2nd Edition - Second Half

So, I promised I’ld mention what goodies I find in the second half of Practical Vim, 2nd Edition. Here they are. Chapter 10, Copy and Paste First, the repetition of the insert mode <C-r>{register} command later in the book was something I found useful. I think that’s a pretty handy way to paste the contents of a register. I never knew that "+ let’s you access the system clipboard either. If you put the two together, you can quickly paste from the system clipboard without leaving insert mode with <C-r>+. The fact that yank stores a copy of what it copies in the 0 register is pretty handy too. Nice to have an alternate way to access the last yank if I’ve clobbered it. ...

May 26, 2017 · 9 min · 1735 words · Lewis Cawthorne

Practical Vim, 2nd Edition - First Half

Practical Vim is an excellent resource for tips and trick for using vim. It focuses on core vim features, and doesn’t spend any room talking about plugins. Aside from a few hints to how .vimrc settings might affect certain commands, it doesn’t spend any time telling you what to put in your .vimrc. It does have an appendix about vimrc settings, in case you need some new ones. The book is laid out as a series of 123 mostly standalone tips, although they do follow a procession of least to most difficult within their respective section. The tips are split between 20 sections. The book doesn’t attempt to go into Vimscript. Overall, I found it a useful collection of mostly non-obvious tips for using vim, and I feel like it has made me more capable in using my editor of choice. ...

May 22, 2017 · 6 min · 1167 words · Lewis Cawthorne

Command Line Power User

Well, I promised I would review Command Line Power User the other day when I did the Mastering Markdown video, so here it is. This is probably a better video series to give me an opinion of his teaching skills, since it isn’t something I know entirely and is actually a little over an hour of video. Each video is longer also, so it probably won’t annoy me so much when the video player scrolls down to where I can’t see the video after switching files. ...

May 19, 2017 · 3 min · 561 words · Lewis Cawthorne

AWDWR 5.1 - 02 - Instant Gratification

First I’ld like to say sorry the images are a little big. Not used to screencaps on this retina Macbook. So, I fixed my mistake from last time. I had originally installed ruby via homebrew, but now that I’ve read up on rbenv, it seems a lot nicer than the old rvm, and I might want multiple versions of Ruby on my home PC. So I uninstalled Ruby 2.4 and went with brew install rbenv and then used it to install the latest Ruby. I see why the book authors prefer it over RVM now. It’s a lot less invasive than the old RVM. ...

May 18, 2017 · 6 min · 1148 words · Lewis Cawthorne

Mastering Markdown

Well, for something a little different, I decided to write my opinion of a free video course. Since I’m writing my blog in markdown, I figured why not review it with something other than the Kramdown cheatsheet. Wes Bos has a number of video courses, some free and some paid for. His Mastering Markdown course is one of the free ones. It’s really only a single 23 minute video, so not much of a course, but since he just came out with a Learn Node course and has another longer free course of Javascript projects, I figured why not try the little course to get a feel for his teaching style and see if I want to invest any more time and/or money in more of his courses later. His other free courses if your interested include Command Line Power User which has some Z shell tips that I might check out, since I’m sure I’m not making the most of it, and JavaScript 30 which is 30 days of building 30 things in vanilla JS (which promises no frameworks, no compilers, no libraries, and no boilerplate). Unless this one is terribly, I’ll probably sit through the command line one after this. The JavaScript 30 one I’ll only invest time in if I like these two. Well, without further ado, here’s my opinion of Mastering Markdown. ...

May 17, 2017 · 3 min · 520 words · Lewis Cawthorne

AWDWR 5.1 - 01 - Introduction

So, what do I have to blog about? I’m always trying out new stuff and reading books, so I figure I’ll talk about that. I happen to have just gotten a beta copy of Agile Web Development with Rails 5.1 and since my Ruby and Rails experience from my résumé is a little rusty, I figure I’ll read that and blog about the experience. Starting this site using Jekyll has made me think about Ruby lately anyway. It’s been many years since I’ve read “Agile Web Development with Rails”, and I think it was the version that covered Rails 1.2, so this should be a pretty new experience for me; both a great refresher and an introduction to what is new in the Rails world these days. ...

May 16, 2017 · 8 min · 1570 words · Lewis Cawthorne