Skip to content

Instantly share code, notes, and snippets.

Keybase proof

I hereby claim:

  • I am jakefolio on github.
  • I am jakefolio (https://keybase.io/jakefolio) on keybase.
  • I have a public key ASCOleJr1TygYSfVcj60YjwYUTIcfWTzQlwy9VoFjgaKPwo

To claim this, I am signing this object:

@jakefolio
jakefolio / durations.php
Created October 17, 2016 19:27
Add duration strings into DateInterval
<?php
$durations = [
'2:01:05',
'2:35:25',
'1:45:01',
];
function getDateIntervalFromString($duration) {
$i = 0;
@jakefolio
jakefolio / Form.rb
Created July 6, 2016 14:48
Custom validation
validation :campaign_date_range, if: :default do
# start and end date have been coerced to DateTime
required(:starts_at, &:valid_start_date?)
required(:ends_at, &:valid_end_date?)
def valid_start_date?(value)
value > form.ends_at
end
def valid_end_date?(value)
@jakefolio
jakefolio / Collection.php
Created May 27, 2016 16:01
Low memory usage collection
<?php
namespace jakefolio;
class Collection implements \ArrayAccess, \Countable, \IteratorAggregate
{
protected $items;
public function __construct($items = [])
{
Our bodies are just like a legacy code base, we are old in internet years! Just like most legacy
code bases rewriting isn't an option, so you have to slowly refactor. We, developers, spend the majority
of our time sitting and possibly with terrible posture. Our schedules lead to poor eating choices and
physical exercise falls to the wayside. I will discuss the way I refactored my physical body and the incremental
changes that has lead to a more enjoyable life. You will leave with a plan to improve your overall health.
Do new team members struggle to gain traction in your code base? Do you have a certain
section of their code base that no one speaks of, and where all estimates grow exponentially.
This talk provides a guidline for identifying complex/confusing code and transforming it
into a comprehendible code base. We will cover variable/method naming, coding standards, and
finding/fixing complex code.
Having a solid API is becoming more necessary with the rise of JavaScript
frameworks and mobile apps. Structuring your API response to handle growth
and edge cases can be a daunting task. With JSON API, you have defined spec
for handling related resources, pagination, sorting, filtering, and tools/libraries.
In this session we will cover API responses, hypermedia linking, handling
errors, and serializing your data.
APIs are becoming the preferred data source for applications everywhere. Whether your API
is being consumed by JavaScript frontend, mobile app, or a microservice; you need
a solid foundation. With a plethora of information to sort through you can become
overwhelmed with questions: "Is this RESTful enough?" and "What the hell is HATEOAS, and
why should I care?" This talk will bring focus to the core building blocks of an API,
including: URI structure, response codes, pagination, documentation, authentication, and much more.
@jakefolio
jakefolio / gist:c898b387147578051f36
Created May 10, 2015 14:40
10 Steps to Maintainable Software
Writing maintainable software is something we all strive to do when we start a project.
The problem is, there is no simple checklist that states whether your code is maintainable or not.
I once read it is much easier to recognize the absence of maintainable software than to define it.
In this session we will lay out a foundation to building more maintainable software and practices
to better your team workflow. We will cover anything from naming of methods/variables, VCS commit
messages, and code reviews.
<?php
$obj1 = new StdClass;
$obj2 = new StdClass;
$obj3 = new StdClass;
$obj1->name = "Joe";
$obj2->name = "Jane";
$obj3->name = "Johnny";