Category: Life

  • Ghost in the (Google Cloud) Shell

    One of the perks of being a technologist that is not tied to a traditional 9 to 5 is that you have immense freedom in terms of where you can complete your ‘work’ from. I’ve always toyed with the digital nomad lifestyle… but it’s kind of ridiculous when you need to lug around an insane amount of equipment in order to effectively complete your tasks. I have several computers; optimized for specific types of work, or tied to specific clients. This always required me to think ahead before traveling.  Which project I was going to work on while away?  There was a time where I would take everything with me.  Traveling with kids has definitely made me want to pack as minimally as possible.  Since I was spending a bunch of time working on the Google stack, I decided to investigate using Google Cloud Shell as a development environment.

    Problems as a Digital Nomad Developer

    Development and image processing requires horsepower.  Even the best laptops for doing this are big and heavy…. and expensive.  This is definitely something to think about if you travel.  Especially if you’re regularly in a country like India, Russia or China where in today’s political climate the likelihood of your hardware getting confiscated is higher than ever. Having this happen while traveling was what ultimately drove me to become a Chromebook advocate.

    Pros and Cons of the Chromebook

    Losing the hardware is one thing, but losing the data contained on the device is even worse. Chromebooks solved the data problem… You could powerwash the device and then restore it back to its former state at any point in time from the cloud. Worst case scenario, you lose a reasonably inexpensive piece of hardware, but your data is intact. Unfortunately, Chrome OS hardware hasn’t historically been the best option for development… especially if you want to maintain the security offered by the powerwash technique that I mentioned.

    The desire to be able to travel anywhere, any time at a moments notice and feel confident that I can deal with anything that comes up while I’m gone using just my Chromebook ultimately drove me to experiment with setting up containerized development environments. I wanted something divorced from the hardware that I could easily get up and running and know that everything is setup the way I need it to be. This was great, but I still needed someplace where I could access these containers from anywhere. I eventually became more and more a fan of the Google Cloud Platform (GCP).  The container centric approach to everything and the fact that the price was right ultimately led me to migrate all of my cloud infrastructure to GCP. It wasn’t long before my containerized development environments followed… and then I discovered Google Cloud Shell.

    Using Google Cloud Shell as a Development Environment

    Google Cloud Shell takes this whole idea a step further. It gives me a 5GB persistent space accessible from any browser. I don’t even need the Chromebook any more. Everything that I store in my home directory stays there across sessions. Even better, it’s directly connected to all of my projects in GCP. I’ve been doing almost all of my recent development using Google Cloud Shell and the integrated Orion Editor exclusively… and I LOVE it! For web based development and microservices, it’s absolutely great. Especially if you’re ultimately deploying to GCP. The only time I’ve gone back to my ‘development’ laptop has been to do Android development as I haven’t really found a good solution for running things like Android Studio or emulators using this approach.

    But I want to develop for ‘free’

    Ok, I can hear a bunch of you thinking that you don’t want to be forced to develop on GCP (and potentially incur costs) before you’re ready to deploy to production. Guess what? ngrok works great in Google Cloud Shell… you can expose your local dev environment securely anywhere on the web without deploying your project to GCP. What about localhost? ngrok exposes debug information on 127.0.0.1, so there’s no way to access that from Google Cloud Shell, right? Wrong… with GCS, you can expose a ‘ ‘web preview’ from any port just by clicking on the icon within GCS, you can map this to expose ngrok’s debug interface.

    Onward to Production

    Google Cloud Shell obviously has all of the Google Cloud SDK integrated by default, so when you’re ready to go to production, it’s a piece of cake. GCS even knows which Cloud Project you’re working on (and reminds you of that fact in the terminal). Turn off ngrok, push to your cloud environment and update your systems to point to the production version!

    Google Cloud Shell Conclusion

    Is Google Cloud Shell the absolutely flawless solution to every development need that a digital nomad has? Definitely not, but it’s pretty damn good. I haven’t found a good way to do Android development this using it. It’s absolutely fantastic for doing Node development though…. especially if you’re deploying to GCP ultimately. Google Cloud Shell does have a usage limit of 60 hours per week.  If you’re burning the candle from both ends, you’ll want to remember to shut it down when you do take a break so that you don’t hit that limit. Give it a shot for yourself and let me know what you think.

  • I’m retiring…

    …from the rat race at least 😉  I’m extremely excited to announce that effective 11/09/2018 I will be a full time employee of Threddies!  Many of you are likely already aware that I’ve been working part time at my day job since April in preparation for this and I know, based on the questions that I’ve received, that it will save a lot of time for everyone if I document the basics .

    A brief history lesson

    We’ve been building Threddies for well over a decade and have learned a lot along the way.  The tech stack has evolved and been replaced several times.  We’ve overcome many of the difficulties of building a new technology based small business in the Upper Bucks and Montgomery County area of Pennsylvania.  We’ve made mistakes and come up with better ways of doing things, but in that time, we’ve grown what was once a tiny side project into a serious e-commerce and brick and mortar business.   In doing this, we’ve realized that we have a lot to offer others who want to do something similar in our region.

    Threddies has never really been a major focus of mine since I’ve always had a full time ‘day’ job and a freelance consulting business throughout most of its lifetime.  I’ve been working on a transition plan for the last few months and laying out a plan for how to grow Threddies while also continuing to stay current with the latest advancements in technology.

    So what exactly will you be doing?

    As of COB on 11/09, I will manage the day to day operations of Threddies.  My consulting business will still exist, but will have a major change of focus.  We will be taking on fewer ‘implementation’ based contracts and instead focus on more ‘strategy’ based ones.  I want to make Upper Bucks and Montgomery counties a great place to start a small business, especially one that is technology based.  I want to help others succeed in building out awesome companies that make our local area a better place to live.  I want to help fill the void in relevant technology and entrepreneurship related education in our public school system.  If you’re passionate about joining me in this, check out the ‘How can I help?’ section below.

    I’m currently in the process of taking things that have worked for Threddies and my consulting business and building solutions around them that others can use.  You’ll see more of me at local meetups discussing the latest initiatives and working to better understand pain points that we can offer additional solutions for.

    I’m one of your existing clients, what does this mean for me?

    First, I’m pretty confident that this is not news for you since I worked with every one of my existing clients to come up with a personalized plan for what happens after this change 😉 All existing contracts will be completed at the same level of quality as if this change never occurred.  For many, I won’t be taking on new work, but I hope to continue working with you on new strategic initiatives.

    I was hoping to become a client, what now?

    Reach out!  I’m interested in helping, especially if you’re local.  I might say ‘no’ to taking on your project directly, but I can refer you to someone who is more than capable.  I’m also really interested in hearing what you have planned and continuing to build my network.  I may have some expertise to help you and you might be doing something that’s too awesome for me to pass up being involved!

    What about all of the fun, one-off experiments?

    I believe that the worst thing you can do in business or technology is become stagnant and stop learning.  So the ‘experiments’ will definitely continue.  I fully believe that I will have even more time and resources to invest in conducting (and hopefully documenting) some really crazy experiments.  In fact, the majority of ‘implementation’ based consulting projects that will be continuing after 11/9 fall into this category!

    How can I help?

    Drop me a line and let’s chat.  I’m looking for people passionate about technology and small business in the Upper Bucks and Montgomery area.  Let’s bounce ideas off of each other and do great things!  If you are starting or growing a business in the area and want to chat or are looking for financing or technological expertise, I want to hear from you!

  • Fermenting Solutions

    My email newsletter is entitled Fermenting Solutions. It started years ago as an effort to ‘dog food’ AWeber’s Curate mobile app. It’s a semi regular chronicle of a current project that I’m spending time on… the trials, tribulations and the interesting beverages I’ve had to drink while trying to work through them. You can read past issues here. If you’re interested in getting all new issues in your inbox, you can sign up using the form below.