diff --git a/404.html b/404.html new file mode 100644 index 0000000000000000000000000000000000000000..09e406583efb499b6ba62c88e1d62b44898e8778 --- /dev/null +++ b/404.html @@ -0,0 +1,16 @@ +<div class="row"> + <div class="column"> + <div class="row"> + <div class="column"> + <h1 class="cardboard">Not Found</h1> + </div> + </div> + + <p> + The content that you are looking for is in another castle. + Here's a <i>doge</i> instead: + </p> + + <img src="/images/doge.png"/> + </div> +</div> diff --git a/LICENSE b/LICENSE index f70bc0843529addcb33274a0b0560ceb6c82fc98..b870ab6a9785a2c07990c922371d89a704309fdc 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,10 @@ -Copyright (c) 2015 +Assets (Images, Videos) on this repository/website are license under a +Attribution-NonCommercial-ShareAlike 4.0 International License: +http://creativecommons.org/licenses/by-nc-sa/4.0/ + +--- + +Copyright Eduardo Trujillo (c) 2015 All rights reserved. @@ -13,7 +19,7 @@ modification, are permitted provided that the following conditions are met: disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of nor the names of other + * Neither the name of Eduardo Trujillo nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. @@ -27,4 +33,4 @@ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/about.html b/about.html new file mode 100644 index 0000000000000000000000000000000000000000..326b795b56d136abff8c110b7f9d039fce71ebc9 --- /dev/null +++ b/about.html @@ -0,0 +1,190 @@ +--- +title: About +--- + +<div class="row"> + <div class="column"> + <h1 class="cardboard">About</h1> + </div> +</div> + +<div class="row"> + <div class="medium-8 columns"> + <p> + My name is Eduardo Trujillo (Thru-he-yoh). I'm a Computer Scientist living + in Athens, GA. (University of Georgia). + </p> + + <p> + Technology in general is one of my passions. My more specific interests + range from server-side programming, to rich application design and + graphic design. + </p> + + <p> + My work: Quality over quantity. I'm fluent in PHP and Javascript, and also + use other languages like C++, Python, etc. I like building things from + scratch and understand how they work. I tend to prefer comprehensive + solutions, not quick hacks. I'm a gamer too. FPSs, Indies and Hack-and-slash + RPGs are within my favorites. + </p> + + <p> + This is my personal blog. Here I post, complain, share, and discuss about + things that are going through my mind at the moment. + </p> + </div> + + <div class="medium-4 columns"> + <img src="/images/avatar.jpeg"></img> + </div> +</div> + +<div class="row"> + <div class="medium-6 columns"> + <h3>Contact</h3> + + <div class="row"> + <div class="medium-6 columns"> + <i class="fa fa-facebook-official"></i> + <b>Facebook</b> + </div> + + <div class="medium-6 columns"> + <a href="https://fb.com/etcinit">etcinit</a> + </div> + </div> + + <div class="row"> + <div class="medium-6 columns"> + <i class="fa fa-twitter"></i> + <b>Twitter</b> + </div> + + <div class="medium-6 columns"> + <a href="https://twitter.com/etcinit">@etcinit</a> + </div> + </div> + + <div class="row"> + <div class="medium-6 columns"> + <i class="fa fa-twitter"></i> + <b>LinkedIn</b> + </div> + + <div class="medium-6 columns"> + <a href="http://www.linkedin.com/in/etrujillo/">etrujillo</a> + </div> + </div> + </div> + + <div class="medium-6 columns"> + + </div> +</div> + +<p> </p> + +<div class="row"> + <div class="column"> + <h3>Public PGP Key</h3> + + <p> + Download and verify my PGP public key using Keybase.io and social media + accounts: + </p> + + <p> + <b>Keybase:</b> + <a href="https://keybase.io/etcinit">https://keybase.io/etcinit</a> + </p> + + <p> + <b>Fingerprint:</b> + <pre>80A1-5003-7BBF-35DD-371D-6CB3-C82C-CC4C-5CEA-CF85</pre> + </p> + + <hr> + + <p><b>Full key:</b></p> + + <div class="sourceCode"><pre><code> +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: Keybase OpenPGP v2.0.1 +Comment: https://keybase.io/crypto + +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 +=ceyV +-----END PGP PUBLIC KEY BLOCK----- + </code></pre></div> + </div> +</div> diff --git a/about.md b/about.md deleted file mode 100644 index f72ca3b6876454b8358f9cc7635d311f7ff967dd..0000000000000000000000000000000000000000 --- a/about.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: About ---- - -<div class="row"><div class="column"> - <h1 class="cardboard">About</h1> -</div></div> - -My name is Eduardo Trujillo (Thru-he-yoh). I'm a Computer Scientist living in -Athens, GA. (University of Georgia). - -Technology in general is one of my passions. My more specific interests range -from server-side programming, to rich application design and graphic design. - -My work: Quality over quantity. I'm fluent in PHP and Javascript, and also use -other languages like C++, Python, etc. I like building things from scratch and -understand how they work. I tend to prefer comprehensive solutions, not quick -hacks. I'm a gamer too. FPSs, Indies and Hack-and-slash RPGs are within my -favorites. - -This is my personal blog. Here I post, complain, share, and discuss about -things that are going through my mind at the moment. diff --git a/posts/2015-08-23-example.markdown b/drafts/2015-08-23-example.markdown similarity index 100% rename from posts/2015-08-23-example.markdown rename to drafts/2015-08-23-example.markdown diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..80e750f8e509303b7948f2a4985c55cd72a420b0 Binary files /dev/null and b/favicon.ico differ diff --git a/images/avatar.jpeg b/images/avatar.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..bbad054baa26a58d57516d12466da4ec37c8ee09 Binary files /dev/null and b/images/avatar.jpeg differ diff --git a/images/doge.png b/images/doge.png new file mode 100644 index 0000000000000000000000000000000000000000..f4a8d445a037f259cb36f1230b5a160c8a3cdb43 Binary files /dev/null and b/images/doge.png differ diff --git a/images/ensure-banner.png b/images/ensure-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..11d33aa6e882734f2923f5800bce657e38a3ba2e Binary files /dev/null and b/images/ensure-banner.png differ diff --git a/posts/2014-01-20-linux-setup-gnome-3.md b/posts/2014-01-20-linux-setup-gnome-3.md index edb759b56d041cad086397b1e0e91cdf1d39c54d..91f794ac1f36b06254d1c007a3a4f0c0d51f05f9 100644 --- a/posts/2014-01-20-linux-setup-gnome-3.md +++ b/posts/2014-01-20-linux-setup-gnome-3.md @@ -2,6 +2,7 @@ title: Linux setup: Gnome 3 tags: linux, gnome, fedora uuid: 97473bd1-82a8-412a-8863-68ca30a5ef6e +legacy: linux-setup-gnome-3 --- [](/img/posts/gnome/screenshot.png) diff --git a/posts/2014-03-08-php-is-not-dead.md b/posts/2014-03-08-php-is-not-dead.md index 0b1d7480f836ee0738c33f18ce1c055ebe5e7645..d8a77f1035c8020b1cd6990fb42145a8200c3bca 100644 --- a/posts/2014-03-08-php-is-not-dead.md +++ b/posts/2014-03-08-php-is-not-dead.md @@ -2,6 +2,7 @@ title: Using Laravel: PHP is not dead tags: php, laravel uuid: 9b92d244-281c-401c-8c72-3e9a67e976c3 +legacy: using-laravel-php-is-not-dead --- My last post in web development was about Node.js and how easy I found to build web apps with it. However, this doesn't mean I have abandoned PHP, in fact, it has pushed me to __write better PHP applications and improve the quality of my code__. diff --git a/posts/2014-06-07-ensurejs.md b/posts/2014-06-07-ensurejs.md index aef9869c353f5ebf916df119079e08e69a300362..d41c8dc95ac938386179e2ba868172617cc9d27b 100644 --- a/posts/2014-06-07-ensurejs.md +++ b/posts/2014-06-07-ensurejs.md @@ -2,6 +2,7 @@ title: Ensure.js: Simple type-checking on JavaScript tags: ensure, javascript uuid: 3dc96fbd-5409-4d5b-926b-b1daa3ed3809 +legacy: ensurejs-simple-type-checking-on-javascript ---  diff --git a/posts/2014-07-23-scss-utility-file.md b/posts/2014-07-23-scss-utility-file.md index 3ffcc9ef89e5944c12ee4b9bc0637864f4e02572..a18170100222d7cae0cd75069577f890356b3a62 100644 --- a/posts/2014-07-23-scss-utility-file.md +++ b/posts/2014-07-23-scss-utility-file.md @@ -2,6 +2,7 @@ title: SCSS utility file tags: scss, front-end uuid: 2c1452e3-a597-44e6-934c-e263ccf0696c +legacy: scss-utility-file --- These are some SCSS mixins I use on most of my projects. I'll be adding more diff --git a/posts/2014-08-12-ensure-04-records.md b/posts/2014-08-12-ensure-04-records.md index 5e688b070ff6c778533d8a7132e2075f6faebe7e..e5e892b35c5c988ea04ff593f5d72f19a59c470c 100644 --- a/posts/2014-08-12-ensure-04-records.md +++ b/posts/2014-08-12-ensure-04-records.md @@ -2,6 +2,7 @@ title: Ensure.js 0.4: Record Types and better testing tags: type-checking, ensure, nodejs, javascript uuid: e1b251c3-10cd-41d1-9d64-faa70d407e9b +legacy: ensurejs-04-record-types-and-better-testing --- I just finished pushing a new set of updates to Ensure.js! Now all tests are run through the diff --git a/posts/2014-09-18-two-problems-from-ai-class.md b/posts/2014-09-18-two-problems-from-ai-class.md index f1a0418e8acd741f6c8207673d256d87b529a534..ea280d00e4af972b0d270fe9b1bc025420e17ca0 100644 --- a/posts/2014-09-18-two-problems-from-ai-class.md +++ b/posts/2014-09-18-two-problems-from-ai-class.md @@ -2,6 +2,7 @@ title: 2 Problems from AI class tags: ai, snake-in-the-box uuid: 8d741fd5-2690-411e-9206-a570f15d1115 +legacy: 2-problems-from-ai-class --- These are two problems I've worked on from my Artificial Intelligence class this semester. These are problems which can take a really long time if done naively, hence the goal is to come up with solutions that use some heuristic to come up with the answer faster. diff --git a/posts/2014-10-09-some-updates.md b/posts/2014-10-09-some-updates.md index fa6b2315aca9f2eb3815731c04a248b19a8cb624..3e0b8f0ae54a7b0295c61ad09be1a5d988994a5e 100644 --- a/posts/2014-10-09-some-updates.md +++ b/posts/2014-10-09-some-updates.md @@ -2,6 +2,7 @@ title: Some updates tags: laravel, laravel5, php, hhvm, pagination, ai uuid: d52ed484-cd81-4f2f-8828-b76328f1caf3 +legacy: some-updates --- ## Laravel 5 and Foundation Pagination diff --git a/posts/2014-10-13-laravel-pagination-update.md b/posts/2014-10-13-laravel-pagination-update.md index ca1b4f384b0e94962aef062aa858429ba7761c15..f2b2b2242d26f93db900c5dc6667be370a5d6410 100644 --- a/posts/2014-10-13-laravel-pagination-update.md +++ b/posts/2014-10-13-laravel-pagination-update.md @@ -2,6 +2,7 @@ title: An update on Laravel 5 pagination tags: laravel, laravel5, pagination uuid: b27085d7-b026-4423-83bf-39571e385239 +legacy: an-update-on-laravel-5-pagination --- Laravel 5 in its current state does not have a fully working pagination. It only seems to return simple paginators (they are not aware of the total number of items). This will most likely change in the future, but if you really need pagination working on Laravel 5 right now you can try the following: diff --git a/posts/2014-10-17-poodle-nodejs.md b/posts/2014-10-17-poodle-nodejs.md index c827dc95fe4a4a793f6e73f0ee9dce5d7ccc6d1d..de1750ae2e4d8ee0bcbdd8616d033695cb98d9d0 100644 --- a/posts/2014-10-17-poodle-nodejs.md +++ b/posts/2014-10-17-poodle-nodejs.md @@ -2,6 +2,7 @@ title: POODLE and node.js tags: poodle, ssl, nodejs, security uuid: bfa447a6-0b2b-44e2-b693-b042f209d8cf +legacy: poodle-and-nodejs ---  diff --git a/posts/2014-10-18-foundation-checkboxes.md b/posts/2014-10-18-foundation-checkboxes.md index bfbc59cbe80f9795422fa919be6e283aebc23266..aa0c19aefaab8cb8b2bbe85e97a4956f0be48b09 100644 --- a/posts/2014-10-18-foundation-checkboxes.md +++ b/posts/2014-10-18-foundation-checkboxes.md @@ -2,6 +2,7 @@ title: Checkboxes and ZURB Foundation tags: foundation, scss uuid: e34db4cd-1b4e-402a-abcf-45460ce6f3cd +legacy: checkboxes-and-zurb-foundation --- The current version ZURB's Foundation (A CSS framework) doesn't style form checkboxes and the final look is always the browser default, which can look good or bad depending on your OS. diff --git a/posts/2014-10-27-custom-laravel-logs.md b/posts/2014-10-27-custom-laravel-logs.md index 9756b5de65d93d7e4520fe9c66765c2d9fd00e63..103b8a7e07f659f9d22ebdbbd1cf9f7886695de2 100644 --- a/posts/2014-10-27-custom-laravel-logs.md +++ b/posts/2014-10-27-custom-laravel-logs.md @@ -2,6 +2,7 @@ title: Laravel 5: Custom Logs tags: laravel, laravel5, logs, php uuid: f9095ab9-008f-44fd-aa54-b148dcd007e0 +legacy: laravel-5-custom-logs --- Laravel 5 introduces the concept of "bootstrappers", which are classes whose sole purpose is to setup the application. This new layer of abstraction makes many of the initialization code of the application modular and portable, so if you want to replace or change how a part or the whole initialization process, you can! diff --git a/posts/2014-11-05-modernphp-slides.md b/posts/2014-11-05-modernphp-slides.md index 8e06a341f1b7744c773879ee140513ae5e7df66c..f4b2f2a9247555ca952b33405fce276b5949fe44 100644 --- a/posts/2014-11-05-modernphp-slides.md +++ b/posts/2014-11-05-modernphp-slides.md @@ -2,6 +2,7 @@ title: Modern PHP Talk Slides tags: slides, laravel, php, talks uuid: 060fa96e-36c3-47ac-aedc-2389682781f4 +legacy: modern-php-talk-slides --- Here are the slides for my presentation on Modern PHP development with Laravel diff --git a/posts/2014-11-08-ensurejs-documentation-shields.md b/posts/2014-11-08-ensurejs-documentation-shields.md index 934deb5d8cea590ac0c17f8d9e5de0f963d1eb6c..e6a40283d54784ace4c88877935171dd5b319276 100644 --- a/posts/2014-11-08-ensurejs-documentation-shields.md +++ b/posts/2014-11-08-ensurejs-documentation-shields.md @@ -2,6 +2,7 @@ title: Ensure 0.5.0: Documentation and shields! tags: ensure, nodejs uuid: a4d02358-7410-46ed-be8a-b99730a0e45d +legacy: ensure-050-documentation-and-shields --- _Ensure.js is my JavaScript dynamic type checking library. For more information go [here](https://chromabits.com/post/ensurejs-simple-type-checking-on-javascript)_ diff --git a/posts/2014-12-04-minecraft-bot-nodejs.md b/posts/2014-12-04-minecraft-bot-nodejs.md index f42b99851e2882ea1d709b639ad417b963701fc1..e07ed8d90c77aef70ce5b7741810d241a9698e7a 100644 --- a/posts/2014-12-04-minecraft-bot-nodejs.md +++ b/posts/2014-12-04-minecraft-bot-nodejs.md @@ -2,6 +2,7 @@ title: Minecraft Bot in Node.js tags: minecraft, nodejs, ai uuid: a1efd1b4-abe3-41e6-af01-ab3d584f18d2 +legacy: minecraft-bot-in-nodejs --- I've recently been working on a Minecraft bot built in Node.js as part of my final project for my artificial intelligence class. The Minecraft-Node connection is possible thanks to a library called __Mineflayer__ which acts as a Javascript bridge between Minecraft and Node. diff --git a/posts/2014-12-09-minecraft-ai-agent.md b/posts/2014-12-09-minecraft-ai-agent.md index 919e181c5b7094369cedddc3c4005f1cbeb0af79..544b254eb588199b0506ab96f8a211b6d972107f 100644 --- a/posts/2014-12-09-minecraft-ai-agent.md +++ b/posts/2014-12-09-minecraft-ai-agent.md @@ -2,6 +2,7 @@ title: Minecraft AI Agent tags: minecraft, ai, agent, nodejs uuid: 7bc05e06-abad-4f3e-9c29-49ea569b516c +legacy: minecraft-ai-agent --- *The following is an adaptation of a report I wrote on the Minecraft AI agent I build as part of the final project for my Artificial Illigence class at UGA. Some parts of it still sound like a report.* diff --git a/posts/2014-12-14-cleaning-html-input-on-laravel.md b/posts/2014-12-14-cleaning-html-input-on-laravel.md index dbd7bd58c0acba2032bfe71e4083da563962802a..ae4c000b82c8e9ecb15bddd634cefe5831bf3c70 100644 --- a/posts/2014-12-14-cleaning-html-input-on-laravel.md +++ b/posts/2014-12-14-cleaning-html-input-on-laravel.md @@ -2,6 +2,7 @@ title: Cleaning HTML input on Laravel 5 tags: laravel5, php, purifier, html uuid: ad9d55d9-ece0-4dc5-be54-15672e843468 +legacy: cleaning-html-input-on-laravel-5 --- ## Introduction diff --git a/posts/2014-12-14-react-mousetrap-mixin.md b/posts/2014-12-14-react-mousetrap-mixin.md index e324f44fffc7acb6f17fa3da091c40375d3ea599..69be03ad02c55836c5ed1adad1d1c04256b6a548 100644 --- a/posts/2014-12-14-react-mousetrap-mixin.md +++ b/posts/2014-12-14-react-mousetrap-mixin.md @@ -2,6 +2,7 @@ title: Mousetrap + React.js tags: react, mousetrap, js uuid: 583db650-ee44-4c2e-9780-6af560872f0e +legacy: mousetrap--reactjs --- Here's a little mixin I've been using on React.js for interacting with the Mousetrap library (a library for handling keyboard shortcuts on the browser). It automatically unbinds shortcuts once the component unmounts and provides some convenience methods for avoiding interacting with Mousetrap directly on m components. diff --git a/posts/2015-01-19-experimenting-with-structures.md b/posts/2015-01-19-experimenting-with-structures.md index efa426b3bdf4a37f7ec6f156358b0e2bac3e8e69..a367cd11fc5c6316ffc533416cd0d281c2e23c07 100644 --- a/posts/2015-01-19-experimenting-with-structures.md +++ b/posts/2015-01-19-experimenting-with-structures.md @@ -2,6 +2,8 @@ title: Experimenting with structures tags: php, datastructures, testing uuid: 760eaf0c-585a-405e-b680-6d45343986f1 +legacy: experimenting-with-structures +author: Eduardo Trujillo --- For many programming languages and software packages, data structures such as linked lists and maps, and sorting algorithms like quicksort, are things that come built-in. diff --git a/posts/2015-01-25-facadeless-migrations.md b/posts/2015-01-25-facadeless-migrations.md index dce940d15274cc381f3dc96b51b746a04c32ae1f..7dfb7aa9501c0de3c331aa532e5287d5d5615f72 100644 --- a/posts/2015-01-25-facadeless-migrations.md +++ b/posts/2015-01-25-facadeless-migrations.md @@ -2,11 +2,13 @@ title: Facade-less migrations in Laravel 5 tags: laravel5, migrations uuid: 8135efaf-3da3-4fd8-9efb-24286ccac2bc +legacy: facade-less-migration-in-laravel-5 +author: Eduardo Trujillo --- Found a quick way of avoiding using the Schema facade for migrations in Laravel: -```php +``` {#cadvisor .php .numberLines startFrom="0"} <?php namespace App\Database; diff --git a/posts/2015-02-18-phabricator-bot.md b/posts/2015-02-18-phabricator-bot.md index 26c69e759b2072184ba8efe938184ec4cad34c0d..5133c1d7b9b267d732d3a9f2a9912445466fbc76 100644 --- a/posts/2015-02-18-phabricator-bot.md +++ b/posts/2015-02-18-phabricator-bot.md @@ -2,6 +2,8 @@ title: Building a Phabricator and Slack bot tags: phabricator, slack, nodejs uuid: 75330309-7fa2-4ea3-96f9-6f67127fe744 +legacy: building-phabricator-and-slack-bot +author: Eduardo Trujillo --- As the result of a short hacking session, I built a simple Node.js bot that forwards items from the Phabricator news feed into a Slack channel: diff --git a/posts/2015-05-10-heapster-deis.md b/posts/2015-05-10-heapster-deis.md index b6caf3ecc80f381494884453fc724ef9469c60ea..90a36ab5fcaa0648e454457a7b5091d7e37695bd 100644 --- a/posts/2015-05-10-heapster-deis.md +++ b/posts/2015-05-10-heapster-deis.md @@ -3,6 +3,7 @@ title: Heapster and Deis: So hip! tags: docker, heapster, coreos, influxdb uuid: 09e80619-b671-47ec-b419-a57813d55ff2 legacy: heapster-and-deis-so-hip +author: Eduardo Trujillo ---  diff --git a/projects/enclosure.md b/projects/enclosure.md index 1a4abd734e3cff0afaa8ba58d6c748607905bedc..965d4c8849f920360dd5fa5dbbf5fae9047e462d 100644 --- a/projects/enclosure.md +++ b/projects/enclosure.md @@ -2,6 +2,8 @@ title: Enclosure platform: Javascript github: etcinit/enclosure +docs: http://enclosure.me +uuid: 23f06c6e-4e34-47b7-aaac-8e7dad3697ea --- IoC container for Node. diff --git a/projects/ensure.md b/projects/ensure.md index d00245fb7510ee240e9ae7c4f9d891acede63539..d502efd8f72e01329325620265ce72546b58c208 100644 --- a/projects/ensure.md +++ b/projects/ensure.md @@ -2,12 +2,16 @@ title: Ensure.js platform: Javascript github: etcinit/ensure +post: /posts/2014/06/07/ensurejs/ +uuid: f90b7ded-c9d2-41cc-9870-0f2ae76080ac --- A simple JavaScript type-checking library. <!--more--> + + Given the untyped nature of JavaScript, it can be hard or repetitive to write the same checks for inputs and expected data. Ensure.js groups many of these checks into a single library and makes it really easy to use. diff --git a/projects/foundation-pagination.md b/projects/foundation-pagination.md index 5c6c423f28d954f1740fab06b7de4707c00e0d01..8dd84d4ac6ee7b2cdd3e1cd7ea17b3dfaf63d7e9 100644 --- a/projects/foundation-pagination.md +++ b/projects/foundation-pagination.md @@ -2,6 +2,7 @@ title: Foundation Pagination platform: PHP github: etcinit/foundation-pagination +uuid: 712e7c39-a351-499e-8b5d-85591f4f9d91 --- A pagination component for Laravel 5 that uses the popular SCSS framework, diff --git a/projects/gonduit.md b/projects/gonduit.md index 4f021be3a2ab94e3e8038d982e0301df63502994..e22e7c5bc3ba80247a6fcd0a448a5edeab648efb 100644 --- a/projects/gonduit.md +++ b/projects/gonduit.md @@ -3,6 +3,7 @@ title: Gonduit platform: go github: etcinit/gonduit docs: https://godoc.org/github.com/etcinit/gonduit +uuid: b226373d-9f2b-4ad1-a164-35ed605881eb --- A Go package for connecting to Phabricator via the Conduit API. diff --git a/projects/illuminated.md b/projects/illuminated.md index bb0dca6757340bbc0c81d10bf74a8dbc7753ef2e..aaaa76567fa02692b48759e29475dd8e573a67be 100644 --- a/projects/illuminated.md +++ b/projects/illuminated.md @@ -2,6 +2,7 @@ title: Illuminated platform: PHP github: chromabits/illuminated +uuid: 94546df1-7097-4630-b21e-8dc4053300ec --- A collection of Laravel 5 helper classes and functions. diff --git a/projects/legit.md b/projects/legit.md index c067da74a0d7298068f5edf132de4bcf876d5253..0d7016a7f55935bd354ae411a78993f40a18bbd7 100644 --- a/projects/legit.md +++ b/projects/legit.md @@ -2,6 +2,7 @@ title: Legit.js platform: Javascript github: etcinit/legit +uuid: e9a60a17-9572-4b9c-9f6c-f30d8c755302 --- Just another input validation library. diff --git a/projects/minebot.md b/projects/minebot.md index 0140c7b39756ccca66320d2b666e3e0f79bd909f..6afcd260fb517d97aff1bd618e32bdce1a8253ec 100644 --- a/projects/minebot.md +++ b/projects/minebot.md @@ -2,6 +2,8 @@ title: Minebot platform: Javascript github: etcinit/minebot +post: /posts/2014/12/09/minecraft-ai-agent/ +uuid: 968c4399-04cd-411e-bca9-46b2f07c2ade --- Minecraft Bot for my final AI project. diff --git a/projects/nexus.md b/projects/nexus.md index 1486c99abf4f369fdce98803aa60ea7969bc73b3..6316dd51d16ebf8f4b36ec7dd1758f5b29f12438 100644 --- a/projects/nexus.md +++ b/projects/nexus.md @@ -2,6 +2,7 @@ title: Nexus Configuration Server platform: Javascript github: etcinit/nexus +uuid: 629a587c-2930-4d0c-89bb-011ffcd40c5a --- A simple web server for storing configuration and log files on a centralized diff --git a/projects/nucleus.md b/projects/nucleus.md index 14dcfb2af979cb16c3390767ff20335ecb3a8312..7286565c8fc620c39318a16de36d0acdb983100a 100644 --- a/projects/nucleus.md +++ b/projects/nucleus.md @@ -3,6 +3,7 @@ title: Nucleus platform: PHP docs: http://chromabits.github.io/nucleus/ github: chromabits/nucleus +uuid: d6589d2b-7a52-4832-bc1b-cb39c600de21 --- A standalone PHP utility library. diff --git a/projects/phabricator-yubikey.md b/projects/phabricator-yubikey.md index 931113c24fc7ff2b9a29260f68b361c85e3dc1b0..df5984e95d7bb8aed2f7a22c510cd554ad97ad64 100644 --- a/projects/phabricator-yubikey.md +++ b/projects/phabricator-yubikey.md @@ -2,6 +2,7 @@ title: Phabricator Yubikey platform: PHP github: etcinit/phabricator-yubikey +uuid: dec3e4e7-27d1-4386-bff8-2aa1e6610d4d --- Experimental integration of Yubikey OTPs with Phabricator diff --git a/projects/phabulous.md b/projects/phabulous.md index f71943693bdfc7d7edc00262efff000494318c6f..2c32efcdb05f0fc3f6b08e998164cf0d9a1e285a 100644 --- a/projects/phabulous.md +++ b/projects/phabulous.md @@ -3,6 +3,7 @@ title: Phabulous platform: Go docs: http://phabricator.chromabits.com/w/phabulous/ github: etcinit/phabulous +uuid: ef9eb349-9e52-4e3d-80d2-15388308c7e1 --- A Phabricator bot for Slack diff --git a/projects/purifier.md b/projects/purifier.md index 8ecadaa952e56edbe0aa2c59e3ef9c3b94269447..98b0d76eb939b5d20521e21c86d9f319e1d68c5c 100644 --- a/projects/purifier.md +++ b/projects/purifier.md @@ -2,6 +2,7 @@ title: Purifier platform: PHP github: etcinit/purifier +uuid: 299e0a9c-0a86-41ef-a9c2-eef220e2abf8 --- HTML Purifier service wrapper for Laravel 5 applications. diff --git a/projects/sauron.md b/projects/sauron.md index 9fc722c107e3918d35adaf30fdc15889321a64ce..7cbce0380cc8311a5379063b861d560d1f3e2dd8 100644 --- a/projects/sauron.md +++ b/projects/sauron.md @@ -2,6 +2,7 @@ title: Sauron platform: Go github: etcinit/sauron +uuid: 470e32e5-7097-405b-8dc4-158f4a73abc7 --- CLI tool for tail-ing a whole log directory recursively and dynamically. diff --git a/projects/speedbump.md b/projects/speedbump.md index 146b2dd61d03834401f5dc449e8d93f66b628290..9cc5b16fd4d0a9adeafb5f30ef9a58f02b8b1812 100644 --- a/projects/speedbump.md +++ b/projects/speedbump.md @@ -4,12 +4,18 @@ platform: Go github: etcinit/speedbump sourcegraph: https://sourcegraph.com/github.com/etcinit/speedbump docs: https://godoc.org/github.com/etcinit/speedbump +uuid: c75c9589-2c96-45e1-bb25-6280c60c9c1a --- A rate-limitter in Go. <!--more--> -Uses Redis as its backing store to keep track of requests per client and properly apply limits through a cluster of servers. While it includes timing functions for per second, minute and hour limits, it also supports custom functions. +Uses Redis as its backing store to keep track of requests per client and +properly apply limits through a cluster of servers. While it includes timing +functions for per second, minute and hour limits, it also supports custom +functions. -Additionally, a middleware component for the popular Go framework, Gin is included. Making it easier to add rate limits to APIs and web applications written in Go and running behind a load balancer (such as Amazon's ELB). +Additionally, a middleware component for the popular Go framework, Gin is +included. Making it easier to add rate limits to APIs and web applications +written in Go and running behind a load balancer (such as Amazon's ELB). diff --git a/projects/tutum-php.md b/projects/tutum-php.md index 4df37df16c2c5ffeb90191842d6a2ca9a58f2566..a479339adfe73ddc74022d4422e00d67aa392fdf 100644 --- a/projects/tutum-php.md +++ b/projects/tutum-php.md @@ -2,6 +2,7 @@ title: Tutum PHP platform: PHP github: etcinit/tutum-php +uuid: 5f4408cd-78e3-438e-bcca-eb256482f6da --- A PHP wrapper for Tutum's API. diff --git a/projects/vertex.md b/projects/vertex.md index 40bed4da633389ba742386d710ac836701bba720..89a30d82574e6b140c98e12be68243ab5ced066d 100644 --- a/projects/vertex.md +++ b/projects/vertex.md @@ -2,6 +2,7 @@ title: Vertex platform: Docker github: etcinit/vertex +uuid: 30734fb0-f328-41e2-8223-deb52cd7a2bc --- A Docker image that I created for some of my personal and work projects. diff --git a/site.hs b/site.hs index 1f49d847e306d0c4edd8d3fa67ade7f765c8f18e..80b1745b773c54bc661d24ee7e0747e7f387167f 100644 --- a/site.hs +++ b/site.hs @@ -22,7 +22,8 @@ data SiteConfiguration = SiteConfiguration -------------------------------------------------------------------------------- hakyllConf :: Configuration hakyllConf = defaultConfiguration - { deployCommand = "rsync -ave 'ssh' _site/* chromabits.com:www/chromabits" + { deployCommand = + "rsync -ave 'ssh' _site/* chromabits.com:/www/chromabits.com" } siteConf :: SiteConfiguration @@ -59,14 +60,24 @@ main = hakyllWith hakyllConf $ do route $ setExtension "css" compile copyFileCompiler + match "favicon.ico" $ do + route $ setExtension "ico" + compile copyFileCompiler + match "bower_components/font-awesome/fonts/*" $ do route $ gsubRoute "bower_components/font-awesome/" (const "") compile copyFileCompiler - match (fromList ["about.md"]) $ do + create ["404.html"] $ do route $ setExtension "html" compile $ pandocHtml5Compiler - >>= loadAndApplyTemplate "templates/default.html" defaultContext + >>= loadAndApplyTemplate "templates/default.html" siteCtx + >>= relativizeUrls + + create ["about.html"] $ do + route $ indexify `composeRoutes` setExtension "html" + compile $ pandocHtml5Compiler + >>= loadAndApplyTemplate "templates/default.html" siteCtx >>= relativizeUrls matchMetadata "posts/*" (M.member "legacy") $ version "legacy" $ do @@ -100,30 +111,41 @@ main = hakyllWith hakyllConf $ do >>= loadAndApplyTemplate "templates/default.html" ctx >>= relativizeUrls - match "projects/*" $ do + match "drafts/*" $ do route $ setExtension "html" + compile $ do + let ctx = constField "color" "red" `mappend` postCtx + + pandocHtml5Compiler + >>= loadAndApplyTemplate "templates/post.html" ctx + >>= loadAndApplyTemplate "templates/full-post.html" ctx + >>= loadAndApplyTemplate "templates/default.html" ctx + >>= relativizeUrls + + match "projects/*" $ do + route $ indexify `composeRoutes` setExtension "html" compile $ do compiled <- pandocHtml5Compiler full <- loadAndApplyTemplate "templates/project.html" - defaultContext compiled + siteCtx compiled teaser <- loadAndApplyTemplate "templates/project-teaser.html" - defaultContext $ dropMore compiled + siteCtx $ dropMore compiled saveSnapshot "teaser" teaser saveSnapshot "content" full - >>= loadAndApplyTemplate "templates/default.html" defaultContext + >>= loadAndApplyTemplate "templates/default.html" siteCtx >>= relativizeUrls create ["archive.html"] $ do - route idRoute + route indexify compile $ do posts <- recentFirst =<< loadAll ("posts/*" .&&. hasNoVersion) let archiveCtx = listField "posts" postCtx (return posts) `mappend` constField "title" "Archives" `mappend` - defaultContext + siteCtx makeItem "" >>= loadAndApplyTemplate "templates/archive.html" archiveCtx @@ -131,14 +153,14 @@ main = hakyllWith hakyllConf $ do >>= relativizeUrls create ["projects.html"] $ do - route idRoute + route indexify compile $ do projects <- loadAllSnapshots "projects/*" "teaser" let archiveCtx = - listField "posts" defaultContext (return projects) `mappend` + listField "posts" siteCtx (return projects) `mappend` constField "title" "Projects" `mappend` - defaultContext + siteCtx makeItem "" >>= loadAndApplyTemplate "templates/projects.html" archiveCtx @@ -187,14 +209,20 @@ main = hakyllWith hakyllConf $ do match "templates/*" $ compile templateCompiler -------------------------------------------------------------------------------- +siteCtx :: Context String +siteCtx = + constField "root" (siteRoot siteConf) `mappend` + constField "gaId" (siteGaId siteConf) `mappend` + defaultContext + postCtx :: Context String postCtx = dateField "date" "%B %e, %Y" `mappend` dateField "datetime" "%Y-%m-%d" `mappend` - defaultContext + siteCtx indexCtx :: Context String -indexCtx = defaultContext +indexCtx = siteCtx -------------------------------------------------------------------------------- colors :: [String] @@ -210,6 +238,13 @@ directorizeDate = customRoute (\i -> directorize $ toFilePath i) intersperse "/" date ++ ["/"] ++ intersperse "-" rest (date, rest) = splitAt 3 $ splitOn "-" path +indexify :: Routes +indexify = customRoute (\i -> addIndex $ toFilePath i) + where + addIndex path = original ++ "/index" ++ ext + where + (original, ext) = splitExtension path + grouper :: MonadMetadata m => [Identifier] -> m [[Identifier]] grouper ids = (liftM (paginateEvery 3) . sortRecentFirst) ids diff --git a/templates/default.html b/templates/default.html index 826b08fcf7d9e6af5d988545728a27dd27e6951e..2008c256b347a3df11e63f0aab0d4655bc564a20 100644 --- a/templates/default.html +++ b/templates/default.html @@ -21,9 +21,9 @@ </div> <div class="columns medium-6"> <ul class="menu align-right"> - <li><a href="/archive.html">Archive</a></li> - <li><a href="/projects.html">Projects</a></li> - <li><a href="/about.html">About</a></li> + <li><a href="/archive">Archive</a></li> + <li><a href="/projects">Projects</a></li> + <li><a href="/about">About</a></li> <li><a href="/">Home</a></li> </ul> </div> @@ -47,7 +47,15 @@ </div> </div> - <script src="https://cdnjs.cloudflare.com/ajax/libs/masonry/3.3.2/masonry.pkgd.min.js"> + <script> + var _gaq=[['_setAccount','$gaId$'],['_trackPageview']]; + (function(d,t){ + var g=d.createElement(t), + s=d.getElementsByTagName(t)[0]; + g.src=('https:'==location.protocol?'//ssl':'//www')+ + '.google-analytics.com/ga.js'; + s.parentNode.insertBefore(g,s) + }(document,'script')); </script> </body> </html> diff --git a/templates/disqus.html b/templates/disqus.html new file mode 100644 index 0000000000000000000000000000000000000000..793007c8fcbd471386b356fe9da3cea7725fc54d --- /dev/null +++ b/templates/disqus.html @@ -0,0 +1,22 @@ +<div id="disqus_thread"></div> +<script> +var disqus_config = function () { + this.page.url = '$url$'; + this.page.identifier = '$uuid$'; +}; + +(function() { +var d = document, s = d.createElement('script'); + +s.src = '//openwalls.disqus.com/embed.js'; + +s.setAttribute('data-timestamp', +new Date()); +(d.head || d.body).appendChild(s); +})(); +</script> +<noscript> + Please enable JavaScript to view the + <a href="https://disqus.com/?ref_noscript" rel="nofollow"> + comments powered by Disqus. + </a> +</noscript> diff --git a/templates/full-post.html b/templates/full-post.html index 75ee9d8fc28c241e5e3f9990d92c9eb31f2a381e..983922a5ca5133b33989549d3a5d2b81497f6c2c 100644 --- a/templates/full-post.html +++ b/templates/full-post.html @@ -1,24 +1,3 @@ $body$ -<div id="disqus_thread"></div> -<script> -var disqus_config = function () { - this.page.url = '$url$'; - this.page.identifier = '$uuid$'; -}; - -(function() { -var d = document, s = d.createElement('script'); - -s.src = '//openwalls.disqus.com/embed.js'; - -s.setAttribute('data-timestamp', +new Date()); -(d.head || d.body).appendChild(s); -})(); -</script> -<noscript> - Please enable JavaScript to view the - <a href="https://disqus.com/?ref_noscript" rel="nofollow"> - comments powered by Disqus. - </a> -</noscript> +$partial("templates/disqus.html")$ diff --git a/templates/pagination.html b/templates/pagination.html index 82b76586f70130110eecb32b956905964fb96d7f..257e2b2a410ca21549674a8670a2d7d45bda557f 100644 --- a/templates/pagination.html +++ b/templates/pagination.html @@ -25,7 +25,7 @@ </ul> <p><small> - …or you can find more in the <a href="/archive.html">archives</a>. + …or you can find more in the <a href="/archive">archives</a>. </small></p> </div> </div> diff --git a/templates/post-list.html b/templates/post-list.html index 71cf1b9767e95195a6f45ece33ae8c89e9b99ea8..f02e259366a06e6cf456e5bc2c7ad17de140b5e1 100644 --- a/templates/post-list.html +++ b/templates/post-list.html @@ -1,4 +1,4 @@ -<ul> +<ul class="no-bullet"> $for(posts)$ <li> <a href="$url$">$title$</a> - $date$ diff --git a/templates/project.html b/templates/project.html index 9f36a8cc82dbb3963fc1dde08fdafc775aa4a257..10dd69b9f6bf6bae101d4ffedf62a71fe454a34a 100644 --- a/templates/project.html +++ b/templates/project.html @@ -1,3 +1,54 @@ -<h2>$title$</h2> +<div class="row"> + <div class="medium-6 columns"> + <h2>$title$</h2> + + <p><span class="success label">$platform$</span></p> + </div> + + <div class="medium-6 columns text-right"> + <ul class="menu vertical"> + $if(github)$ + <li><a href="https://github.com/$github$"> + <i class="fa fa-github"></i> + View on GitHub + </a></li> + $endif$ + $if(docs)$ + <li><a href="$docs$"> + <i class="fa fa-book"></i> + Documentation + </a></li> + $endif$ + $if(sourcegraph)$ + <li><a href="$sourcegraph$"> + <i class="fa fa-asterisk"></i> + Sourcegraph + </a></li> + $endif$ + $if(post)$ + <li><a href="$post$"> + <i class="fa fa-file-text-o"></i> + Read blog post + </a></li> + $endif$ + $if(dockerhub)$ + <li><a href="https://hub.docker.com/$dockerhub$"> + <i class="fa fa-ship"></i> + DockerHub + </a></li> + $endif$ + $if(quay)$ + <li><a href="https://quay.io/$quay$"> + <i class="fa fa-ship"></i> + Quay.io + </a></li> + $endif$ + <ul/> + </div> +</div> + +<hr> $body$ + +$partial("templates/disqus.html")$ diff --git a/templates/projects.html b/templates/projects.html index 7d2c2ee60cdf56f9925733bda140b610433545b2..c6938d2e12c04e1b6abde32432ac6e9240fd3c95 100644 --- a/templates/projects.html +++ b/templates/projects.html @@ -13,3 +13,24 @@ </div> $endfor$ </div> + +<h3>More Open-Source Projects</h3> +<p> + You can find more projects (some of them Open Source) on my personal + Phabricator intance, GitHub and Bitbucket. Feel free to clone them and hack + stuff: +</p> + +<div class="button-group"> + <a class="button" href="//phabricator.chromabits.com"> + <i class="fa fa-cog"></i> + Phabricator + </a> + <a class="button" href="https://github.com/etcinit"> + <i class="fa fa-github"></i> + GitHub</a> + <a class="button" href="https://bitbucket.org/etcinit"> + <i class="fa fa-bitbucket"></i> + Bitbucket + </a> +</div>