41554 blogs · [ { "id": "01a08c58-647e-7122-81f5-5464e234db51", "title": "What if a project uses tabs and you use spaces?", "url": "https://travishorn.com/what-if-a-project-uses-tabs-and-you-use-spaces/", "published_at": "2018-12-06T11:01:00+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e2945954", "title": "Using the Options Object JS Pattern", "url": "https://travishorn.com/using-the-options-object-js-pattern/", "published_at": "2018-11-22T11:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e36136be", "title": "Setting up ESLint on VS Code with JavaScript Standard Style", "url": "https://travishorn.com/setting-up-eslint-on-vs-code-with-javascript-standard-style/", "published_at": "2018-11-08T11:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e42614ce", "title": "My first competition as a hackathon noob", "url": "https://travishorn.com/my-first-competition-as-a-hackathon-noob/", "published_at": "2018-10-28T23:48:34+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e4f90b60", "title": "Day-to-day source control", "url": "https://travishorn.com/day-to-day-source-control/", "published_at": "2018-10-25T11:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e51c18e6", "title": "Setting up Prettier on VS Code", "url": "https://travishorn.com/setting-up-prettier-on-vs-code/", "published_at": "2018-10-11T11:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e53b8a03", "title": "My Title Boxing Club schedule scraper", "url": "https://travishorn.com/my-title-boxing-club-schedule-scraper/", "published_at": "2018-09-27T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e5c58e86", "title": "Netlify Lambda Functions from Scratch", "url": "https://travishorn.com/netlify-lambda-functions-from-scratch/", "published_at": "2018-09-12T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e5f7b0ff", "title": "Adding Bootstrap to a Vue CLI Project", "url": "https://travishorn.com/adding-bootstrap-to-a-vue-cli-project/", "published_at": "2018-09-06T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e68d435d", "title": "Responsive Scrim", "url": "https://travishorn.com/responsive-scrim/", "published_at": "2018-08-21T22:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e6c4442f", "title": "Some design tweaks for Project Gutenberg", "url": "https://travishorn.com/some-design-tweaks-for-project-gutenberg/", "published_at": "2018-07-19T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e796e302", "title": "I started naming all my anonymous functions (and you should, too)", "url": "https://travishorn.com/i-started-naming-all-my-anonymous-functions-and-you-should-too/", "published_at": "2018-01-25T23:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e7b83c75", "title": "Buttons with custom shapes", "url": "https://travishorn.com/buttons-with-custom-shapes/", "published_at": "2018-01-18T23:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e7f9cac5", "title": "Google-style gauge charts using D3", "url": "https://travishorn.com/google-style-gauge-charts-using-d3/", "published_at": "2018-01-11T23:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e856fd12", "title": "Visualizing SVG Elements", "url": "https://travishorn.com/visualizing-svg-elements/", "published_at": "2018-01-04T23:01:06+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e8da4454", "title": "Sunrise Block Clock", "url": "https://travishorn.com/sunrise-block-clock/", "published_at": "2017-12-28T23:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e9913c22", "title": "Data by Geographic Distance", "url": "https://travishorn.com/data-by-geographic-distance/", "published_at": "2017-12-21T23:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464e9e4bbb8", "title": "Interactive Maps with Vue & Leaflet", "url": "https://travishorn.com/interactive-maps-with-vue-leaflet/", "published_at": "2017-12-14T22:01:07+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464eacbe8d0", "title": "Setting up ESLint on VS Code with Airbnb JavaScript Style Guide", "url": "https://travishorn.com/setting-up-eslint-on-vs-code-with-airbnb-javascript-style-guide/", "published_at": "2017-12-07T22:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464ebc0be77", "title": "My Codevember 2017 Pens", "url": "https://travishorn.com/my-codevember-2017-pens/", "published_at": "2017-12-01T23:01:00+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464ec47697a", "title": "The", "url": "https://travishorn.com/the-table/", "published_at": "2017-11-30T22:01:09+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464eca28c20", "title": "Updating Dynamic Data in D3", "url": "https://travishorn.com/updating-dynamic-data-in-d3/", "published_at": "2017-11-23T22:01:06+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464ed53a0e1", "title": "Vue + SVG", "url": "https://travishorn.com/vue-svg/", "published_at": "2017-11-16T22:01:04+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464eda0071e", "title": "Create Animated Icons using CSS", "url": "https://travishorn.com/create-animated-icons-using-css/", "published_at": "2017-11-09T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464ee0e10f6", "title": "Customizing Bootstrap Styles, Step-by-Step", "url": "https://travishorn.com/customizing-bootstrap-styles-step-by-step/", "published_at": "2017-11-02T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464ef0cd946", "title": "Update from Another Table in SQL", "url": "https://travishorn.com/update-from-another-table-in-sql/", "published_at": "2017-10-26T22:01:00+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464ef5ff696", "title": "Create a Bouncing Message Notification Icon from Scratch with SVG & CSS", "url": "https://travishorn.com/create-a-bouncing-message-notification-icon-from-scratch-with-svg-css/", "published_at": "2017-10-19T22:01:00+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f04fac11", "title": "Responsive Buttons with Bootstrap", "url": "https://travishorn.com/responsive-buttons-with-bootstrap/", "published_at": "2017-10-12T22:01:00+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f05a5a44", "title": "Redux by example: Combined reducer with action creators", "url": "https://travishorn.com/redux-by-example-combined-reducer-with-action-creators/", "published_at": "2017-10-05T22:01:03+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f0cbac64", "title": "Vue Online Store with Shopping Cart", "url": "https://travishorn.com/vue-online-store-with-shopping-cart/", "published_at": "2017-09-28T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f15908ec", "title": "Building json2table: Turn JSON into an HTML table", "url": "https://travishorn.com/building-json2table-turn-json-into-an-html-table/", "published_at": "2017-09-21T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f1e46702", "title": "Recreate the Google Loading Animation using only CSS", "url": "https://travishorn.com/recreate-the-google-loading-animation-using-only-css/", "published_at": "2017-09-14T22:01:00+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f2b79cb6", "title": "Stacked Bar Chart with Chart.js", "url": "https://travishorn.com/stacked-bar-chart-with-chart-js/", "published_at": "2017-09-07T22:01:00+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f3319112", "title": "Add LocalStorage to your Vue app in 2 lines of code", "url": "https://travishorn.com/add-localstorage-to-your-vue-app-in-2-lines-of-code/", "published_at": "2017-08-31T22:01:11+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f39e42f5", "title": "Creating a system tray icon to display the current Ether-USD market price", "url": "https://travishorn.com/creating-a-system-tray-icon-to-display-the-current-ether-usd-market-price/", "published_at": "2017-08-24T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f48d20b2", "title": "Getting Browser Width & Height", "url": "https://travishorn.com/getting-browser-width-height/", "published_at": "2017-08-17T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f49bb2e0", "title": "Ordered Lists in HTML", "url": "https://travishorn.com/ordered-lists-in-html/", "published_at": "2017-06-20T22:31:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f517e9ac", "title": "Using Computed Getters & Setters in Vue", "url": "https://travishorn.com/using-computed-getters-setters-in-vue/", "published_at": "2017-05-02T22:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f617bfd0", "title": "Form Validation with Vue.js", "url": "https://travishorn.com/form-validation-with-vue-js/", "published_at": "2017-04-10T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f694bc59", "title": "Passing Data Between Classes/Components in React", "url": "https://travishorn.com/passing-data-between-classes-components-in-react/", "published_at": "2016-12-06T23:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f6acf43e", "title": "Composition + Immutability in JavaScript", "url": "https://travishorn.com/composition-immutability-in-javascript/", "published_at": "2016-11-11T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f787bb14", "title": "Populate via AJAX", "url": "https://travishorn.com/populate-select-via-ajax/", "published_at": "2016-11-04T22:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f7c71a61", "title": "Access the browser's query string as a JavaScript Object", "url": "https://travishorn.com/access-the-browsers-query-string-as-a-javascript-object/", "published_at": "2016-09-08T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f8200790", "title": "Why it is better to serve site assets from multiple domains", "url": "https://travishorn.com/why-it-is-better-to-serve-site-assets-from-multiple-domains/", "published_at": "2016-08-24T22:01:03+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f883ef53", "title": "Integrating multiple stylesheets in a single site", "url": "https://travishorn.com/integrating-multiple-stylesheets-in-a-single-site/", "published_at": "2016-08-17T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464f9537b9e", "title": "The Basics of Modular JavaScript & npm Packages", "url": "https://travishorn.com/the-basics-of-modular-javascript-npm-packages/", "published_at": "2016-08-10T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464fa115499", "title": "Building a Random-Within-Range Function", "url": "https://travishorn.com/building-a-random-within-range-function/", "published_at": "2016-08-09T22:01:03+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464faa9531a", "title": "JavaScript Slideshow with No Dependencies", "url": "https://travishorn.com/javascript-slideshow-with-no-dependencies/", "published_at": "2016-08-08T22:01:03+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464fb5275b8", "title": "Increase Concurrent Connections in Windows Server 2000", "url": "https://travishorn.com/increase-concurrent-connections-in-windows-server-2000/", "published_at": "2016-08-07T22:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464fb57f424", "title": "SQL Query for Counting Records per Day", "url": "https://travishorn.com/sql-query-for-counting-records-per-day/", "published_at": "2016-08-06T22:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464fc2166a4", "title": "SQL as Understood by SQLite", "url": "https://travishorn.com/sql-as-understood-by-sqlite/", "published_at": "2016-08-05T22:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464fccffa48", "title": "Simple jQuery", "url": "https://travishorn.com/simple-jquery/", "published_at": "2016-08-04T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464fd41e6b7", "title": "JavaScript Reference: Objects", "url": "https://travishorn.com/javascript-reference-objects/", "published_at": "2016-08-03T22:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464fd9c672d", "title": "JavaScript Reference: Closures", "url": "https://travishorn.com/javascript-reference-closures/", "published_at": "2016-08-03T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464fe61945e", "title": "\"Shrinkwrapped\" List with CSS", "url": "https://travishorn.com/shrinkwrapped-list-with-css/", "published_at": "2016-08-02T22:49:11+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464ff2a3562", "title": "Link Directly to Google's \"I'm Feeling Lucky\" Feature", "url": "https://travishorn.com/link-directly-to-googles-im-feeling-lucky-feature/", "published_at": "2016-08-01T22:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5464ffd8edb3", "title": "xcopy Options for Backup", "url": "https://travishorn.com/xcopy-options-for-backup/", "published_at": "2016-07-31T22:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5465007f8c91", "title": "Windows XP Malware Cleanup", "url": "https://travishorn.com/windows-xp-malware-cleanup/", "published_at": "2016-07-30T22:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-54650113beb3", "title": "Unix Commands", "url": "https://travishorn.com/unix-commands/", "published_at": "2016-07-28T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5465014ce4fd", "title": "Troubleshoot Internet Connection Problems", "url": "https://travishorn.com/troubleshoot-internet-connection-problems/", "published_at": "2016-07-27T22:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5465023c3378", "title": "Windows XP Startup and Shutdown Notifications", "url": "https://travishorn.com/windows-xp-startup-and-shutdown-notifications/", "published_at": "2016-07-26T22:08:17+00:00" }, { "id": "01a08c58-647e-7122-81f5-546502bd1dc6", "title": "Removing Conficker/Downadup", "url": "https://travishorn.com/removing-conficker-downadup/", "published_at": "2016-07-25T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-5465039d6b92", "title": "Make Single Spacing Default in Word 2007+", "url": "https://travishorn.com/make-single-spacing-default-in-word-2007/", "published_at": "2016-07-24T22:01:02+00:00" }, { "id": "01a08c58-647e-7122-81f5-5465044587b8", "title": "Import Contacts into Outlook from an Email", "url": "https://travishorn.com/import-contacts-into-outlook-from-an-email/", "published_at": "2016-07-23T22:01:01+00:00" }, { "id": "01a08c58-647e-7122-81f5-54650458ed3b", "title": "Greater Than & Less Than Formatting in Excel", "url": "https://travishorn.com/greater-than-less-than-formatting-in-excel/", "published_at": "2016-07-22T22:01:01+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-622983f69124", "title": "Enable File and Printer Sharing Across Subnets in Windows Server 2003", "url": "https://travishorn.com/enable-file-and-printer-sharing-across-subnets-in-windows-server-2003/", "published_at": "2016-07-21T22:01:02+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-622984a99bc5", "title": "Using MSSQL with Classic ASP", "url": "https://travishorn.com/using-mssql-with-classic-asp/", "published_at": "2016-07-20T22:01:01+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-622985174938", "title": "Boilerplate Classic ASP Page", "url": "https://travishorn.com/boilerplate-classic-asp-page/", "published_at": "2016-07-19T22:01:02+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-6229857ba3a1", "title": "A small function to convert an array of ID strings into a dictionary of jQuery objects", "url": "https://travishorn.com/a-small-function-to-convert-an-array-of-id-strings-into-a-dictionary-of-jquery-objects/", "published_at": "2016-07-16T00:12:52+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-622985f696cb", "title": "Should you name variables based on their content or their purpose?", "url": "https://travishorn.com/should-you-name-variables-based-on-their-content-or-their-purpose/", "published_at": "2016-07-12T22:01:02+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62298614ef15", "title": "Getting Started with R on Windows", "url": "https://travishorn.com/getting-started-with-r-on-windows/", "published_at": "2016-07-01T22:01:01+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-6229865b8577", "title": "Building upon JavaScript with TypeScript", "url": "https://travishorn.com/building-upon-javascript-with-typescript/", "published_at": "2016-06-28T22:01:01+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-622986ecf201", "title": "Zero to TypeScript Developer using Visual Studio Code on Ubuntu", "url": "https://travishorn.com/zero-to-typescript-developer-using-visual-studio-code-on-ubuntu/", "published_at": "2016-06-08T22:01:03+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-622987a2e7c4", "title": "Creating a front-end for working with your API proxy", "url": "https://travishorn.com/creating-a-front-end-for-working-with-your-api-proxy/", "published_at": "2016-04-05T20:40:35+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-622988308676", "title": "Creating a Node.js proxy to secure your third-party API key", "url": "https://travishorn.com/creating-a-node-js-proxy-to-secure-your-third-party-api-key/", "published_at": "2016-04-01T22:31:01+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-622988b73325", "title": "My preferred development environment", "url": "https://travishorn.com/my-preferred-development-environment/", "published_at": "2016-03-18T22:31:00+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-622989b31f98", "title": "What considerations do I make while building a web application or site?", "url": "https://travishorn.com/what-considerations-do-i-make-while-building-a-web-application-or-site/", "published_at": "2016-03-17T22:31:01+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62298a8f6a56", "title": "A recent technical challenge I experienced with PC hardware", "url": "https://travishorn.com/a-recent-technical-challenge-i-experienced-with-pc-hardware/", "published_at": "2016-03-15T22:01:01+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62298b3b3be5", "title": "What excites me about coding?", "url": "https://travishorn.com/what-excites-me-about-coding/", "published_at": "2016-03-11T15:57:24+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62298b400309", "title": "What did I learn this week? Knex.js & Bookshelf.js", "url": "https://travishorn.com/what-did-i-learn-this-week-knex-js-bookshelf-js/", "published_at": "2016-03-09T17:30:04+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62298c06686a", "title": "Fireflies with canvas and requestAnimationFrame", "url": "https://travishorn.com/fireflies-with-canvas-and-requestanimationframe/", "published_at": "2015-06-30T01:35:00+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62298ccab5f8", "title": "npm Package Store", "url": "https://travishorn.com/npm-package-store/", "published_at": "2014-09-29T23:30:00+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62298cf15309", "title": "fake-identity", "url": "https://travishorn.com/fake-identity/", "published_at": "2014-09-28T16:52:00+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62298d77b641", "title": "Using Grunt with Travis-CI", "url": "https://travishorn.com/using-grunt-with-travis-ci/", "published_at": "2014-09-13T20:40:28+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62298dfd6260", "title": "Using CSS Media Queries for Responsive Design", "url": "https://travishorn.com/using-css-media-queries-for-responsive-design/", "published_at": "2014-09-07T21:27:20+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62298e378f58", "title": "Browser standards implementation", "url": "https://travishorn.com/browser-standards-implementation/", "published_at": "2014-08-23T21:37:20+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62298ef31584", "title": "Web accessibility", "url": "https://travishorn.com/web-accessibility/", "published_at": "2014-08-14T22:44:54+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62298f093b39", "title": "NoSQL & MongoDB", "url": "https://travishorn.com/nosql-mongodb/", "published_at": "2014-08-08T05:00:00+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62298f9fc9ad", "title": "HTTPS & SSL/TLS", "url": "https://travishorn.com/https-ssl-tls/", "published_at": "2014-08-05T22:54:00+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62298fdb986e", "title": "Welcome to the redesigned blog", "url": "https://travishorn.com/welcome-to-the-redesigned-blog/", "published_at": "2014-08-04T19:45:00+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-622990048df4", "title": "Preventing CSRF Attacks in ColdFusion 9", "url": "https://travishorn.com/preventing-csrf-attacks-in-coldfusion-9/", "published_at": "2014-08-04T19:23:23+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-622990748e2f", "title": "HTML5: New Features", "url": "https://travishorn.com/html5-new-features/", "published_at": "2012-05-04T19:29:56+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-6229909d40ad", "title": "jQuery.expire", "url": "https://travishorn.com/jquery-expire/", "published_at": "2012-04-27T05:00:00+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62299165c130", "title": "Increasingly Higher Level \"Hello World\" with Node", "url": "https://travishorn.com/increasingly-higher-level-hello-world-with-node/", "published_at": "2012-04-23T05:00:00+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62299227731d", "title": "Web Fonts", "url": "https://travishorn.com/web-fonts/", "published_at": "2012-04-20T05:00:00+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-622992f2d1d6", "title": "jQuery", "url": "https://travishorn.com/jquery/", "published_at": "2012-04-13T05:00:00+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-6229935bf5fa", "title": "Contributing Code on GitHub", "url": "https://travishorn.com/contributing-code-on-github/", "published_at": "2012-04-09T05:00:00+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-6229938339b9", "title": "parallaxBG", "url": "https://travishorn.com/parallaxbg/", "published_at": "2012-04-06T05:00:00+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-62299431123f", "title": "Version Control", "url": "https://travishorn.com/version-control/", "published_at": "2012-04-02T05:00:00+00:00" }, { "id": "01a08c58-647f-70cb-9b1a-622994e61a94", "title": "Backbone.js", "url": "https://travishorn.com/backbone-js/", "published_at": "2012-03-30T05:00:00+00:00" } ] posts Claim your blog
Back to travishorn.com
Blog · corpus.blog/blogs/travishorn.com/posts

travishorn.com

travishorn.com

2018

2017

30 Nov 2017

2016

2015

2014

2012