Minishift on Mac OS

Here’s a quick list of steps you can run on your Mac to get up and running with Minishift:

brew update
brew install --HEAD xhyve
brew install docker-machine-driver-xhyve
sudo chown root:wheel $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
sudo chmod u+s $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
brew cask install minishift
minishift start

Voila!

For other platforms or more elaborate details, visit minishift docs.

 

 

Microprofile: Towards a microservices-friendly J2EE

An intro to the bleeding edge attempt at rapidly standardizing how to do microservices in the Java world (aka Microprofile): https://dzone.com/articles/microprofile-5-things-you-need-to-know

To start playing around with it: https://github.com/eclipse/microprofile-conference

Spring Boot seems to be an altogether superior and mature way (although opinionated) to implement microservices, and doesn’t even enter into the discussions around Microprofile.

What makes a good Engineer?

An insightful interview with Linus Torvalds reveals that good engineers:

  • are more concerned with fixing problems than necessarily dreaming or envisioning an idea that will change the world
  • are stubborn; refuse to give up on the problem they are working on
  • are tasteful, and have an intuitive understanding on how a problem ought to be solved

 

Reading projects and GTD?

On my new job, I have found the need to do a lot of reading to get up-to-speed. As a result, I had a stack of reading projects loom before me quickly, and was struggling to efficiently have a process that ensured I was getting all the reading done. My GTD system didn’t help me much either for the reasons mentioned in this article. Namely, reading projects with broken down action items along with the rest of my daily to-dos in the GTD system creates a form of cognitive dissonance. Hence, as the article suggests, I’ve found the distinction of working out of a routine instead of list for my reading projects to be helpful. I would rather not see a to-do entry from a reading project (say, completing a book) in my daily list at all. Instead, I have allotted times in my calendar when I can drain out the stack of ebooks on my operational reading list.

However, if it is a simple reading project/task such ‘Read through a long email chain’ or a time-sensitive one such as ‘Finish reading 30-page technical article prior to meeting’, I would still opt for the usual GTD workflow.

How to setup (EAP 6 on Mac OS X) + (Oracle XE on RHEL 7 VM)

Oracle 11g XE does not run natively on Mac OS X. However, you can have it setup running on a VM and have your natively-running JBoss servers connect to it via port-forwarding (along with additional steps below):

  • Install EAP 6.x on Mac OS X
  • Install RHEL 7.x as a VM using Virtual Box
  • Install Oracle 11g XE on RHEL 7.x
  • Create DB users on Oracle DB server
  • Add port forwarding for Oracle DB’s default ‘1521’
  • Turn off firewall on RHEL 7 and disable SELinux. Presumably, you don’t need such lockdown features when running locally. If needed, grant appropriate firewall permissions for ip/port. Otherwise, you can permanently disable the firewall service:

service firewalld stop
chkconfig firewalld off

Jump on Opportunities to Learn Together

When it comes to learning something new, we often tend to take the approach of seeking solitude with a bunch of books and a laptop. Although this may appropriate for some kinds of learning, the collaborative approach of learning together with other people is often overlooked. HBR has an interesting article arguing that we learn more when we learn together.  This would make sense considering that human beings are relational beings to the core and are not meant live in silo’ed worlds.

Taking OpenShift for a Test Drive with Sinatra

I decided to try out Red Hat’s PAAS solution OpenShift by deploying a simple application built on Ruby Sinatra. These were the basic steps required to get up and running:

  1. Signup for OpenShift account.
  2. Setup OpenShift client on your local development machine.
  3. Setup a secure remote connection.
  4. Setup Ruby/Sinatra specific dependencies.
  5. See sinatra-example on Github to get an idea of directory structure and key files needed.
  6. Create a Github repo for the app and sync it with Openshift repo.

I already had a simple Sinatra utility app running locally. I was able to signup, complete initial setup, deploy, and have the app running on OpenShift in less than 15 minutes! Great first experience!

Good to Great as a Programmer

How easy it is to be content where you are as a developer and coast through a Software job so long as it pays the bills! If you want to get out of the rut of becoming stale in your technical skills, here’s some excellent advice on what it takes to start heading in the direction of becoming a better programmer than you are now:

  • be humble
  • listen
  • step outside your comfort zone
  • always be learning
  • be flexible
  • write things down
  • work with better developers