When it comes to choosing web development technologies, we now have more options than ever. And while that’s a good thing, it also poses a problem. Answering the question, “What is the ideal technology for this new project?” is not as easy as it used to be. In this post, I briefly highlight the most popular full-stack web frameworks, and why you might want to choose each of them.Continue reading “Modern Full-Stack Web Frameworks: When to use What and Why”
As each of our clients weathers unique challenges, “digital transformation” comes to mind as something that exists in different stages. Some organizations are long-since transformed by technology, while others shifted more recently toward work dominated by the distributed as well as the digital.
In building custom applications to automate workflows, streamline operations and leverage technical advantages through innovation, we harness the power of digital transformation. We’re helping many organizations maintain existing momentum to position themselves for positive upswings, and others to recover from economic downturns, overcome turbulence in operations, or head off uncertainty about technical resources.
Digital transformation supports organizational transformation. And it can also lead this transition.Continue reading “Panel & Networking: How Technology Can Lead The Way For Digital Transformation”
Today we’re going to talk about GitOps with GitHub Actions, including an example of this workflow:
A developer team creates a new branch, with a Pull Request (PR), which triggers a GitHub Action, which runs AWS CodeDeploy, which deploys the application code update from GitHub to a web application on an Amazon EC2 instance.
Originally presented at Beezwax’s internal “Developer Show & Share”, this video presentation covers “GitOps with GitHub Actions” by Victor Olivo, Beezwax DevOps Engineer.Continue reading “GitOps with GitHub Actions”
There are entire books written on testing. And it surely feels more an art than a science. My approach is similar to Kent Beck’s:
I get paid for code that works, not for tests, so my philosophy is to test as little as possible to reach a given level of confidence (I suspect this level of confidence is high compared to industry standards, but that could just be hubris). If I don’t typically make a kind of mistake (like setting the wrong variables in a constructor), I don’t test for it. I do tend to make sense of test errors, so I’m extra careful when I have logic with complicated conditionals. When coding on a team, I modify my strategy to carefully test code that we, collectively, tend to get wrong.https://stackoverflow.com/a/153565/1015566
He goes on to add that different people will have different strategies and, at the end of the day, you just have to do what works best for you and your team. Extremely practical, and the approach I personally follow.
This won’t be a detailed post on every possible topic on tests and testing in Object-oriented Programming (OOP). There are many books about that already. Instead, this article will cover the basics of testing, so you understand how and why we test, and you can adapt it to your own needs.Continue reading “OOP Fundamentals: Quick and Dirty Guide to Testing”
We often work on projects that intersect two technologies near and dear to us: FileMaker and Ruby. This allows us to build robust web applications in Ruby on Rails, integrated with data sources from FileMaker solutions. When Claris introduced the FileMaker Data API we were naturally curious to try it out. At the time there was no off-the-shelf Ruby library for us to simply
gem install, so we decided to roll up our sleeves and build one. Thus, fmrest-ruby was born.
This article will walk you through setting up and using fmrest-ruby in a Ruby on Rails project. Some level of familiarity with Ruby/Rails and FileMaker’s Data API is advised, although much of the content covered here is applicable to any Ruby project, Rails or not.Continue reading “Integrating FileMaker’s Data API and Ruby with the fmrest-ruby gem”
The decorator pattern is one of my favorite patterns. It is simple, extensible and powerful. It feels like it follows the essence of object oriented programming beautifully. Sadly though, it is also easy to be misused or misunderstood. So, in this post I will show you the essence of the decorator pattern, illustrated with a few examples.Continue reading “OOP Fundamentals: The Decorator Pattern”
The dependency inversion principle is one of the cornerstones of object-oriented programming. Without it, there is no object-oriented design. It’s that important.Continue reading “OOP Fundamentals: The Dependency Inversion Principle”
Windows Subsystem for Linux, or WSL for short, is a quite impressive piece of technology, and one of the best moves Microsoft could have made to attract developers. Particularly web developers.Continue reading “Integrating your dev workflow with WSL”
What is nothing?
undefined? A vast void of emptiness that fills your soul with dread? Oh sorry, that’s just my stomach.
We often think of nothing as… well, nothing. It’s when something doesn’t exist and therefore cannot be interacted with. So in our code, we try account for having nothing. No
User? No problem.
Ruby devs are probably all too familiar with seeing this error:
NoMethodError (undefined method `foo' for nil:NilClass)
Most of the time, it’s probably due to a typo, but every now and then we end up having to do something like:
defined?(bar) && bar.foo # returns nil if bar is nil
If you’re on Rails, or are using ActiveSupport, you can use
Over years of reviewing Ruby code, the same things tend to come up over and over. In this post, I’d like to address some of the most common code smells I find when reviewing OOP code (and Ruby code in particular).Continue reading “Common Code Smells in OOP”
I have ulterior motives.
Continue reading “Beezwax Web Team Code Review: a blog post with ulterior motives”
Server-side Swift is making waves in the web and services worlds, and developers from iOS, web and other coding backgrounds are increasingly joining the server-side Swift community. There’s just one problem (a good one): How do you choose which open-source Swift framework to use?
Continue reading “Which Server-Side Swift Framework Is Best For Your Project?”
In this post I’ll talk about generating ePub files with Ruby and how to painlessly integrate this feature to your application. I’ll be using a Ruby gem I created called ePubber, which I created to help manage ePub content.
As developers, we are tasked with reducing complexity. Complexity is all around us, and good code organization reduces complexity while at the same time supporting increased flexibility, ease of change, quicker onboarding, faster debugging, and my favorite, better testing.
While the attribution may be hazy, the notion of laziness being an attribute of a good programmer is popular. I don’t know how good of a programmer I am, but I am really lazy.
So lazy that if I find myself doing something over and over, I write a script to do it for me the next time. Continue reading “Simple Bash Scripts for Lazy People | Part 1: Git”