<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text">Justin Abrahms</title>
  <id>http://justin.abrah.ms/feed</id>
  <updated>2020-10-30T21:27:00Z</updated>
  <link href="http://justin.abrah.ms" />
  <link href="http://justin.abrah.ms/feed" rel="self" />
  <author>
    <name>Justin Abrahms</name>
  </author>
  <generator>PyAtom</generator>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">Why I made pisces, a testable web framework</title>
    <id>http://justin.abrah.ms/python/why_pisces.html</id>
    <updated>2013-07-09T12:00:00Z</updated>
    <link href="http://justin.abrah.ms/python/why_pisces.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">Pisces is a Python web framework that was written with testing in mind. It was birthed as a reaction to the typical workflow in a Django project, which I've come to dislike as it encourages you to make your code tightly coupled and less testable.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">PyATOM for static site syndication</title>
    <id>http://justin.abrah.ms/python/pyatom_as_static_site_syndication.html</id>
    <updated>2013-07-17T01:27:00Z</updated>
    <link href="http://justin.abrah.ms/python/pyatom_as_static_site_syndication.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">Bitten by the bug to write more and for others, I've brought back syndication (via Atom rather than RSS) to the blog.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">Big-O Notation explained</title>
    <id>http://justin.abrah.ms/computer-science/big-o-notation-explained.html</id>
    <updated>2013-07-23T14:00:00Z</updated>
    <link href="http://justin.abrah.ms/computer-science/big-o-notation-explained.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">How to calculate Big-O for a given bit of code</title>
    <id>http://justin.abrah.ms/computer-science/how-to-calculate-big-o.html</id>
    <updated>2013-07-29T14:00:00Z</updated>
    <link href="http://justin.abrah.ms/computer-science/how-to-calculate-big-o.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">As a follow-up to my explaination of Big-O, I wrote a short article on how you can figure out what the Big-O for a function is.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">Thinking of Databases as an Excel file</title>
    <id>http://justin.abrah.ms/mentoring/databases-as-an-excel-file.html</id>
    <updated>2013-09-19T20:00:00Z</updated>
    <link href="http://justin.abrah.ms/mentoring/databases-as-an-excel-file.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">I was having a conversation recently around the value of databases as opposed to flat files and the question "What is the essence of a database?" came up. I explained it as it relates to Excel files, which I think is surprisingly apt.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">The State of GitHub's Code Review</title>
    <id>http://justin.abrah.ms/misc/state_of_githubs_code_review.html</id>
    <updated>2013-09-26T07:00:00Z</updated>
    <link href="http://justin.abrah.ms/misc/state_of_githubs_code_review.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">Code review is an essential part of a team's shipping process. It helps disseminate knowledge across teams, catches bugs (or more likely poor architectural decisions) before they bite you, and provide opportunities to educate junior engineers. GitHub, the current de facto standard for this, is letting us down.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">Javascript Refactoring without IDEs</title>
    <id>http://justin.abrah.ms/js/javascript-reafactoring-without-ides.html</id>
    <updated>2013-10-16T07:00:00Z</updated>
    <link href="http://justin.abrah.ms/js/javascript-reafactoring-without-ides.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">I describe my use of a node library, falafel, to modify my work's javascript code. This allows for programmatic refactoring without firing up an IDE.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">Selenium's Page Object Pattern: The Key to Maintainable Tests</title>
    <id>http://justin.abrah.ms/python/selenium-page-object-pattern--the-key-to-maintainable-tests.html</id>
    <updated>2013-11-05T12:00:00Z</updated>
    <link href="http://justin.abrah.ms/python/selenium-page-object-pattern--the-key-to-maintainable-tests.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">At Sprint.ly, we've been investing in the longer term health of our code base. Part of our strategy for handling this involves selenium testing. Read more to find out the testing strategy we use to make this easier.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">Book Review: Backbone.js Testing</title>
    <id>http://justin.abrah.ms/js/book-review-backbonejs-testing.html</id>
    <updated>2013-11-12T08:00:00Z</updated>
    <link href="http://justin.abrah.ms/js/book-review-backbonejs-testing.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">Ryan Roemer, the author of [[http://www.amazon.com/gp/product/178216524X/ref%3Das_li_qf_sp_asin_tl?ie%3DUTF8&amp;camp%3D1789&amp;creative%3D9325&amp;creativeASIN%3D178216524X&amp;linkCode%3Das2&amp;tag%3Djusabrblo-20][Backbone.js Testing]], wrote a post to the Seattle-area JavaScript developer's mailing list to ask if anyone was interested in reviewing his book. As I have been diving into front-end testing at Sprint.ly, I agreed to review it. I was interested in how our setup compared to the setup he was advocating.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">Node Knockout: Play &amp; Experiment</title>
    <id>http://justin.abrah.ms/js/node-knockout-play-and-experiment.html</id>
    <updated>2013-11-12T08:01:00Z</updated>
    <link href="http://justin.abrah.ms/js/node-knockout-play-and-experiment.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">This weekend, I competed in Node Knockout, a 48-hour coding competition designed around Node.js. For my idea, I chose to write a visualization of an AST querying language called cssauron.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">Imhotep: A linting tool for GitHub</title>
    <id>http://justin.abrah.ms/misc/imhotep-code-review-assistance.html</id>
    <updated>2013-12-29T15:00:00Z</updated>
    <link href="http://justin.abrah.ms/misc/imhotep-code-review-assistance.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">Over the holiday break, I got a long-standing side project into a working state. Imhotep is a tool that will enforce coding standards on pull requests and commits. It accomplishes this by running code linters and commenting on your GitHub pull requests with any violations.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">What are the ethics of web scraping?</title>
    <id>http://quickleft.com/blog/is-web-scraping-ethical</id>
    <updated>2014-02-26T00:00:00Z</updated>
    <link href="http://quickleft.com/blog/is-web-scraping-ethical" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">Someone recently asked: "Is web scraping an ethical concept?" I believe that web scraping is absolutely an ethical concept. Web scraping (or screen scraping) is a mechanism to have a computer read a website. There is absolutely no technical difference between an automated computer viewing a website and a human-driven computer viewing a website. Furthermore, if done correctly, scraping can provide many benefits to all involved.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">Pull Request templates make code review easier]]</title>
    <id>http://quickleft.com/blog/pull-request-templates-make-code-review-easier</id>
    <updated>2014-03-10T00:00:00Z</updated>
    <link href="http://quickleft.com/blog/pull-request-templates-make-code-review-easier" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">We do a bunch of code reviews at Sprint.ly. One of the things we've done to make that process a little easier is institute a code review template. This template is a free-form list of questions that every person filling out a pull request uses.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">PyCon 2014 was awesome</title>
    <id>http://quickleft.com/blog/pycon-2014-was-awesome</id>
    <updated>2014-04-30T00:00:00Z</updated>
    <link href="http://quickleft.com/blog/pycon-2014-was-awesome" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">PyCon was a ton of fun this year. Always the highlight of my conference season, 2014 was no exception.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">NodeConf 2014: A story of aspiration and community</title>
    <id>http://quickleft.com/blog/nodeconf-2014-a-story-of-aspiration-and-community</id>
    <updated>2014-07-09T10:00:00Z</updated>
    <link href="http://quickleft.com/blog/nodeconf-2014-a-story-of-aspiration-and-community" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">This year, I helped mentor NodeConf 2014, which was an amazing experience. I highly encourage you to get involved next year in any way you can. Mikeal Rogers puts on a fantastic conference that's sure to delight. More about the revelations I had after the jump.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">Real-time code coverage analysis</title>
    <id>https://justin.abrah.ms/js/real-time-code-coverage-analysis.html</id>
    <updated>2015-04-09T19:00:00Z</updated>
    <link href="https://justin.abrah.ms/js/real-time-code-coverage-analysis.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">I recently sat down to write a node service and happened upon a very helpful workflow when trying to get reasonable test coverage that I wanted to share.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">MicroConf 2015 Recap</title>
    <id>https://justin.abrah.ms/misc/microconf-2015-recap.html</id>
    <updated>2015-04-19T14:00:00Z</updated>
    <link href="https://justin.abrah.ms/misc/microconf-2015-recap.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">I've just returned from MicroConf 2015. MicroConf, a conference for self-backed startup entrepeneurs. Click here for a recap of the best stuff.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">Altruism in the job hunt</title>
    <id>https://justin.abrah.ms/life/altruism-in-the-job-hunt.html</id>
    <updated>2015-11-11T17:10:00Z</updated>
    <link href="https://justin.abrah.ms/life/altruism-in-the-job-hunt.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">I recently accepted a job at MIT's Office of Digital Learning. It wasn't the technology or the organization's prestige that caused me to join up.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">Literate API Testing with Dredd</title>
    <id>https://justin.abrah.ms/python/literate-api-testing-with-dredd.html</id>
    <updated>2015-11-12T18:00:00Z</updated>
    <link href="https://justin.abrah.ms/python/literate-api-testing-with-dredd.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">In my latest project at MIT, I came across a really interesting piece of technology which allows you to run tests against your API documentation.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">An overview of Guice: Java Dependency Injection</title>
    <id>https://justin.abrah.ms/misc/an-overview-of-guice-java-dependency-injection.html</id>
    <updated>2016-08-30T05:00:00Z</updated>
    <link href="https://justin.abrah.ms/misc/an-overview-of-guice-java-dependency-injection.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">At work, I've been using Guice. Some members of my team aren't familiar with it, so I wrote this up for them.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">A whiteboard snapping raspberry pi</title>
    <id>https://justin.abrah.ms/misc/automatic-whiteboard-snapper.html</id>
    <updated>2019-02-10T18:00:00Z</updated>
    <link href="https://justin.abrah.ms/misc/automatic-whiteboard-snapper.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">Six people live in my house. We don't have strong technology overlap (some folks in the house only use simple phones and others aren't keen on things like slack or similar). We've addressed this by centralizing around a large whiteboard in our kitchen space. This holds things like grocery lists, house announcements, and similar. I often do grocery shopping on my way home, but rarely remember to snap a photo of the list before leaving for work.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">Publishing a font (or likely any package) on Ubuntu's PPA service</title>
    <id>https://justin.abrah.ms/misc/how-to-make-a-font-on-ubuntu-ppa.html</id>
    <updated>2019-09-19T12:27:00Z</updated>
    <link href="https://justin.abrah.ms/misc/how-to-make-a-font-on-ubuntu-ppa.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">I created a PPA for Microsoft's Cascadia Code font and I took notes as I went.</content>
  </entry>
  <entry xml:base="http://justin.abrah.ms/feed">
    <title type="text">First and Second Order Metrics</title>
    <id>https://justin.abrah.ms/ops/first-and-second-order-metrics.html</id>
    <updated>2020-10-30T21:27:00Z</updated>
    <link href="https://justin.abrah.ms/ops/first-and-second-order-metrics.html" />
    <author>
      <name>Justin Abrahms</name>
    </author>
    <content type="text">As part of my work with Walmart, I've been thinking a lot about cross-organizational metrics and which matter.</content>
  </entry>
</feed>

