Posts categorized as:
Development
Let Us Dismantle the Artifice of Standup
Language has power, and its usage is neither benign nor harmless. Ableist language, even when unintentional, can promote stigmatization and marginalization. Vocabulary, with a simple adjustment or replacment, can be modified to be more inclusive and accommodating while we also cultivate innovative ways to collaborate and communicate.
How to Get Your Capybara System Tests Running in a Docker Dev Container on Apple Silicon
A tale that relays my experiences getting Capybara system tests to run successfully in a dev-container on an Apple silicon based computer.
Rails Test Driven Development Fibonacci
Using Test Driven Development to Solve Fibonacci Sequence.
This RegEx Will Change How You Design With Tailwind
An exploration of how to utilize regular expressions to change the design of your website when using TailwindCSS.
Hooked on Phoenix
Using js hooks and LiveComponents.
Can you hear me now? - Using Phoenix Presence
Using Phoenix Channels and Presence.
Getting Started with Phoenix LiveView
Bootstrapping a new Phoenix project.
Stranded at the Edge
Building Single Page Apps from the server.
The Importance of Small Conversations
And how to make them happen in a remote setting
We foster the small conversations, friendships, and teamwork that forges teams together.
Making Snow Angels in a Brownfield
Refactoring for fun and profit.
Done is a four letter word
Defining done in software is a moving target.
Refactoring Tailwind CSS React Apps with Twin.macro
Creating order out of the chaos of Tailwind utility classes.
Notes from ElixirConf 2021 - What's Now and What's Next
What's Now and What's Next in the Elixir community
Wrangling Complex Rails apps with Docker Part 3 : Testing Rails under Docker
Testing Rails applications under Docker with Capybara and Selenium
Implementing React Native Responsive Design Part 2 : Adapting
Using React Native's built-in tools to create responsive screens.
Implementing React Native Responsive Design Part 1 : Limiting and Scaling
Using React Native's built-in tools to create responsive screens
Wrangling Complex Rails apps with Docker Part 2 : Creating a docker-compose configuration
Using Docker to soothe the pain of developing Rails apps that have a complex infrastructure
Wrangling Complex Rails apps with Docker Part 1 : The Dockerfile
Using Docker to soothe the pain of developing Rails apps that have a complex infrastructure
Building Reactive Rails applications with StimulusReflex
An introduction to creating reactive Rails applications with StimulusReflex
Case of the Missing Comma
We decode a mystery involving comma operators, property accessors, and a single missing character.
How to Setup Windows for Development: An experiment in using WSL2
A developer's experience using Windows for Node and Ruby on Rails development.
Ionic React and Redux
Redux is a popular state management tool that is commonly used in React development. It works well with the structure of Ionic, making it especially useful for Ionic React developers.
Rails in Real Time: Blastoff
Going over the hows and whys of web sockets in Rails 6.
Capacitor Plugin for Text Detection Part 6 : Highlight text detections
Create Capacitor Plugins for ios and android to detect text in still images using CoreML for ios and MLKit for android.
Capacitor Plugin for Text Detection Part 5 : Android Plugin
Create Capacitor Plugins for ios and android to detect text in still images using CoreML for ios and MLKit for android.
Capacitor Plugin for Text Detection Part 4 : Using the Plugin
Create Capacitor Plugins for ios and android to detect text in still images using CoreML for ios and MLKit for android.
Capacitor Plugin for Text Detection Part 3 : Web Implementation of the Plugin
Create Capacitor Plugins for ios and android to detect text in still images using CoreML for ios and MLKit for android.
Capacitor Plugin for Text Detection Part 2 : iOS Plugin
Create Capacitor Plugins for iOS and android to detect text in still images using CoreML for iOS and MLKit for android.
Capacitor Plugin for Text Detection Part 1 : Create Plugin
Create Capacitor Plugins for ios and android to detect text in still images using CoreML for ios and MLKit for android.
JSON API Phase 4: Ember
The fourth, and final entry of the JSON API tutorial series. In this phase we'll be creating an Ember app that will connect to the JSON API server.
Ionic: Bringing Us Closer
Ionic is a very important piece of the full development puzzle. They open new doors by bridging many gaps, including community.
Rails 6: Action Text
Exploring Action Text; a new framework bundled with Rails 6
Rails 5: Getting Started with Active Storage
Learning what Active Storage is and how to use it.
A month of Flutter: a look back
A look back at how 31 days of building a Flutter app went.
A month of Flutter: the real hero animation
Navigate to an image page with a hero animation.
A month of Flutter: user registration refactor with reactive scoped model
A title worthy of pirates.
A month of Flutter: WIP save users to Firestore
Initial pass at creating users in Firestore.
A month of Flutter: Firestore create user rules and tests
Add rules for who can create users in Firestore and test with emulator.
A month of Flutter: set up Firestore rules tests
Set up Mocha to test Firebase Firestore rules.
A month of Flutter: awesome adaptive icons
Adding an iOS and Android adaptive icon.
A month of Flutter: setting up Firebase Firestore
Setup Firebase Firestore and see how to deploy database rules.
A month of Flutter: testing forms
It's bad form to have untested features.
A month of Flutter: user registration form
Add a styled form for a user to register with.
A month of Flutter: navigate to user registration
Lay the groundwork for registering new users.
A month of Flutter: delicious welcome snackbar
Show a notification when a user signs in.
A month of Flutter: mocking Firebase Auth in tests
Mocking external services for tests.
A month of Flutter: Sign in with Google
Using Firebase Auth for Sign in with Google.
A month of Flutter: configure Firebase Auth for Sign in with Google on iOS
Configure Firebase Auth for Sign in With Google.
A month of Flutter: configure Firebase Auth for Sign in with Google on Android
Configure Firebase Auth for Sign in With Google.
A month of Flutter: FABulous authentication
Show a Floating Action Button for authentication.
A month of Flutter: rendering network images
Render Unsplash images from the network.
A month of Flutter: real faker data
Generate random mock data with faker.
A month of Flutter: Stream transforms and failing tests
Transform Stream data to models.
A month of Flutter: rendering a ListView with StreamBuilder
Using StreamBuilder to to render a ListView.
A month of Flutter: post model and mock data
Add some mock data and a post model class.
A month of Flutter: extract post item widget
Extract the post to its own widget.
A month of Flutter: a list of posts
Create a widget to display a list of cards.
A month of Flutter: no content widget
Create a widget to display when content is not available.
A month of Flutter: initial theme
Cleanup the base theme with white space everywhere.
A month of Flutter: upgrading to 1.0
Let's upgrade to Flutter 1.0 and look at some of the big announcements from Flutter Live 2018.
A month of Flutter: continuous linting
Configuring Travis CI to run lint analysis on every push to GitHub.
A month of Flutter: configuring continuous integration
Configuring Travis CI to run tests on every push to GitHub.
A month of Flutter: create the app
Install the SDK and generate a base app.
A month of Flutter
Building a Flutter app in a month with Firebase.
Geolocation with Ionic 3
A video by Ryan and Jon on how to set up Geolocation in Ionic 3.
Pre-cache for Performance
Improve your page load time by pre-caching resources during service worker installation.
Drop 20K from your production Angular app
Replace core-js with a modern reflect-metadata implementation to reduce your production build.
But First...The Weather (VIDEO)
Will and Jacob share some of their favorite tools for programming with weather.
Slaying a UI Antipattern with Web Components (and TypeScript)
The RemoteData pattern can simplify your code and make it more robust.
Using Capacitor to Build and Distribute an Elm App
An investigation into using Capacitor to build an existing web app for mobile platforms
A Tale of Four Components
Explore different web component libraries by comparing vanilla JavaScript, Nutmeg, Polymer, and Stencil versions of the same component.
Web Components with Ionic 4 and Elm: Promises and Pitfalls
The next version of Ionic will ship as a collection of web components, usable in any front end framework. Will it work with Elm?
PRPL on Rails Part 3: Service Workers
Improve your site's performance with service worker caching
PRPL on Rails Part 2: Optimize Rendering
Optimize rendering to speed up your site's time to interactive.
PRPL on Rails Part 1: Code Splitting
Split your Rails JavaScript with Webpack to make your site load faster.
Awesome times at RailsConf
Bendyworkers were at RailsConf 2018 in Pittsburgh having fun and talking about PRPL and offline.
Bendyworkers Head to RailsConf
Join us at RailsConf 2018 for a workshop on bringing modern JavaScript performance to Rails
JSON API Phase 3: API Server
The second entry of the JSON API tutorial series. In this phase we will be implementing our JSON API server with Express.
JSON API Phase 2: API Design
The second entry of the JSON API tutorial series. In this phase we'll be designing our API and using Swagger
JSON API Phase 1: Setup
The first entry of the JSON API tutorial series. In this phase we'll be setting up our api and client projects.
PRPL on Rails Workshop at RailsConf
Join us at RailsConf 2018 for a workshop on bringing modern JavaScript performance to Rails
The Ground Is Shifting
With mobile browser support nearly everywhere, it's the right time to invest in a Progressive Web App.
Build a Web Component with Nutmeg
Nutmeg is a tool that helps you quickly create, test, and publish a web component.
Introducing Intersection Observer
The IntersectionObserver API is a relatively new web API that allows you to observe when a DOM element enters or leaves a viewport.
Google Closure Guide: Compiling Without Errors
Get Google Closure compiling without any errors
Getting started with Webpack: Source Maps
Learn how to easily debug your compiled code with Source Maps
The Ionic Eddystone Endeavor
My journey through beacons, local notifications, and background mode
Getting started with Webpack: Dev Server
Learn how to iterate quickly with the Webpack Dev Server
Ionic Lazy Loading Bonuses
How to use Ionic Lazy Loading to its full potential
Getting started with Webpack: TypeScript
Learn how to save time and cut down on bugs with TypeScript and Webpack
Building Dynamic Forms in Ionic 2
Building a dynamic form made simple in Ionic 2.
Elm on Rails 5.1 with Webpacker
Setting up and using Elm in Rails 5.1 is simple with the Webpacker gem
Make a Native Web Component with Custom Elements v1 and Shadow DOM v1
Make an re-useable, encapsulated web component using Custom Elements v1 and Shadow DOM v1
Video Messaging in Rails
Check out how to add video messaging to your Rails app and get it up and running on Heroku.
We ♥ Progressive Web Apps II
Progressive Web Apps bring powerful native features like push notifications, offline, and homescreen install to the web.
Using HdrHistogram with Ruby
Get more accurate performance profiling results with HdrHistogram
Building A Slack Bot With Elixir Part 2
Part 2 of a tutorial covering how to use Elixir to build a Slack bot
The Not At All Definitive Guide To Opening PDF Files In Ionic 2
There are a number of different options, none complete
Webpack v2 Quick Start
We show how to hit the ground running with webpack and start your development with a basic configuration.
The Tragedy of Maybe and Ruby
Explore why the Maybe Monad is useful, but perhaps not in Ruby.
Installing Ruby on Rails Edge with Bundler
Learn how to take the latest commits to the Ruby on Rails master branch for a spin
Programmatically accessing ClojureScripts Externs Inference
Prevent Google Closure from clobbering third party JavaScript libraries by using ClojureScript externs inference programmatically.
Building A Slack Bot With Elixir Part 1
The first of two posts about using Elixir to build a Slack bot
Optimizing Your CI and WebPack Builds
We show how to optimize your ci and webpack builds with a few plugins and adjusting your configuration.
We ♥ Progressive Web Apps
Progressive Web Apps bring powerful native features like push notifications, offline, and homescreen install to the web
Elm for the Frontend, Right Now (Updated for Elm 0.18)
Leverage immutability and functional programming for the front end with Elm!
Parallelizing HTTP Requests in Clojure
We show how to use pmap and doall to parallelize HTTP requests in Clojure
Leveling up Clojure’s Hash Maps
We improved ClojureScript’s hash-map performance by 2x-100x
A tale of two selectors in HTML and CSS
A regex solution to escaping leading numeric CSS selectors in JavaScript.
Rails Enum is a Sharp Knife
Rails enum is useful but dangerous; here's how to wield it properly.
Elm for the Frontend, Right Now
Leverage immutability and functional programming for the front end with Elm!
Using Linux C APIs in Swift: Glob
Learn how to wrap a Linux-based C API with Swift, featuring glob
AngularJS and Rails Donuts
We explore setting up a Rails backend with an Angular frontend... with donuts!
Haskell's New Packaging Tool, "Stack"
Ease your Haskell development environment with Stack, a new tool from FPComplete
Cut & Paste Rich Text with Pandoc and Markdown
Bridging the development-documentation gap between text formats
Frank on Fire: Getting Started with Sinatra and Ember-CLI
Connect a simple Ruby API with Ember using generators from Ember-CLI
Writing a Haskell API Server, Part 4
We’re open sourcing the code that this series of blog posts is based upon.
Guarantee Authentication via Haskell's Type System
In Part 2 we proceeded to closely mirror our domain logic using Haskell types and typeclasses
Writing a Haskell API Server, Part 2
In part two, we move on into the Haskell realm where we can build up true domain logic.
Caravan: Ruby API Versioning & Enforcement
We're releasing Caravan, a sample implementation of a version-enforced API server.
Actually Using the Database
Building a secure database-backed API server in Haskell.
2014 Rails Rumble
After 48 hours, we shipped an app for the Rails Rumble!
The Old and the New: SOAP and Ember.js
Using Ember.js with SOAP
Transducers: Clojure's Next Big Idea
Recently Rich Hickey announced transducers for Clojure, the next big idea in Clojure after reducers.
In Clojure, we often work with collections in various types of sequences (lazy or not), and core.async channels. The workhorse functions in Clojure...
Tessel: A First Look at JavaScript on Hardware
When a small red circuit board called the Tessel appeared on a crowd-funding site over a year ago, its promise to bring simplicity to hardware hacking caught my eye. It’s now on the market and, with a project percolating in my mind, I ordered one to...
Externally Embedding Ember
We’ve been playing around with Ember since before it was extracted from SproutCore, and it wasn’t until recently that we got this unusual request from one of our clients: “Can you embed an Ember app in an external page like you would Google Analytics...
BendyConf: A Paean To Plain Text
BendyConf 2014: “A Paean To Plain Text” by Chris Wilson from Bendyworks on Vimeo.
In this day and age of rich documents with multimedia features, what can we say about plain text? Is there any place for it any longer?
In this talk poem Chris suggests...
BendyConf: Bad Estimating Games
Estimation is a crucial but challenging element to managing any software project. Without estimates, we can’t say what stories (or features, in our lingo) are in scope or not in scope for a given development phase. At the same time, the process of...
Why Clojure?
Clojure has been growing in popularity since its first major release in 2008. If you or your company is interested in understanding the value of Clojure at a high level, read on.
Clojure might be the answer if:
Your existing application is written...
Ruby? Rails? Ruby on Rails?
This post is one in a series of blog posts that answer some of the most common questions we get from prospective and current clients. All of the posts in this series are under the Questions tag if you want to view more like this.
As a consultancy...
BendyConf: Introduction To Firefox OS
Josh’s BendyConf talk introduced us to Firefox OS, an open source, web focused mobile operating system developed by Mozilla. Although it has been available for more than a year, this June marked the release of version 2.0, making now a good time to...
Velocity and Working Software
Four inches per minute. Two hundred forty miles per seven years. One and a half millimeters per second. Even without something to compare to, most would consider this an inordinately slow pace. And yet this is the average velocity of an engineering...
Swift Syntax Highlighting Workaround for Blogging
Since Swift was announced less than one week ago, we as a community can’t reasonably expect syntax rules to be pulled into popular highlighting libraries like Pygments yet (though it’s certainly already in the works). You’ll notice in our most recent...
Unit Testing in Swift
Swift, being all the rage these last four days, has definitely livened up our programming chat room quite a bit. With cautious optimism, we (Betsy and Brad) delved into the Xcode beta, curious about the state of testing with Swift. For the purposes...
Conference Review: BayHac 2014
I recently attended BayHac 2014, the Bay Area Haskell Hackathon, and I wanted to cover some of my impressions from the conference. I’m breaking it down by the days and the things that I attended. There’s a ton more on the event page linked above for...
UW Big Data Event presents Storm
After hearing that Twitter would be sending its engineers to the UW to talk about Apache Storm, a group of Bendyworkers bundled up against the cold and made the short trek to the UW.
Single Responsibility Principle & iOS
View Controllers in iOS: we need to talk. You are—without a shadow of a doubt—the worst offender of the Single Responsibility Principle, and that needs to stop.
From Ruby to Haskell, Part 3: Lazy Evaluation
One of the defining characteristics of Haskell— that you often see listed in what sets it apart from other languages— is that it is the only common language that’s lazy.
The Migrationless Migration
If I may impose upon you for a minute, relational algebra is one of those things that, like linear algebra, is a shining intellectual gem.
What can SQL do for you?
What can SQL do for you? Chris shares his thoughts on the changelog on how to take full advantage of relational databases.
Bwoken 2 Beta Released
In response to a great discussion in the bwoken issues forum, I’m happy to announce the first beta of bwoken version 2! The major change, which justified the major version bump, is that bwoken is no longer invoked with rake
but instead with bwoken
ConcertCam
Imagine yourself at a concert on the streets of Madison, a block away from the Wisconsin State Capitol (known for, among other things, being the largest granite dome in the world), listening to Willy Porter, and waiting for the headliner—Eric Hutchinson
Give Yourself a Security Makeover
While visiting Twilio for a day on my two-week programming pilgrimage I learned that I’ve been pretty insecure. Joël Franusic (@jf) explained that I needed a security makeover. You probably do too! So let’s get started. Follow the suggestions as you...
Lists out of lambdas and boxes out of functions
There’s a cool article by Steve Losh called List out of Lambda that reminded me, in a really good way, of a section in SICP. If you want to read the boiled-down scheme version that’s in SICP, here it is: SICP section 2.1.3. What follows is my paraphrasing...
From Ruby to Haskell, Part 2: Similarity, Refactoring, and Patterns
It has been a while since I last wrote one of these posts and I didn’t want to leave people sitting by their computer desks forever, waiting with bated breath for the next one to pop up in your Google Reader feed (…whispers from the Internet…), okay...
You Don't Know Your Visitors, So Stop Pretending
Part 1: What is analytics really?
Web analytics should hurt a little. Not just the pain of seeing your low traffic revealed in hard numbers, but the realization that you don’t really know your visitors.
We programmers tend to be preoccupied by our...
Styleguide Rails
You might as well learn it now, because you’ll be using it in 6 months. Styleguide rails is a cool gem that builds a living, breathing styleguide for your site. You can add it to your project really easily (let’s just do it right now):
gem install
From Ruby to Haskell, Part 1: Testing
You read that right. Or maybe, if you read it as “stop using Ruby and start using Haskell”, you read it wrong. I’m going to show you why I find Haskell to be utterly fascinating and eminently practical.
Foremost, I want to collect some bits and pieces...
Getting Plan 9 running on the Raspberry Pi
More Unix than Unix
Do you like Unix? Do you really like Unix? Well, what if I told you there’s a little-known operating system out there that’s more Unix than even Unix is. Cool, right?
Well it is true! Plan 9 occupies an interesting niche in the...
Testing Security with Brakeman
Security in web applications is not something developers discuss often enough – some think of it as a taboo subject, or something the NOC guys have to deal with. Some treat security as a post deployment afterthought. Sometimes little thought is given...
OMG! Rails Rumble!
Last weekend, three Bendyworkers and a Swink-person (Swink-ee?) participated in the Rails Rumble, a competition to build a web application in just 48 hours. Rather than hacking on the backend like I usually do, I ended up almost exclusively forging...
Cthulhuian Document Preparation With Troff
tl;dr: If you are looking for a lightweight document preparation system in the style of LaTeX, try out troff
which is probably already on your system.
Intro
Lurking deep in UNIX, even on your shiny new Mac, is the eldritch horror of troff. It waits...
Don't Say 'Emacs' or 'Vi'
A brief tour of some other editors
Quick, think of your favorite $EDITOR
. If you’re anything like me or the people I work with, you’ve got a horse in this race. And again, if you’re anything like myself or my comrades, you’ll probably say Emacs or...
Version Control for Poetic Time Travelers
Matthew McCullough (@matthewmccull) leads Git workshops across the world. He recently visited Madison, Wisconsin to discuss and demonstrate advanced topics such as rerere merging, the reflog, interactive rebase, cherry-pick, show-branch, branch filtering...
The Hidden Life of Stylesheet Preprocessing
Like any piece of art, a stylesheet should be indivisible and bold, but natural. It should arrive to the browser in one elegant file, a succinct connection between page semantics and presentation. Preprocessing distances a stylesheet from the Sturm...
Don't Play CSS Tetris
“Want to see the future?” Dale Sande (@anotheruiguy) leaned toward me with a conspiratorial gleam in his eye. His laptop was crowded with code and design layouts. He proceeded to show me that I have been doing CSS all wrong.
My first mistake is using...
Bwoken Version 1.1 Released
Version 1.1 of Bwoken has just been released! This feature release includes the ability to run UIAutomation tests on a device rather than the simulator, in addition to a number of internal improvements to Bwoken.
Developers we come across have always...
Respond With An Explanation
Shedding some light the respons_with feature of Rails
Introducing Bwoken
Bwoken is a UIAutomation test runner for both iPhone and iPad, which lets you write your tests in CoffeeScript, then run them in bulk from the command line. Watch the video, then head on over to its homepage!
George Boole Returned As a Zombie and is Gnawing on My Brain
This is about that oft-neglected corner of programming, the humble boolean. Perhaps, by thinking about what’s going on in many boolean expressions, we can iron out his quickly-forking complexity. And, oh, what luck! Here’s a slab of boolean logic that...
UIAutomation and Pusher
Tiggering Pusher events from automation code.
ConciseKit
Note: This article was cross-posted from Brad’s personal blog: Naming Things is Hard
Over the last month at Bendyworks, I’ve been pairing with Jaymes on our latest initiative: adding iOS development to our repertoire. As a Ruby developer learning...
Our first iOS app
A native front-end to Travis CI
From 0 to 1 Million in 6 Hours
A Twitter app written to help experience live events in a new way.
HTML5, AJAX, IE, and Shivs
Using HTML5 shiv libraries
Script to Use Gems Locally, but Not on Heroku
Do two things to help with gems on Heroku.
Excluding Dev and Test Gems from Heroku
Some tips for managing gems on Heroku.