Module Decorators
Why decorate objects instead of using inheritance? It’s a more dynamic, flexible and transparent alternative to subclassing. There’s several different ways of using the decorator pattern in Ruby, but I’m just going to show the module/extend approach. You can read about other decorator techniques in Dan Croak’s blog post. Use a module and extend to […]
Today I learned how to connect Slack with Email
Today I learned about a few new workflow ideas to improve communication with clients. Being the technologists that we are, the value of modern communication tools like Slack is very clear. Many clients or business partners, however, may not be interested in learning a brand new tool or workflow. Slack is a powerful asynchronous communication tool […]
CSS & SVG Based Tooltips
While working on a quick cleanup sprint I ran into an issue with a tooltip-box. The original design was using a raster-based image as a CSS background and it wasn’t meeting our needs. Googling revealed the problem had been solved but still didn’t give me a shadow on the arrow tip. Below is the quick […]
Simple Sprint Retrospective
At the end of every sprint, it is a good idea for the team to conduct a retrospective. The sprint retrospective gives the team the opportunity to reflect on the process of the past week. The simple and effective retrospective processes used by one of the leaders in Agile education is a great place to […]
Git and GitHub Tutorials
Basic courses on git Try Git allows the beginner to try out commands using the dreaded command line without fear. This interactive web app walks you through the basics of using Git. The Introduction Series in the GitHub & Git Foundations is a collection of several videos covering a wide range of beginner to intermediate Git tasks. […]
Immutable Objects using Object.assign
Is immutability important? Mutating data can produce code that’s hard to read and error prone. But we can avoid this mess using vanilla javascript’s ES6 feature Object.assign! Let’s look at the problem…. When we changed obj2’s key property, it also changed obj1’s key property. No bueno! The solution: As you can see we changed obj2’s […]
CSS Image Masking
Today I learned a very efficient way to create triangular cutouts using solid colored and transparent css borders. The angle of the triangle cutouts can be changed by adjusting the widths of the borders and the height of the mask div. For best view of Results, click “Edit On CodePen” See the Pen CSS Triangle […]
Ruby’s Safe Navigation Operator
nil‘s in Ruby can be annoying. Thankfully, Ruby version 2.3.0 gave us a safe navigation operator, something that other languages like C# and Swift already had. It’s very much like ActiveSupport’s try method, which checks if a receiver responds to a method before calling that method. If the receive doesn’t respond to the method, nil […]
Apprenticeship: Week 1 Complete
The longest week. The shortest week. Any time one is exposed to a brand new experience, time often feels broken. The week flew by to seem that we just started this morning, yet it feels as though we have been here for weeks. I have been overwhelmed with excitement and energy with the new opportunity […]
What is Demo Day? What is a blocker?
Today I learned that we need to establish some critical structure, largely that we hope is going to come with the addition of a dedicated scrum master at Team Trim. As we all grow to becoming ‘agilelists,’ we have identified the need to define two critical functions of our sprint activity: 1. We need a Demo […]