Skip to content

Instantly share code, notes, and snippets.

View jwright's full-sized avatar
🤡
Compliance will be rewarded with hats.

Jamie Wright jwright

🤡
Compliance will be rewarded with hats.
View GitHub Profile
@jwright
jwright / off-rails-with-lotus.md
Last active August 31, 2015 15:54
Off the Rails with Lotus

Off the Rails with Lotus

If you are building a web application with Ruby, you don’t always have to turn to Rails. Rails is still prevalent but it’s heavy with lots of hidden complexities and monkey patching. Lotus is a fresh take on building web applications. It is made up of many libraries that can stand on their own. With Lotus, you can have a nice web framework and fast tests since it’s made up of loads of lightweight objects.

If you want to learn about another web framework’s take on a web framework, it may be time for you to get off the Rails.

@jwright
jwright / email-as-interface.md
Last active August 31, 2015 15:06
Email is an interface too

Email is an interface too

As much as we wish for it to happen, email is not going away. You know what they say. If you can’t beat ‘em, join ‘em.

Basecamp does it. Slack does it. Evernote does it. Your application should play nice with email as well. Your users probably spend a lot of time in their email clients and email can be just another interface into your application. It offers convenience for your users and - as a bonus if you act now - an integration point for 3rd-party integrations.

This talk will look at the email format, what you can glean from the hidden nuggets in an email and how you can add incoming email parsing to your Ruby application. You and email will soon be friends once again.

@jwright
jwright / nerding-out-with-paintball.md
Last active August 31, 2015 15:48
Nerding Out with Paintball

Nerding Out with Paintball

The sport of paintball has moved from the woods to open arenas where athletes move from inflatable bunker to inflatable bunker in a fast paced game of real world chess.

Tournament paintball dictates that the art of walking a field takes place at the field a day before the tournament. During this time, your team looks for angles and moves that can win games. What if we could determine these moves and angles from behind our desks using computer modeling and, gulp, math? We're nerds right?

As a former professional paintball player and current professional nerd, this is a fun problem worth pursuing. In this talk, we'll talk about and then create a computer model in Ruby of a paintball field and figure the angles out to create a winning formula...but we'll mostly just talk about paintball and watch videos and stuff. Object orientation, math, and a real sport all in one!

@jwright
jwright / crafting_table.md
Last active February 12, 2016 04:00
Crafting Table README - A simple approach to services in Ruby

CraftingTable

A simple approach to services in Ruby

IDEAS

Create a service framework in Ruby that can be adjusted to easily accomodate complicated actions and commands as well as simple services that only need a few steps.

USAGE

Let's Talk about Conversations

Abstract

Conversational interfaces, or mimicking a chat with a human, are difficult to build without building a giant bowl of spaghetti code. The stateless nature of the system make it challenging to maintain context across messages. Refining questions based on answers makes tracking difficult. It can get weird, fast.

This talk, about chat, details my adventures in trying (and failing a lot) to build the architecture that supports conversational interfaces in a way that is intuitive and fun to develop with.

I will detail the trials and tribulations of building Dialogue, the Ruby gem that supports conversational interfaces. I went down many different paths and architectural patterns before finally settling on a production ready implementation. We'll discuss what those paths were and why they didn't work. Attendees will leave with an idea of how a conversational interface can be implemented in Ruby.

@jwright
jwright / bots_in_javascript.md
Last active March 29, 2017 20:46
Talk abstract for talking about building bots in JavaScript

Bots in JavaScript?

Abstract

TLDR; No.

There are several companies and developers building chatbots in node.js and they are having a successful time doing so. One of the great benefits for doing this is the proliferation of JavaScript developers. It's a way to attract talent to your fledging startup or get low startup costs.

I believe that the application stability suffers and I will demonstrate how in this talk.

@jwright
jwright / problem.md
Created May 24, 2017 22:38
Ember Promise Acceptance Testing

This is an example of an acceptance test for a signup action. I am using ember-simple-auth but that is really not related to the issue here.

The issue is that the checking of the path (on line 31 of the test) happens before the authenticate promise is realized (line 12 in the controller).

This is because the promise is resolved after the user is saved (line 11 in the controller). At this time, the user is authorized and therefore, the transition to the dashboard route does not occur yet.

In summary, this is the flow within the test.

  1. The action is called appropriately.
  2. The model is saved in the action
@jwright
jwright / fighting_hate_with_conversations.md
Last active August 24, 2017 02:03
Talk abstract for fighting hate with conversations

Fighting Hate with Conversations

Abstract

I am a 39 year-old white male, living in the United States of America, and I have never in my lifetime witnessed some of the hateful events and discourse that have unfolded before our country in the last six months. I consider myself lucky to have not had to witness these events before nor be a victim of them.

I, however, cannot continue to stand by and do nothing. I must try and help out in anyway I can. I believe applying my super-power is the most efficent way. After the horrific events that occured in Charlottesville, Virginia in August, 2017, I decided I have had enough. I am going to build some software to help combat the hate.

In this talk, I will document my experiences with building Covfefe, the first chatbot to help fight racism in this country that I live in. Convfefe enables someone to purchase a t-shirt in which all the proceeds are sent to organizations that help fight racism and hate in this country.

@jwright
jwright / zoning_out.md
Last active January 17, 2018 03:00
Talk abstract for time zones in Ruby

Zoning Out - Best Practices for working with Timezones in your Rails apps

Abstract

Ruby has many libraries that help us develop global applications spanning many users across many timezones. Rails expands on these libraries further as well.

But what are the gotchas? How should we store dates and times? What should we use to display dates and times in the user interface? When should we use Time objects? How do we convert to another Timezone? What is UTC anyway?

In this talk, I attempt to answer those questions and I distill the best practices I have found when working with Timezones. I hope to save developer's time by sharing my experiences from dealing with an application for users distributed within almost every timezone under the sun.

@jwright
jwright / building_ios_ruby_api.md
Last active August 30, 2017 22:10
Workshop abstract for building API endpoints with iOS developers

Can't We All Just Get Along : The Building of an iOS application with a Ruby API

Abstract

[Event Name] will be the year of making new friends.

The majority of iOS applications need to use a backend API to connect it's users to it's services.

Building these types of applications often involves seperate developers, one for the frontend iOS code and one for the backend server code. The hand-off point for the API needs to handled delicately so as the developers do not block each other.