<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>José Padilla</title><link>https://jpadilla.com/</link><description>Recent content on José Padilla</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Fri, 02 Sep 2022 19:30:22 +0000</lastBuildDate><atom:link href="https://jpadilla.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Installing pdfium in Mac OS</title><link>https://jpadilla.com/2022/09/02/installing-pdfium-in-mac-os/</link><pubDate>Fri, 02 Sep 2022 19:30:22 +0000</pubDate><guid>https://jpadilla.com/2022/09/02/installing-pdfium-in-mac-os/</guid><description>&lt;p&gt;TIL: How to install pdfium in Mac OS using the pre-compiled binaries provided by &lt;a href="https://github.com/bblanchon/pdfium-binaries"&gt;https://github.com/bblanchon/pdfium-binaries&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Twitter Account Suspended</title><link>https://jpadilla.com/2021/07/21/twitter-account-suspended/</link><pubDate>Wed, 21 Jul 2021 12:25:38 +0000</pubDate><guid>https://jpadilla.com/2021/07/21/twitter-account-suspended/</guid><description>&lt;p&gt;I woke up on June 16th to an email from Twitter stating that they had suspended my Twitter account. It stated that my account had been suspended for violating the Twitter Rules against posting violent threats. I knew I hadn&amp;#8217;t personally made those tweets.&lt;/p&gt;&#10;&lt;p&gt;I immediately thought my account had been compromised even though I had a strong password and two-factor authentication configured on it, somewhat possible I guess. I then thought about potentially leaked access tokens.&lt;/p&gt;</description></item><item><title>Figuring out the home network</title><link>https://jpadilla.com/2021/01/07/figuring-out-the-home-network/</link><pubDate>Thu, 07 Jan 2021 05:26:30 +0000</pubDate><guid>https://jpadilla.com/2021/01/07/figuring-out-the-home-network/</guid><description>&lt;figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"&gt;&lt;div class="wp-block-embed__wrapper"&gt;&#10;&lt;blockquote class="twitter-tweet" data-width="550" data-dnt="true"&gt;&lt;p lang="en" dir="ltr"&gt;After moving in to our new home ?, one of the first things I did was sign up for gigabit internet from &lt;a href="https://twitter.com/GoNetspeed?ref_src=twsrc%5Etfw"&gt;@GoNetspeed&lt;/a&gt;. &lt;br&gt;&lt;br&gt;The ONT is in a corner down in our basement and my office is in the second floor at the opposite side.&lt;br&gt;&lt;br&gt;Follow me as I figure shit out&amp;#8230;&lt;/p&gt;&amp;mdash; José Padilla (@jpadilla_) &lt;a href="https://twitter.com/jpadilla_/status/1346846766252118017?ref_src=twsrc%5Etfw"&gt;January 6, 2021&lt;/a&gt;&lt;/blockquote&gt;&lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;&#10;&lt;/div&gt;&lt;/figure&gt;&#10;&lt;p&gt;After moving in to our new home ?, one of the first things I did was sign up for gigabit internet from &lt;a href="https://twitter.com/GoNetspeed"&gt;@GoNetspeed&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;The ONT is in a corner down in our basement and my office is in the second floor at the opposite side.&lt;/p&gt;&#10;&lt;p&gt;Follow me as I figure shit out&amp;#8230;&lt;/p&gt;</description></item><item><title>Podcast: DjangoChat Ep. 45</title><link>https://jpadilla.com/2020/01/10/podcast-djangochat-ep-45/</link><pubDate>Fri, 10 Jan 2020 17:14:18 +0000</pubDate><guid>https://jpadilla.com/2020/01/10/podcast-djangochat-ep-45/</guid><description>&lt;p&gt;Back in November I was invited to &lt;a href="https://djangochat.com/episodes/authentication-jose-padilla"&gt;DjangoChat&lt;/a&gt; to talk about my contributions to the Django ecosystem. We talked about how I got started contributing to Django REST Framework and other open source projects, my work on Blimp and FilePreviews, authentication, and my current role at Auth0.&lt;/p&gt;</description></item><item><title>Talk: Python, Government, and Contracts</title><link>https://jpadilla.com/2019/10/05/talk-python-government-and-contracts/</link><pubDate>Sat, 05 Oct 2019 19:29:28 +0000</pubDate><guid>https://jpadilla.com/2019/10/05/talk-python-government-and-contracts/</guid><description>&lt;p&gt;Today, &lt;a href="https://twitter.com/skfroi"&gt;Froilán&lt;/a&gt; and I gave this talk at &lt;a href="https://2019.pygotham.org"&gt;PyGotham 2019&lt;/a&gt;.&lt;/p&gt;&#10;&lt;figure class="wp-block-embed-speaker-deck wp-block-embed is-type-rich is-provider-speaker-deck wp-embed-aspect-16-9 wp-has-aspect-ratio"&gt;&lt;div class="wp-block-embed__wrapper"&gt;&#10;&lt;iframe loading="lazy" title="Python, Government, and Contracts" id="talk_frame_560010" src="//speakerdeck.com/player/9238cfa5ea5c4452aa99ca19db6ebb17" width="750" height="421" style="border:0; padding:0; margin:0; background:transparent;" frameborder="0" allowtransparency="true" allowfullscreen="allowfullscreen" mozallowfullscreen="true" webkitallowfullscreen="true"&gt;&lt;/iframe&gt;&#10;&lt;/div&gt;&lt;/figure&gt;&#10;&lt;p&gt;&lt;strong&gt;Video&lt;/strong&gt;&lt;/p&gt;&#10;&lt;figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"&gt;&lt;div class="wp-block-embed__wrapper"&gt;&#10;&lt;span class="embed-youtube" style="text-align:center; display: block;"&gt;&lt;iframe loading="lazy" class="youtube-player" width="750" height="422" src="https://www.youtube.com/embed/8AkKtTXcPJU?version=3&amp;#038;rel=1&amp;#038;showsearch=0&amp;#038;showinfo=1&amp;#038;iv_load_policy=1&amp;#038;fs=1&amp;#038;hl=en-US&amp;#038;autohide=2&amp;#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation"&gt;&lt;/iframe&gt;&lt;/span&gt;&#10;&lt;/div&gt;&lt;/figure&gt;&#10;&lt;p&gt;Other links:&lt;/p&gt;&#10;&lt;ul&gt;&lt;li&gt;&lt;a href="https://speakerdeck.com/jpadilla/python-government-and-contracts"&gt;https://speakerdeck.com/jpadilla/python-government-and-contracts&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://contratospr.com/about"&gt;https://contratospr.com/about&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://github.com/theindexingproject/contratospr"&gt;http://github.com/theindexingproject/contratospr&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://github.com/theindexingproject/contratospr-api"&gt;http://github.com/theindexingproject/contratospr-api&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&#10;&lt;p&gt;Photo by&amp;nbsp;&lt;a href="https://unsplash.com/@jnnfrchn?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Jennifer Chen&lt;/a&gt;&amp;nbsp;on&amp;nbsp;&lt;a href="https://unsplash.com/s/photos/old-san-juan?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Home</title><link>https://jpadilla.com/home/</link><pubDate>Sat, 02 Jun 2018 17:26:42 +0000</pubDate><guid>https://jpadilla.com/home/</guid><description>&lt;p&gt;Home&lt;/p&gt;</description></item><item><title>Favorite PyCon 2018 Talks</title><link>https://jpadilla.com/2018/05/26/favorite-pycon-2018-talks/</link><pubDate>Sat, 26 May 2018 15:00:36 +0000</pubDate><guid>https://jpadilla.com/2018/05/26/favorite-pycon-2018-talks/</guid><description>&lt;p&gt;Finally caught up with most of the PyCon 2018 videos. Here are my favorite so far.&lt;/p&gt;&#10;&lt;hr /&gt;&#10;&lt;p&gt;Alex Gaynor &amp;#8211; Learning from Failure: Post Mortems&lt;/p&gt;&#10;&lt;p&gt;&lt;span class="embed-youtube" style="text-align:center; display: block;"&gt;&lt;iframe loading="lazy" class="youtube-player" width="750" height="422" src="https://www.youtube.com/embed/L9Y2ap6vIMg?version=3&amp;#038;rel=1&amp;#038;showsearch=0&amp;#038;showinfo=1&amp;#038;iv_load_policy=1&amp;#038;fs=1&amp;#038;hl=en-US&amp;#038;autohide=2&amp;#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation"&gt;&lt;/iframe&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;</description></item><item><title>Connecting to a VPN automatically when not at home</title><link>https://jpadilla.com/2018/04/04/connecting-to-a-vpn-automatically-when-not-at-home/</link><pubDate>Wed, 04 Apr 2018 14:58:51 +0000</pubDate><guid>https://jpadilla.com/2018/04/04/connecting-to-a-vpn-automatically-when-not-at-home/</guid><description>&lt;p&gt;&lt;img data-attachment-id="195" data-permalink="https://jpadilla.com/2018/04/04/connecting-to-a-vpn-automatically-when-not-at-home/pablo/" data-orig-file="/wp-content/uploads/2018/04/pablo.png" data-orig-size="1024,512" data-comments-opened="1" data-image-meta="{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}" data-image-title="" data-image-description="" data-image-caption="" data-medium-file="/wp-content/uploads/2018/04/pablo-300x150.png" data-large-file="/wp-content/uploads/2018/04/pablo-1024x512.png" decoding="async" loading="lazy" class="alignnone size-full wp-image-195" src="https://jpadilla.com/wp-content/uploads/2018/04/pablo.png" alt="" width="1024" height="512" srcset="https://jpadilla.com/wp-content/uploads/2018/04/pablo.png 1024w, https://jpadilla.com/wp-content/uploads/2018/04/pablo-300x150.png 300w, https://jpadilla.com/wp-content/uploads/2018/04/pablo-768x384.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /&gt;&lt;/p&gt;&#10;&lt;p&gt;When I&amp;#8217;m on my home Wi-Fi, I rarely connect to a VPN. When I&amp;#8217;m out, I always make the habit of doing so, except when I forget. I was hoping VPN clients would have a feature to automatically connect based on a list of networks, but after some quick research, I guess not. Maybe I&amp;#8217;m wrong, but ended up with this nifty solution. I&amp;#8217;m currently using &lt;a href="https://www.sparklabs.com/viscosity/"&gt;Viscosity&lt;/a&gt; as my VPN client, but should work similarly for other clients that allow some scripting.&lt;/p&gt;&#10;&lt;p&gt;</description></item><item><title>DevOpsCT Talk: osquery</title><link>https://jpadilla.com/2018/03/25/devopsct-talk-osquery/</link><pubDate>Sun, 25 Mar 2018 15:37:03 +0000</pubDate><guid>https://jpadilla.com/2018/03/25/devopsct-talk-osquery/</guid><description>&lt;p&gt;These are the slides for a recent talk on &lt;a href="https://osquery.io/"&gt;osquery&lt;/a&gt; I gave at a DevOpsCT meetup.&lt;/p&gt;&#10;&lt;p&gt;&lt;img data-attachment-id="154" data-permalink="https://jpadilla.com/2018/03/25/devopsct-talk-osquery/devopsct-february-001/" data-orig-file="/wp-content/uploads/2018/03/devopsct-february.001.jpeg" data-orig-size="1920,1080" data-comments-opened="1" data-image-meta="{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}" data-image-title="devopsct-february.001" data-image-description="" data-image-caption="" data-medium-file="/wp-content/uploads/2018/03/devopsct-february.001-300x169.jpeg" data-large-file="/wp-content/uploads/2018/03/devopsct-february.001-1024x576.jpeg" decoding="async" loading="lazy" class="alignnone size-full wp-image-154" src="https://jpadilla.com/wp-content/uploads/2018/03/devopsct-february.001.jpeg" alt="" width="1920" height="1080" srcset="https://jpadilla.com/wp-content/uploads/2018/03/devopsct-february.001.jpeg 1920w, https://jpadilla.com/wp-content/uploads/2018/03/devopsct-february.001-300x169.jpeg 300w, https://jpadilla.com/wp-content/uploads/2018/03/devopsct-february.001-768x432.jpeg 768w, https://jpadilla.com/wp-content/uploads/2018/03/devopsct-february.001-1024x576.jpeg 1024w" sizes="(max-width: 1920px) 100vw, 1920px" /&gt;&lt;/p&gt;&#10;&lt;p&gt;</description></item><item><title>Python Type Hints</title><link>https://jpadilla.com/2018/03/23/python-type-hints/</link><pubDate>Fri, 23 Mar 2018 02:48:49 +0000</pubDate><guid>https://jpadilla.com/2018/03/23/python-type-hints/</guid><description>&lt;p&gt;These are the slides for a recent 5 minute talk on Python Type Hints I gave at newhaven.io meetup. Slides are also available on &lt;a href="https://speakerdeck.com/jpadilla/python-type-hints"&gt;Speaker Deck&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;&lt;img data-attachment-id="107" data-permalink="https://jpadilla.com/2018/03/23/python-type-hints/nhv-python-typings-001/" data-orig-file="/wp-content/uploads/2018/03/nhv-python-typings.001.jpeg" data-orig-size="1024,768" data-comments-opened="1" data-image-meta="{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}" data-image-title="nhv-python-typings.001" data-image-description="" data-image-caption="&amp;lt;p&amp;gt;Let’s talk about type hints&amp;lt;/p&amp;gt;&#10;" data-medium-file="/wp-content/uploads/2018/03/nhv-python-typings.001-300x225.jpeg" data-large-file="/wp-content/uploads/2018/03/nhv-python-typings.001-1024x768.jpeg" decoding="async" loading="lazy" class="border alignnone wp-image-107 size-large" src="https://jpadilla.com/wp-content/uploads/2018/03/nhv-python-typings.001-1024x768.jpeg" alt="" width="525" height="394" srcset="https://jpadilla.com/wp-content/uploads/2018/03/nhv-python-typings.001.jpeg 1024w, https://jpadilla.com/wp-content/uploads/2018/03/nhv-python-typings.001-300x225.jpeg 300w, https://jpadilla.com/wp-content/uploads/2018/03/nhv-python-typings.001-768x576.jpeg 768w" sizes="(max-width: 525px) 100vw, 525px" /&gt;&lt;/p&gt;&#10;&lt;p&gt;</description></item><item><title>Running osquery on CoreOS</title><link>https://jpadilla.com/2018/01/25/running-osquery-on-coreos/</link><pubDate>Thu, 25 Jan 2018 16:26:08 +0000</pubDate><guid>https://jpadilla.com/2018/01/25/running-osquery-on-coreos/</guid><description>&lt;p&gt;&lt;img data-attachment-id="99" data-permalink="https://jpadilla.com/2018/01/25/running-osquery-on-coreos/coreos-osquery/" data-orig-file="/wp-content/uploads/2018/01/coreos-osquery.png" data-orig-size="600,300" data-comments-opened="1" data-image-meta="{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}" data-image-title="coreos-osquery" data-image-description="" data-image-caption="" data-medium-file="/wp-content/uploads/2018/01/coreos-osquery-300x150.png" data-large-file="/wp-content/uploads/2018/01/coreos-osquery.png" decoding="async" loading="lazy" class="alignnone size-full wp-image-99" src="https://jpadilla.com/wp-content/uploads/2018/01/coreos-osquery.png" alt="" width="600" height="300" srcset="https://jpadilla.com/wp-content/uploads/2018/01/coreos-osquery.png 600w, https://jpadilla.com/wp-content/uploads/2018/01/coreos-osquery-300x150.png 300w" sizes="(max-width: 600px) 100vw, 600px" /&gt;&lt;/p&gt;&#10;&lt;p&gt;Most things in CoreOS Container Linux can be run in containers, except when it doesn&amp;#8217;t make sense. Here&amp;#8217;s how I got &lt;a href="https://osquery.io"&gt;osquery&lt;/a&gt; up and running.&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;osquery is an operating system instrumentation framework for Windows, OS X (macOS), Linux, and FreeBSD. The tools make low-level operating system analytics and monitoring both performant and intuitive.&lt;/p&gt;&#10;&lt;p&gt;osquery exposes an operating system as a high-performance relational database. This allows you to write SQL queries to explore operating system data. With osquery, SQL tables represent abstract concepts such as running processes, loaded kernel modules, open network connections, browser plugins, hardware events or file hashes.&lt;/p&gt;&lt;/blockquote&gt;&#10;&lt;p&gt;</description></item><item><title>PGP Key Transition</title><link>https://jpadilla.com/2017/07/28/pgp-key-transition/</link><pubDate>Fri, 28 Jul 2017 13:06:54 +0000</pubDate><guid>https://jpadilla.com/2017/07/28/pgp-key-transition/</guid><description>&lt;p&gt;&lt;a href="https://keybase.io/jpadilla"&gt;Keybase&lt;/a&gt; | &lt;a href="https://gist.github.com/jpadilla/e36c0ff9b879e440c5be496afa782794"&gt;Gist&lt;/a&gt;&lt;/p&gt;&#10;&lt;pre&gt;&#10;-----BEGIN PGP SIGNED MESSAGE-----&#10;Hash: SHA512&#10;&lt;p&gt;PGP Key Transition Statement&#10;José Padilla&#10;Fri Jul 28 12:54:01 UTC 2017&lt;/p&gt;&#10;&lt;p&gt;I have created a new OpenPGP key and will be transitioning away from&#10;my old key. The old key has not been compromised and will continue to&#10;be valid for some time, but I prefer all future correspondence to be&#10;encrypted to the new key, and will be making signatures with the new&#10;key going forward.&lt;/p&gt;&#10;&lt;p&gt;I would like this new key to be re-integrated into the web of trust.&#10;This message is signed by both keys to certify the transition. My new&#10;and old keys are signed by each other. If you have signed my old key,&#10;I would appreciate signatures on my new key as well, provided that&#10;your signing policy permits that without re-authenticating me.&lt;/p&gt;&#10;&lt;p&gt;The old key, which I am transitioning away from, is:&lt;/p&gt;&#10;&lt;p&gt;pub 2048R/9B2987B1 2014-03-04&#10;Key fingerprint = 6120 BB14 9792 D8E9 A371 B03C AAE3 EF57 9B29 87B1&lt;/p&gt;&#10;&lt;p&gt;The new key, to which I am transitioning, is:&lt;/p&gt;&#10;&lt;p&gt;pub 4096R/B55434E2 2017-07-28&#10;Key fingerprint = 58FD 4723 5047 E944 BDE3 4DC7 9A11 1405 B554 34E2&lt;/p&gt;&#10;&lt;p&gt;I disown all other and prior keys, so please don&amp;rsquo;t use them.&#10;Specifically, the following keys are not valid for me:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;0x33CFB6D79478C173&lt;/li&gt;&#10;&lt;li&gt;0x56921E75F4A66D4C&lt;/li&gt;&#10;&lt;li&gt;0x7C09FCF380E5AFA3&lt;/li&gt;&#10;&lt;li&gt;0x55FCA69C27265701&lt;/li&gt;&#10;&lt;li&gt;0xAAE3EF579B2987B1 (as provided above)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The entire key may be downloaded from: &lt;a href="https://keybase.io/jpadilla/pgp_keys.asc?fingerprint=58fd47235047e944bde34dc79a111405b55434e2"&gt;&lt;a href="https://keybase.io/jpadilla/pgp_keys.asc?fingerprint=58fd47235047e944bde34dc79a111405b55434e2"&gt;https://keybase.io/jpadilla/pgp_keys.asc?fingerprint=58fd47235047e944bde34dc79a111405b55434e2&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;To fetch the full new key from a public key server using GnuPG, run:&lt;/p&gt;&#10;&lt;p&gt;gpg &amp;ndash;keyserver keys.gnupg.net &amp;ndash;recv-key B55434E2&lt;/p&gt;&#10;&lt;p&gt;If you already know my old key, you can now verify that the new key is&#10;signed by the old one:&lt;/p&gt;&#10;&lt;p&gt;gpg &amp;ndash;check-sigs B55434E2&lt;/p&gt;&#10;&lt;p&gt;If you are satisfied that you&amp;rsquo;ve got the right key, and the User IDs&#10;match what you expect, I would appreciate it if you would sign my key:&lt;/p&gt;&#10;&lt;p&gt;gpg &amp;ndash;sign-key B55434E2&lt;/p&gt;&#10;&lt;p&gt;You can upload your signatures to a public keyserver directly:&lt;/p&gt;&#10;&lt;p&gt;gpg &amp;ndash;keyserver pgp.mit.edu &amp;ndash;send-key B55434E2&lt;/p&gt;&#10;&lt;p&gt;Or email &lt;a href="mailto:identity@jpadilla.com"&gt;identity@jpadilla.com&lt;/a&gt; (possibly encrypted) the output from:&lt;/p&gt;&#10;&lt;p&gt;gpg &amp;ndash;armor &amp;ndash;export B55434E2&lt;/p&gt;&#10;&lt;p&gt;If you&amp;rsquo;d like any further verification or have any questions about the&#10;transition please contact me directly.&lt;/p&gt;&#10;&lt;p&gt;/jpadilla&#10;&amp;mdash;&amp;ndash;BEGIN PGP SIGNATURE&amp;mdash;&amp;ndash;&lt;/p&gt;&#10;&lt;p&gt;iQEcBAEBCgAGBQJZezRFAAoJEKrj71ebKYexuL0H/RG388KJwp+fWA8hR0jMrSFX&#10;OC4zgsMB6GLsSiZJhivDvYTXJdcFc2x6l9Cgh4YQTZwsDLsK2O7+Ao+AxcUAC5rQ&#10;zb2UIX6GzEly7i7+2HNKpv2AKcpdI5yNwuvjvTJMeivDAnSr9ymSTkbzIMyUuGkh&#10;bEuIodVuuf0jvrgECw8I8DLsyKPt3KkVPYjc1Ji3Q0w0uVtQhndvaD1Etc7wO3Vw&#10;h28Rkw7a6bK8Dt/ZmC+PI50/rKMDWPlSV2+ATCpitKZrDvEyk843d4ue39NaZ6uo&#10;rKLn6Fv0kZLZzX2VnEi64TKUfu7s2LzTOoKLT4km6M2ExcT7rj84nNlPCZrICluJ&#10;AhwEAQEKAAYFAll7NEUACgkQN2XJ6h5H7264vRAAtn7Z3rey+Hsi1g7tBEeYs0wY&#10;pjrn3hPQ5Ej1A+V5kpZuTH0Hh8TaW1LxmClRLE0jmMZV9bhRbCfyG9GMaSFeJp1W&#10;NXZAfXW2vtNurCKgsyBJhtk1MNZg7pbURvcaXifq+gt/Z7UZ6X/YlAfPLsmp22e+&#10;wVA7i0TUlXYcQOtNwhhDD2N/hoG1lMgB2XkC8uzvRIOn06kSneFORzegyeK60rBw&#10;GdbzhuQrkzqZ0inhuEIXzDHFA7yIfOKg3aabx4Mc/K++42iy+bBZzx9UDHGoKay3&#10;RSdnzRNCiQAL2S0Ckk+qo56rHzTqsz0XFtaLdMjp/c58knrLnVekMnPMJMXnnxwj&#10;dAzV31Lyxk4VZomw2z2PA/1R/C9bY2msJ5hCggqICguwM2bnRzn17mEawwAKTY0S&#10;rCK/744woagAa57muhVZyQk7eVXKxiS7EVjNGVM83jk0hwuUBv+v55Zawi3hm8fL&#10;RUMXwxIkv+HHD76x//mBmLOrjkdHMlZ1WyPiOFbRQrthpUabZ3V27h7IObsOZcbv&#10;S9e5hh69jEcOZffL/I5iuu4zc6Wcq3F7G5oiMoVGPUSUQUxhZtZX9OK1PzrMQezw&#10;2ejhY3+1ktS5rsPTMw6qjiei0E0MIa+Yluw2u6CeT7oxQlJXuSFKCQB1CAnEOE/l&#10;iWstOpXJiOkvoLtMrPM=&#10;=hyse&#10;&amp;mdash;&amp;ndash;END PGP SIGNATURE&amp;mdash;&amp;ndash;&lt;/p&gt;&#10;&lt;p&gt;&lt;/pre&gt;</description></item><item><title>Update Kubernetes Deployment after pushing image to Docker Hub</title><link>https://jpadilla.com/2017/05/27/update-kubernetes-deployment-after-pushing-image/</link><pubDate>Sat, 27 May 2017 23:41:13 +0000</pubDate><guid>https://jpadilla.com/2017/05/27/update-kubernetes-deployment-after-pushing-image/</guid><description>&lt;p&gt;&lt;img decoding="async" src="https://78.media.tumblr.com/c4997582846689384141fa68cca9053c/tumblr_inline_oqmzboqx9w1qcutq7_540.png" alt="image" /&gt;&lt;/p&gt;&#10;&lt;p&gt;I recently moved &lt;a href="http://filepreviews.io/"&gt;FilePreviews.io&lt;/a&gt;’s workers deployment to &lt;a href="https://kubernetes.io/"&gt;Kubernetes&lt;/a&gt; in Google Container Engine. After setting the workers up as a &lt;a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/"&gt;Deployment&lt;/a&gt; I wondered how this would fit with my current setup for continuous deployment. On a previous setup, I relied on &lt;a href="https://hub.docker.com"&gt;Docker Hub&lt;/a&gt; to automatically build, push tagged images, and notify &lt;a href="http://rancher.com/rancher/"&gt;Rancher&lt;/a&gt; via a webhook.&lt;/p&gt;&#10;&lt;p&gt;I ended up writing a small server to handle the webhook event from Docker Hub and PATCH the container’s image tags in the Kubernetes deployment which triggers a &lt;a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#updating-a-deployment"&gt;rollout&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Developer Ergonomics</title><link>https://jpadilla.com/2017/02/21/developer-ergonomics/</link><pubDate>Tue, 21 Feb 2017 20:25:49 +0000</pubDate><guid>https://jpadilla.com/2017/02/21/developer-ergonomics/</guid><description>&lt;p&gt;These are the slides for my PyCaribbean 2017 keynote on Developer Ergonomics where I talk about the current state of package managers in Python vs in other ecosystems like Node and Rust.&lt;/p&gt;&lt;/p&gt;</description></item><item><title>Looking backward and forward</title><link>https://jpadilla.com/2017/01/05/looking-backward-and-forward/</link><pubDate>Thu, 05 Jan 2017 15:30:35 +0000</pubDate><guid>https://jpadilla.com/2017/01/05/looking-backward-and-forward/</guid><description>&lt;p&gt;2016 was with no doubt an eventful year for many.&lt;/p&gt;&#10;&lt;p&gt;On March 12th, I married my high school sweetheart. We’d been together for around 9 years and engaged for like 4 of those. Best day ever.&lt;/p&gt;&#10;&lt;p&gt;During the last quarter of 2015, we cofounded Alias Payments to build &lt;a href="https://www.gasolinamovil.com/"&gt;Gasolina Móvil&lt;/a&gt;. We became part of &lt;a href="https://medium.com/@Parallel18/the-first-38-parallel18-announces-first-cohort-69eb3ea5439d#.mc9jv0mid"&gt;Parallel18′s first cohort&lt;/a&gt; and after six months we were closing a deal with PumaEnergy.&lt;/p&gt;&#10;&lt;p&gt;On August, my wife and I packed our things and moved to Hartford, CT for her doctoral internship. Its our first time living away from Puerto Rico, but we’re making it work. I’m still finding the right balance when working mostly from home. Since living in the East Coast, we drove to Québec City for my wife’s birthday, visited beautiful Boston way too many times, spent Thanksgiving in NYC with new friends, visited Stars Hollow(Washington Depot, CT), hiked some local trails, visited the casino at &lt;a href="https://mohegansun.com/"&gt;Mohegan Sun&lt;/a&gt; and more.&lt;/p&gt;</description></item><item><title>Upload files to S3 and generate previews using Laravel</title><link>https://jpadilla.com/2015/11/27/upload-files-to-s3-and-generate-previews-using/</link><pubDate>Fri, 27 Nov 2015 16:40:10 +0000</pubDate><guid>https://jpadilla.com/2015/11/27/upload-files-to-s3-and-generate-previews-using/</guid><description>&lt;p&gt;&lt;img decoding="async" src="https://api.monosnap.com/rpc/file/download?id=2rUEVE9GlZTxUpFJkW7HaKIkqhTg26" alt="" /&gt;&lt;/p&gt;&#10;&lt;p&gt;I recently put together a &lt;a href="https://github.com/getblimp/filepreviews-php"&gt;PHP client library&lt;/a&gt; for &lt;a href="http://filepreviews.io/"&gt;FilePreviews&lt;/a&gt; and immediately thought about putting together a blog post on how I’d use it. After 6 years, according to &lt;a href="https://github.com/jpadilla/codeigniter-s3-swfupload"&gt;this repo&lt;/a&gt;, of not writing a single line of PHP, I looked into Laravel since it seems to be the rave these days. Alright, let’s get to it.&lt;/p&gt;&#10;&lt;p&gt;This is a step by step guide on how to use Laravel to upload files to S3, and generate previews and extract metadata using &lt;a href="http://filepreviews.io/"&gt;FilePreviews.io&lt;/a&gt;. If you are already uploading files to S3 with Laravel, check out how to &lt;a href="#integrating-filepreviews"&gt;integrate with FilePreviews&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;&lt;!-- more --&gt;&lt;/p&gt;&#10;&lt;h1&gt;Create a Laravel project&lt;/h1&gt;&#10;&lt;p&gt;I’m assuming you’ll probably have composer already installed.&lt;/p&gt;&#10;&lt;pre class="prettyprint"&gt;&lt;code class="language-bash"&gt;$ composer create-project laravel/laravel --prefer-dist filepreviews-laravel-example&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h2&gt;Filesystem / Cloud Storage Setup&lt;/h2&gt;&#10;&lt;p&gt;In this example we&amp;rsquo;ll be using AWS S3 to store our files. After you&amp;rsquo;ve got a bucket and some credentials, let&amp;rsquo;s setup the project to use them.&lt;/p&gt;&#10;&lt;p&gt;First we&amp;rsquo;ll add S3 support to Laravel&lt;/p&gt;&#10;&lt;pre class="prettyprint"&gt;&lt;code class="language-bash"&gt;$ composer require league/flysystem-aws-s3-v3&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;Since no one want&amp;rsquo;s to commit their S3 credentials we&amp;rsquo;ll modify &lt;code&gt;config/filesystems.php&lt;/code&gt; to use environment variables.&lt;/p&gt;&#10;&lt;pre class="prettyprint"&gt;&lt;code class="language-bash"&gt;'s3' =&amp;gt; [&#10; 'driver' =&amp;gt; 's3',&#10; 'key' =&amp;gt; env('S3_KEY'),&#10; 'secret' =&amp;gt; env('S3_SECRET'),&#10; 'region' =&amp;gt; env('S3_REGION'),&#10; 'bucket' =&amp;gt; env('S3_BUCKET'),&#10;],&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;Now add your corresponding credentials to your project&amp;rsquo;s &lt;code&gt;.env&lt;/code&gt; file.&lt;/p&gt;&#10;&lt;pre class="prettyprint"&gt;&lt;code&gt;S3_KEY=YOUR_AWS_S3_ACCESS_KEY&#10;S3_SECRET=YOUR_AWS_S3_SECRET_KEY&#10;S3_REGION=us-east-1&#10;S3_BUCKET=YOUR_AWS_S3_BUCKET&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h2&gt;Database&lt;/h2&gt;&#10;&lt;p&gt;We&amp;rsquo;ll use sqlite in this example instead of Laravel&amp;rsquo;s default which is MySQL. Set &lt;code&gt;DB_CONNECTION&lt;/code&gt; to &lt;code&gt;sqlite&lt;/code&gt; in your project&amp;rsquo;s &lt;code&gt;.env&lt;/code&gt; file.&lt;/p&gt;&#10;&lt;p&gt;You&amp;rsquo;ll also need to create an empty sqlite database file: &lt;code&gt;storage/database.sqlite&lt;/code&gt;.&lt;/p&gt;&#10;&lt;h2&gt;Model&lt;/h2&gt;&#10;&lt;p&gt;Now we need to create a Document model. Our Document model will have a &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;file&lt;/code&gt;(a URL on S3 to our original file), &lt;code&gt;preview_url&lt;/code&gt;(a URL to a preview generated by FilePreviews), and &lt;code&gt;preview&lt;/code&gt;(a JSON string containing all the results and metadata generated by FilePreviews.&lt;/p&gt;&#10;&lt;p&gt;First we&amp;rsquo;ll generate our model and it&amp;rsquo;s pertaining migration file.&lt;/p&gt;&#10;&lt;pre class="prettyprint"&gt;&lt;code class="language-bash"&gt;$ php artisan make:model Document --migration&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;We need to add the rest of our fields to that migration before running it. You&amp;rsquo;ll find the migration inside the &lt;code&gt;database/migrations&lt;/code&gt; directory. It&amp;rsquo;ll be named something like &lt;code&gt;2015_11_25_125309_create_documents_table.php&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;Make sure the &lt;code&gt;up()&lt;/code&gt; function looks like the following.&lt;/p&gt;&#10;&lt;pre class="prettyprint"&gt;&lt;code class="language-php"&gt;public function up()&#10;{&#10; Schema::create('documents', function (Blueprint $table) {&#10; $table-&amp;gt;increments('id');&#10; $table-&amp;gt;string('name');&#10; $table-&amp;gt;string('file');&#10; $table-&amp;gt;string('preview_url')-&amp;gt;nullable();&#10; $table-&amp;gt;json('preview')-&amp;gt;nullable();&#10; $table-&amp;gt;timestamps();&#10; });&#10;}&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;Now run your migrations.&lt;/p&gt;&#10;&lt;pre class="prettyprint"&gt;&lt;code class="language-bash"&gt;$ php artisan migrate&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h2&gt;Controllers&lt;/h2&gt;&#10;&lt;p&gt;Our simple application will allow you to list existing documents and create new ones. To &lt;em&gt;simplify&lt;/em&gt; things a bit we&amp;rsquo;ll generate a resource controller.&lt;/p&gt;&#10;&lt;pre class="prettyprint"&gt;&lt;code class="language-bash"&gt;$ php artisan make:controller DocumentController&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;Let&amp;rsquo;s go ahead and add that to our routes.&lt;/p&gt;&#10;&lt;pre class="prettyprint"&gt;&lt;code class="language-php"&gt;Route::resource('documents', 'DocumentController');&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;Next we&amp;rsquo;ll configure our controller&amp;rsquo;s functions, &lt;code&gt;index&lt;/code&gt; which will render our list of documents, and &lt;code&gt;create&lt;/code&gt; which will render our form.&lt;/p&gt;&#10;&lt;pre class="prettyprint"&gt;&lt;code class="language-php"&gt;&amp;lt;?php&#10;&lt;p&gt;namespace AppHttpControllers;&lt;/p&gt;&#10;&lt;p&gt;use IlluminateHttpRequest;&lt;/p&gt;&#10;&lt;p&gt;use AppDocument;&#10;use AppHttpRequests;&#10;use AppHttpControllersController;&lt;/p&gt;&#10;&lt;p&gt;class DocumentController extends Controller&#10;{&#10;/**&#10;* Display a listing of the resource.&#10;*&#10;* @return IlluminateHttpResponse&#10;*/&#10;public function index()&#10;{&#10;$documents = Document::all();&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt; return view('documents.index', compact('documents'));&#10;}&#10;&#10;/**&#10; * Show the form for creating a new resource.&#10; *&#10; * @return IlluminateHttpResponse&#10; */&#10;public function create()&#10;{&#10; return view('documents.create');&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;</description></item><item><title>Touch Typing and Programming</title><link>https://jpadilla.com/2015/09/02/touch-typing-and-programming/</link><pubDate>Wed, 02 Sep 2015 14:34:52 +0000</pubDate><guid>https://jpadilla.com/2015/09/02/touch-typing-and-programming/</guid><description>&lt;figure class="tmblr-full"&gt;&lt;img decoding="async" src="https://78.media.tumblr.com/5a07b222a67a950bfde09ec101594ca0/tumblr_inline_ntv791pdLS1qcutq7_540.jpg" alt="image" /&gt;&lt;/figure&gt;&#10;&lt;p&gt;Programmers solve problems and &lt;i&gt;most of the time&lt;/i&gt; use a keyboard to do so.&lt;/p&gt;&#10;&lt;p&gt;I firmly believe you need to be able to efficiently express yourself through typing. There’s probably nothing more fundamental in programming than being able to think of something and expressing it in code without losing your train of thought.&lt;/p&gt;&#10;&lt;p&gt;I say efficiently and not perfectly. You don’t have to be the fastest typist in the  west but speed helps. I could make up a couple of “imagine a surgeon that didn’t know the way around a scalpel” or “a baseball player that didn’t know how to swing” but I wont, you probably get the picture.&lt;/p&gt;</description></item><item><title>Juice Box</title><link>https://jpadilla.com/2015/04/22/juice-box/</link><pubDate>Wed, 22 Apr 2015 15:41:18 +0000</pubDate><guid>https://jpadilla.com/2015/04/22/juice-box/</guid><description>&lt;figure&gt;&lt;img decoding="async" src="https://cloud.githubusercontent.com/assets/83319/6881507/2d79b776-d538-11e4-853a-f4390f324042.png" alt="image" /&gt;&lt;/figure&gt;&#10;&lt;p&gt;A month ago I decided to take another stab at proposing a solution to allow all of us to keep working on great programming workshops.&lt;/p&gt;&#10;&lt;p&gt;&#10;Personally, the biggest headache in each and every one of the workshops that I have organized or participated in is the time and effort it takes to configure and setup the attendees&amp;rsquo; computers. This results in attendees and instructors loosing valuable time that can be spent actually sharing knowledge. Various other people have shared the same worries and feelings about this, so might as well try and do something about it.&#10;&lt;/p&gt;</description></item><item><title>Mako &amp; Oliver</title><link>https://jpadilla.com/2015/02/14/mako-oliver/</link><pubDate>Sat, 14 Feb 2015 17:04:00 +0000</pubDate><guid>https://jpadilla.com/2015/02/14/mako-oliver/</guid><description>&lt;p&gt;Three weeks ago today, on an unfortunate accident, Mako my 6 year old Siberian Husky escaped from home, and we noticed just a couple of hours later. After endless hours, driving around different possible routes, talking to people, calling out his name, posting hundreds of flyers, hundreds of people sharing on Facebook and Twitter, we haven’t found him yet.&lt;/p&gt;&#10;&lt;p&gt;Mako is more than a dog or pet to me, he’s a loyal friend, and we’ve been through a lot. This past weeks have been eternally tough for us. We’re still looking for him every day, we’re still receiving calls of people who’ve seen similar dogs around, I drive with my windows down in hope of hearing that beautiful distinct howl. We’re hopeful that perhaps a loving and caring family found him, rescued him, and has fallen in love with him. But we’re still not giving up.&lt;/p&gt;</description></item><item><title>Top 20 Hacker and Designer News 2014</title><link>https://jpadilla.com/2014/12/30/top-20-hacker-and-designer-news-2014/</link><pubDate>Tue, 30 Dec 2014 14:07:00 +0000</pubDate><guid>https://jpadilla.com/2014/12/30/top-20-hacker-and-designer-news-2014/</guid><description>&lt;p&gt;Last year around this same date I started &lt;a href="http://hdn.io/"&gt;The Hacker and Designer News&lt;/a&gt; newsletter as a weekly curated recap of the what I thought were the best articles from Hacker News and Designer News on startups, entrepreneurship, hacks, programming, design, etc. I built and open sourced an &lt;a href="https://github.com/jpadilla/hackerdesignernews"&gt;aggregator&lt;/a&gt; to help me collect posts. I later built &lt;a href="http://news.hdn.io/"&gt;news.hdn.io&lt;/a&gt; using that same aggregator to view the current top posts on both sites side-by-side.&lt;/p&gt;&#10;&lt;p&gt;Learned a couple of things from building a newsletter, missed a couple along the way, but definitely looking forward to ramp up subscribers throughout 2015. If you still haven&amp;rsquo;t, feel free to check out &lt;a href="http://hdn.io/#issues"&gt;past issues&lt;/a&gt; and &lt;a href="http://hdn.io/"&gt;subscribe&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>File Uploads + CORS + IE</title><link>https://jpadilla.com/2014/10/25/file-uploads-cors-ie/</link><pubDate>Sat, 25 Oct 2014 16:14:00 +0000</pubDate><guid>https://jpadilla.com/2014/10/25/file-uploads-cors-ie/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/91188bdaa6cb5ce4fd4d8c668acf934e/tumblr_inline_ne0dskRWxu1qcutq7.jpg" /&gt;&lt;/p&gt;&#10;&lt;p&gt;Supporting Internet Explorer is always kind of a drag, but sometimes you just have to. Adding to the mixture file uploads via AJAX and CORS only make it that much more fun.&lt;/p&gt;&#10;&lt;p&gt;&lt;!-- more --&gt;When dealing with AJAX file uploads I always seem to keep going back to jQuery File Upload. Making these file uploads work on IE require fallback to using an iframe, which is supposed to work automatically almost right of the box. I encountered some issues, maybe it was the slack of sleep, reading outdated Stack Overflow answers or simply not understanding the documentation that well.&lt;/p&gt;</description></item><item><title>Backup OpenPGP keys on paper</title><link>https://jpadilla.com/2014/10/18/backup-openpgp-keys-on-paper/</link><pubDate>Sat, 18 Oct 2014 22:15:00 +0000</pubDate><guid>https://jpadilla.com/2014/10/18/backup-openpgp-keys-on-paper/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/8e14ce7a9439321fab3c3ab9f32c3de5/tumblr_inline_ndnuy1mWll1qcutq7.jpg" /&gt;&lt;/p&gt;&#10;&lt;p&gt;Recently I remember I was keeping a backup of my OpenPGP keys on an external hard drive that any day now could just cease to work. After my first attempts with PGP/GPG where I lost my private keys and could no longer revoke them, I wasn&amp;rsquo;t planning on loosing another one again.&lt;/p&gt;&#10;&lt;p&gt;After reading what &lt;a href="http://security.stackexchange.com/questions/51771/where-do-you-store-your-personal-private-gpg-key"&gt;others&lt;/a&gt; did to store their private PGP keys, I figured that the best way to store them was on paper. That&amp;rsquo;s where &lt;a href="http://www.jabberwocky.com/software/paperkey/"&gt;paperkey&lt;/a&gt; comes along. Paperkey is an OpenPGP key archiver by David Shaw, &lt;span&gt;one of the main GPG developers.&lt;/span&gt;&lt;/p&gt;</description></item><item><title>My talk on JSON Web Tokens at DjangoCon US 2014</title><link>https://jpadilla.com/2014/09/27/my-talk-on-json-web-tokens-at-djangocon-us-2014/</link><pubDate>Sat, 27 Sep 2014 02:18:00 +0000</pubDate><guid>https://jpadilla.com/2014/09/27/my-talk-on-json-web-tokens-at-djangocon-us-2014/</guid><description>&lt;p&gt;I had a great time at DjangoCon US 2014. Lots of first times.&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;First time at DjangoCon&lt;/li&gt;&#10;&lt;li&gt;First time speaking at DjangoCon&lt;/li&gt;&#10;&lt;li&gt;First time speaking in front of &amp;ldquo;large&amp;rdquo; crowd.&lt;/li&gt;&#10;&lt;li&gt;First time visiting the west coast&lt;/li&gt;&#10;&lt;li&gt;First time visiting Portland&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Special thanks to &lt;a href="http://blimp.io"&gt;Blimp&lt;/a&gt; for enabling me to do this. Thanks to the DSF&amp;rsquo;s grant which made the trip financially possible. Thanks &lt;a href="https://twitter.com/skfroi"&gt;Froi&lt;/a&gt; and &lt;a href="https://twitter.com/SashaM_PR"&gt;Sasha&lt;/a&gt; for coming along, all the support, and making the trip way more fun.&lt;/p&gt;</description></item><item><title>Django REST framework Sprint at DjangoCon US 2014</title><link>https://jpadilla.com/2014/08/21/django-rest-framework-sprint-at-djangocon-us-2014/</link><pubDate>Thu, 21 Aug 2014 18:22:00 +0000</pubDate><guid>https://jpadilla.com/2014/08/21/django-rest-framework-sprint-at-djangocon-us-2014/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/19f1f989800ca5883a85588054269141/tumblr_inline_nanunj1pQz1qcutq7.png" /&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;span&gt;This&amp;rsquo;ll be my first time attending and &lt;/span&gt;&lt;a href="http://www.djangocon.us/schedule/presentation/51/" target="_blank"&gt;speaking&lt;/a&gt;&lt;span&gt; at DjangoCon US. I&amp;rsquo;ll be talking about JSON Web Tokens, Django, and Django REST Framework.&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;span&gt;I&amp;rsquo;ve been talking about working on a Sprint for Django REST Framework with Tom Christie on &lt;/span&gt;&lt;a href="https://twitter.com/_tomchristie/status/502087411544129537" target="_blank"&gt;Twitter&lt;/a&gt;&lt;span&gt;. Tom pointed out a &lt;/span&gt;&lt;a href="https://github.com/tomchristie/django-rest-framework/issues?q=is%3Aopen+is%3Aissue" target="_blank"&gt;list of decent candidates&lt;/a&gt;&lt;span&gt; to work on if we get some people together. We&amp;rsquo;ll have a tagged list of obvious bug candidates before the sprint. He&amp;rsquo;s also planning on helping us out remotely those days.&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Getting started with Go</title><link>https://jpadilla.com/2014/07/30/getting-started-with-go/</link><pubDate>Wed, 30 Jul 2014 10:52:00 +0000</pubDate><guid>https://jpadilla.com/2014/07/30/getting-started-with-go/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/2d8b47518afbc0a63dd2005bfd60910c/tumblr_inline_n9dkuzlMBL1qcutq7.png" /&gt;&lt;/p&gt;&#10;&lt;p&gt;I&amp;rsquo;ve been using Python for a quite a few years as my main go-to language for building web apps, RESTful API&amp;rsquo;s, utilities, and much more. It&amp;rsquo;s the driving power for most of our backends at our startup: Blimp, Blimp Boards, and FilePreviews. I have very few bad things I could argue about Python, but I won&amp;rsquo;t.&lt;/p&gt;&#10;&lt;p&gt;I&amp;rsquo;ve recently felt the need to dig into newer programming languages and technologies. One of the languages I&amp;rsquo;ve been wanting to try out for a while now is Go. So I did, and here&amp;rsquo;s why and a couple of resources that helped me out. The first thing I did was read up &lt;a href="http://golang.org/doc/"&gt;about Go&lt;/a&gt; for a few days.&lt;/p&gt;</description></item><item><title>Getting started with Ember.js</title><link>https://jpadilla.com/2014/07/24/getting-started-with-emberjs/</link><pubDate>Thu, 24 Jul 2014 19:51:00 +0000</pubDate><guid>https://jpadilla.com/2014/07/24/getting-started-with-emberjs/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/a89c9f07337f23689adc6d94cc485dad/tumblr_inline_n98f78HQXl1qcutq7.png" /&gt;&lt;/p&gt;&#10;&lt;p&gt;I played around with &lt;a href="http://emberjs.com/"&gt;Ember.js&lt;/a&gt; on and off last year and after building some quick &lt;a href="http://jpadilla.com/post/61020088469/ember-js-demo-app-1-poe"&gt;demos&lt;/a&gt; I decided to invest some real time in building real web apps with it. I have been keeping track of some useful tips and resources for people starting out with Ember.js.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Ember.js Guides&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;The official &lt;a href="http://emberjs.com/guides/"&gt;Ember.js Guides and Tutorials&lt;/a&gt; walks you through the very basic concepts for someone starting out, and slowly getting into more &amp;ldquo;advanced&amp;rdquo; concepts and features. Those guides are truly written in a simple to understand tone only using technical jargon where necessary. I definitely suggest going over these guides before starting out with Ember. I&amp;rsquo;ve kept them handy since they are also useful for future reference.&lt;/p&gt;</description></item><item><title>Barcamp Viejo San Juan</title><link>https://jpadilla.com/2014/05/17/barcamp-viejo-san-juan/</link><pubDate>Sat, 17 May 2014 23:15:00 +0000</pubDate><guid>https://jpadilla.com/2014/05/17/barcamp-viejo-san-juan/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/220d1a8aceadbbf465bd30187e792b46/tumblr_inline_n5od82tj8u1qcutq7.png" /&gt;&lt;/p&gt;&#10;&lt;p&gt;Last Barcamp we organized was back in &lt;a href="https://www.facebook.com/events/174045022700218/" target="_blank"&gt;2012&lt;/a&gt; in Mayagüez. The one before that was in &lt;a href="https://www.facebook.com/events/181972425167601/"&gt;2011&lt;/a&gt;, and the first one was back in &lt;a href="https://www.facebook.com/events/156500124382305/"&gt;2010&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;We already have a date for the next Barcamp Viejo San Juan, Tuesday, &lt;strong&gt;June 3 at 7PM&lt;/strong&gt;. This time we&amp;rsquo;ll be meeting at &lt;strong&gt;&lt;a href="http://www.piloto151.com/"&gt;Piloto151&lt;/a&gt;&lt;/strong&gt; in Old San Juan.&lt;/p&gt;&#10;&lt;p&gt;For those that don&amp;rsquo;t know what a Barcamp is, Barcamp is a conference in which the guests become the event speakers. We expect everybody to make a 10 minute presentation to the rest of the audience. The idea is to encourage the exchange of ideas in an open and interactive environment.&lt;/p&gt;</description></item><item><title>Internet Speed Tests on a Raspberry Pi</title><link>https://jpadilla.com/2014/02/20/internet-speed-tests-on-a-raspberry-pi/</link><pubDate>Thu, 20 Feb 2014 03:25:00 +0000</pubDate><guid>https://jpadilla.com/2014/02/20/internet-speed-tests-on-a-raspberry-pi/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="http://i.imgur.com/5hXesG1.jpg" /&gt;&lt;/p&gt;&#10;&lt;p&gt;A couple of weeks ago &lt;a href="https://plus.google.com/114378675842551786487/posts/iLtfoJLkvkN"&gt;soynerdito soynerdito&lt;/a&gt; shared a bot he made to tweet internet connection speed results every now and then.&lt;/p&gt;&#10;&lt;p&gt;I then remembered I had a Raspberry Pi I wasn&amp;rsquo;t using at all. So I built a small app that runs speed tests every 3 hours. It&amp;rsquo;s based on &lt;a href="https://github.com/sivel/speedtest-cli" target="_blank"&gt;speedtest-cli&lt;/a&gt; which is a Command line interface for testing internet bandwidth using speedtest.net.&lt;/p&gt;&#10;&lt;p&gt;&lt;!-- more --&gt;&lt;/p&gt;&#10;&lt;p&gt;The only difference with the one I built is that instead of tweeting the results, it posted all available data to an endpoint. I built a Flask app that can be used to store those results for different users as well as share them via a JSON API.&lt;/p&gt;&#10;&lt;p&gt;If you&amp;rsquo;re interested in running your own, check this &lt;a href="https://gist.github.com/jpadilla/8843461" target="_blank"&gt;Gist&lt;/a&gt; out. It contains a README file that will help you setup your box(doesn&amp;rsquo;t have to be a Raspberry Pi). It also includes a sample Flask app to store your own results. If you&amp;rsquo;re interested in using the one I&amp;rsquo;m hosting you could do so, just let me know and I&amp;rsquo;ll send you a URL to store results and one to share or consume. It&amp;rsquo;d be interesting to see different kinds of results at a larger scale, not just my own.&lt;/p&gt;&#10;&lt;p&gt;Here are the results graphed since I started running it. Interesting to see how so many spikes in my download speeds. Those are probably related to download in other computers or probably streaming Netflix. Upload speed as expected doesn&amp;rsquo;t really fluctuate that much.&lt;/p&gt;&#10;&lt;/p&gt;</description></item><item><title>The easiest way to add WebSockets to Django</title><link>https://jpadilla.com/2014/01/24/the-easiest-way-to-add-websockets-to-django/</link><pubDate>Fri, 24 Jan 2014 16:27:00 +0000</pubDate><guid>https://jpadilla.com/2014/01/24/the-easiest-way-to-add-websockets-to-django/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="http://i.imgur.com/Lpf9jhu.jpg" /&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; &amp;#8211; I came up with a very simple solution to handle WebSockets in Django apps. You just install &lt;a href="https://github.com/GetBlimp/django-websocket-request" target="_blank"&gt;django-websocket-request&lt;/a&gt;, run a script and you have WebSockets for your Django app. The cool thing is that this solution makes Django believe its getting a (somewhat) normal HTTP request so you can reuse almost all of you application&amp;rsquo;s code. Plays nicely with Django REST Framework and with plain function-based views and class-based views. Check out the &lt;a href="https://github.com/GetBlimp/django-websocket-request-example" target="_blank"&gt;demo&lt;/a&gt; and it&amp;rsquo;s source code on &lt;a href="https://github.com/GetBlimp/django-websocket-request-example" target="_blank"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Auth with JSON Web Tokens</title><link>https://jpadilla.com/2014/01/19/auth-with-json-web-tokens/</link><pubDate>Sun, 19 Jan 2014 04:03:00 +0000</pubDate><guid>https://jpadilla.com/2014/01/19/auth-with-json-web-tokens/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="http://i.imgur.com/VBN5fJw.jpg" /&gt;&lt;/p&gt;&#10;&lt;p&gt;When it comes to implementing authentication on web apps, one solution you’ll definitely hear about first are cookies. Cookie-based authentication uses a server side cookies to authenticate the user on every request. This means that you’ll need to keep a session store, whether it’s on a database or on something like Redis. A solution you’ll probably not hear as often is token-based authentication which relies on a signed token that is sent to the server on each request.&lt;/p&gt;</description></item><item><title>The Hacker and Designer News Newsletter</title><link>https://jpadilla.com/2013/12/10/the-hacker-and-designer-news-newsletter/</link><pubDate>Tue, 10 Dec 2013 16:01:00 +0000</pubDate><guid>https://jpadilla.com/2013/12/10/the-hacker-and-designer-news-newsletter/</guid><description>&lt;p&gt;&lt;a href="http://hdn.io"&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/39787b727e561a42f6510a8fd7ec3bd0/tumblr_inline_mxlfr6UOnJ1qcutq7.png" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;After recently &lt;a href="http://jpadilla.com/post/69369420491/scraper-and-web-api-for-the-news"&gt;building a scraper and web API for The News&lt;/a&gt;, I thought  it’d be a cool idea to use that data somehow. First thing that came to mind was to build a newsletter. And so &lt;a href="http://hdn.io"&gt;The Hacker and Designer News Newsletter&lt;/a&gt; was built.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Newsletter&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Every week I&amp;rsquo;ll send a newsletter with a curated recap of the week’s best articles from Hacker News and Designer News on startups, entrepreneurship, hacks, programming, design, and more. Something I may consider for the new future is allowing people to subscribe to a simple and shorter daily recap.&lt;/p&gt;</description></item><item><title>Scraper and Web API for The News</title><link>https://jpadilla.com/2013/12/08/scraper-and-web-api-for-the-news/</link><pubDate>Sun, 08 Dec 2013 12:51:00 +0000</pubDate><guid>https://jpadilla.com/2013/12/08/scraper-and-web-api-for-the-news/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/71bd06890724b6200b7fa9f387743975/tumblr_inline_mxhmrbAiJA1qcutq7.png" /&gt;&lt;/p&gt;&#10;&lt;p&gt;I recently found out about &lt;a href="http://thenews.im/"&gt;http://thenews.im&lt;/a&gt; thanks to &lt;a href="http://twitter.com/gcollazo"&gt;@gcollazo&lt;/a&gt;. The News is &lt;span&gt;a pretty cool project by &lt;/span&gt;&lt;a href="http://ahmetsulek.com/"&gt;ahmetsulek&lt;/a&gt;&lt;span&gt; that brings together under one same site LayerVault&amp;#8217;s &lt;/span&gt;&lt;a href="https://news.layervault.com/stories"&gt;Designer News&lt;/a&gt;&lt;span&gt; and Y Combinator&amp;#8217;s &lt;/span&gt;&lt;a href="https://news.ycombinator.com/"&gt;Hacker News&lt;/a&gt;.&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;I decided to take advantage of having all those posts from two different sources together and built a scraper for it with Node.js. Once I had all the posts stored and updated on my side I thought it&amp;rsquo;d be cool to implement a JSON endpoint to allow anyone to use the data however they want. &lt;/p&gt;&#10;&lt;p&gt;Example:&lt;/p&gt;&#10;&lt;/p&gt;</description></item><item><title>Traveling to Boston</title><link>https://jpadilla.com/2013/11/29/traveling-to-boston/</link><pubDate>Fri, 29 Nov 2013 21:59:00 +0000</pubDate><guid>https://jpadilla.com/2013/11/29/traveling-to-boston/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/2edf75b2196ad17dab4fe9ca9edc8632/tumblr_inline_mx1p4fmr6R1qcutq7.jpg" /&gt;&lt;/p&gt;&#10;&lt;p&gt;I&amp;rsquo;ll be visiting Boston for the very first time with my lovely wifey from December 11th to December 15th. It&amp;rsquo;s definitely not a lot of time for a first time visit, but we want to make the best out of it.&lt;/p&gt;&#10;&lt;p&gt;Since she&amp;rsquo;ll be two days in a conference, I&amp;rsquo;ll probably doing some walking and sightseeing to visit meet any startups and local hackers that are up for it. &lt;/p&gt;</description></item><item><title>A hub for all events of interests to Startups of Puerto Rico</title><link>https://jpadilla.com/2013/10/30/a-hub-for-all-events-of-interests-to-startups-of/</link><pubDate>Wed, 30 Oct 2013 11:16:00 +0000</pubDate><guid>https://jpadilla.com/2013/10/30/a-hub-for-all-events-of-interests-to-startups-of/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/c2aac113353ec8bddd48ef471773fbfa/tumblr_inline_mvh7w847us1qcutq7.png" /&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://ryanoliver.co"&gt;Ryan Oliver&lt;/a&gt; has done a fantastic job at keeping the Startups of Puerto Rico community posted with all the recent events that have been popping up. If you are signed up at &lt;a href="http://startupsofpuertorico.com"&gt;startupsofpuertorico.com&lt;/a&gt; you should have received some emails with the events that we recommend you checking out in previous weeks, as well as those that are on the horizon.&lt;/p&gt;&#10;&lt;p&gt;Now we’ve got an awesome working &lt;a href="http://startupsofpuertorico.com/events"&gt;Events&lt;/a&gt; section. The idea behind this section is to be a central hub of all the events happening around that are of interest to community members, not to replace Facebook Events, Eventbrite or Meetup. You’ll still receive an ocasional email with upcoming events. You can also subscribe to these events via an &lt;a href="webcal://startupsofpuertorico.com/events.ics"&gt;iCalendar&lt;/a&gt; or &lt;a href="http://feedpress.me/sopr"&gt;RSS&lt;/a&gt; feed.&lt;/p&gt;</description></item><item><title>Ember.js + Django</title><link>https://jpadilla.com/2013/09/26/emberjs-django/</link><pubDate>Thu, 26 Sep 2013 22:40:00 +0000</pubDate><guid>https://jpadilla.com/2013/09/26/emberjs-django/</guid><description>&lt;p&gt;Quick deck about how easy it was to switch an Ember.js app from using localStorage adapter to using an adapter for Django REST Framework.&lt;/p&gt;&#10;&lt;p&gt;To show the simplicity of it, I took the simple Markdown Editor I built a couple of days ago, &lt;a href="https://github.com/jpadilla/ember-poe"&gt;Poe&lt;/a&gt;, and switched the localStorage adapter with one that works with Django REST Framework.&lt;/p&gt;&#10;&lt;p&gt;Presented at the &lt;span&gt;prPIG meetup on September 26, 2013.&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Get a $5 Amazon gift card and up to 1-year of Blimp PRO for free</title><link>https://jpadilla.com/2013/09/22/get-a-5-amazon-gift-card-and-up-to-1-year-of/</link><pubDate>Sun, 22 Sep 2013 00:53:00 +0000</pubDate><guid>https://jpadilla.com/2013/09/22/get-a-5-amazon-gift-card-and-up-to-1-year-of/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/43f49d82821c8302cd922b8b476f69ca/tumblr_inline_mti4osCzA21qcutq7.png" /&gt;&lt;/p&gt;&#10;&lt;p&gt;Today we launched a new page to help our users share their love for Blimp and to give some love back in the process. You can read more about it in our &lt;a href="http://blog.getblimp.com/2013/09/lets-share-the-love/"&gt;Let&amp;rsquo;s share the love&lt;/a&gt; blog post.&lt;/p&gt;&#10;&lt;p&gt;If you still haven&amp;rsquo;t tried Blimp, &lt;a href="http://blimp.io/15g9JCJ"&gt;join now&lt;/a&gt; and get 1-month free of Blimp Pro, the easy-to-use and beautiful Project Management software.&lt;/p&gt;&#10;&lt;p&gt;&lt;span&gt;Join: &lt;a href="http://blimp.io/15g9JCJ"&gt;http://blimp.io/15g9JCJ&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Ember.js demo app #1: Poe</title><link>https://jpadilla.com/2013/09/12/emberjs-demo-app-1-poe/</link><pubDate>Thu, 12 Sep 2013 13:13:00 +0000</pubDate><guid>https://jpadilla.com/2013/09/12/emberjs-demo-app-1-poe/</guid><description>&lt;p&gt;&lt;span&gt;&lt;img decoding="async" src="https://78.media.tumblr.com/ee2b5fc36d4870d146c7ca4332c9c040/tumblr_inline_mt0l5j5w5I1qz4rgp.jpg" /&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;span&gt;One of the first Ember.js project ideas in the &lt;/span&gt;&lt;a href="https://www.facebook.com/groups/prember/"&gt;Puerto Rico Ember.js User Group&lt;/a&gt;&lt;span&gt; was a Markdown Editor. My all-time favorite Markdown editor is definitely Mou. &lt;/span&gt;&lt;a href="http://mouapp.com/"&gt;Mou&lt;/a&gt;&lt;span&gt; is a Markdown editor for web developers, on Mac OS X.&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;span&gt;Mou is great, simple, and has a couple of nifty features built into it. One of my favorite is being able to change the CSS applied to Live Preview and HTML/PDF export. That means that we can use the same CSS styles GitHub uses on their rendered Markdown. That&amp;rsquo;s why I always write my README files in it.&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Python shell history</title><link>https://jpadilla.com/2013/08/29/python-shell-history/</link><pubDate>Thu, 29 Aug 2013 12:04:00 +0000</pubDate><guid>https://jpadilla.com/2013/08/29/python-shell-history/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/tumblr_m0ozc9Gm761qfx56do24_r1_250.gif" /&gt; &lt;img decoding="async" alt="image" height="186" src="https://78.media.tumblr.com/tumblr_m0ozc9Gm761qfx56do19_r1_250.gif" /&gt;&lt;/p&gt;&#10;&lt;p&gt;If you&amp;rsquo;re not a fan of enhanced Python interpreters like IPython or BPython but still do heavy use of it you might have notice how annoying it could get whenever you have to quit it, started again, and remember what was the last things you ran. I do this all the time, usually for simple things like testing out built-in functions or quick hacks.&lt;/p&gt;&#10;&lt;p&gt;&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Startups of Puerto Rico Platform</title><link>https://jpadilla.com/2013/08/10/startups-of-puerto-rico-platform/</link><pubDate>Sat, 10 Aug 2013 14:11:00 +0000</pubDate><guid>https://jpadilla.com/2013/08/10/startups-of-puerto-rico-platform/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/758a82ba7780b49bf7db8c1ecc2bd4a0/tumblr_inline_mrbeyso3FE1qz4rgp.png" /&gt;&lt;/p&gt;&#10;&lt;p&gt;Two months ago I opened an issue for &lt;a href="https://github.com/SoPR/CAP/pull/3"&gt;CAP-0003&lt;/a&gt; proposing to execute a platform to contain what I&amp;rsquo;ve been able to identify as useful tools for the Startups of Puerto Rico community.&lt;/p&gt;&#10;&lt;p&gt;&lt;!-- more --&gt;&lt;/p&gt;&#10;&lt;p&gt;A couple of people showed interest and a conversation was immediately started to discuss it in more details. About a month ago I got together with &lt;a href="https://github.com/r23712"&gt;Ryan Oliver&lt;/a&gt; and decided we would start working on an MVP v0.1 that we would just put out there by the end of summer.&lt;/p&gt;&#10;&lt;p&gt;About 200+ commits later, I&amp;rsquo;m proud to announce that we&amp;rsquo;ve reached our goal and are launching v0.1. We decided to start with the two easiest features, a directory of startups and a directory of creative talent. The basic idea with these two directories is to showcase, which startups are hiring, and who&amp;rsquo;s looking to be hired.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Roadmap&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;This is just the beginning and we&amp;rsquo;re only getting started. We already have something of a roadmap of the next things we want to get to. Some of those are a directory of all the groups out there(Startup After Hours, prPIG, Founding Founders, etc&amp;hellip;), aggregated calendar of events, and a directory of resources to showcase available resources for the community. We also have some enhancements thought out for the existing features.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;We need you your help&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/ea102a44c6632dd462fada0e46827300/tumblr_inline_mrbharfvhE1qz4rgp.jpg" /&gt;&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Here&amp;rsquo;s what we need from you. Go to &lt;a href="http://www.startupsofpuertorico.com/"&gt;startupsofpuertorico.com&lt;/a&gt; and signup, and if you&amp;rsquo;re working on a startup, create a &lt;a href="http://www.startupsofpuertorico.com/startups/new"&gt;startup profile&lt;/a&gt;. If by any chance you&amp;rsquo;re working with more people on your startup check beforehand to see if they haven&amp;rsquo;t added it yet. You&amp;rsquo;ll be able to add a team to your startup soon! We know this isn&amp;rsquo;t much yet, but it&amp;rsquo;ll help us get data in there. Once you finish that, we need your feedback. Tell us what you like and what you don&amp;rsquo;t, what you think about the roadmap, style, copy, etc&amp;hellip; You can also help out by sharing the project with the whole community.&lt;/p&gt;&#10;&lt;p&gt;You can send a pull request with any changes you&amp;rsquo;d like to suggest directly to the &lt;a href="https://github.com/jpadilla/sopr-platform"&gt;repo&lt;/a&gt; or send me an &lt;a href="mailto:sopr@jpadilla.com"&gt;email&lt;/a&gt;. We are managing the project with &lt;a href="http://getblimp.com"&gt;Blimp&lt;/a&gt; so if anyone wants a closer look at what we&amp;rsquo;re currently doing and want to get your hands dirty, feel free to send me your email and I&amp;rsquo;ll invite you in.&lt;/p&gt;&#10;&lt;p&gt;Huge thanks to &lt;a href="https://twitter.com/r23712"&gt;Ryan&lt;/a&gt;, &lt;a href="http://twitter.com/JonahBinario"&gt;Jonah&lt;/a&gt;, &lt;a href="https://twitter.com/arivera"&gt;Axel&lt;/a&gt;, &lt;a href="http://twitter.com/_omarramos"&gt;Omar&lt;/a&gt;, &lt;a href="https://twitter.com/gcollazo"&gt;Giovanni&lt;/a&gt;, and everyone who helped put this together one way or another. We are all in this together!&lt;/p&gt;&lt;/p&gt;</description></item><item><title>Blimp en Luz De A’lante</title><link>https://jpadilla.com/2013/08/06/blimp-en-luz-de-alante/</link><pubDate>Tue, 06 Aug 2013 02:04:56 +0000</pubDate><guid>https://jpadilla.com/2013/08/06/blimp-en-luz-de-alante/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;Autofinanciado por tres jóvenes puertorriqueños, Blimp ha llevado su sistema de gerencia de proyectos a más de 8,000 usuarios en más de 100 países. ¿Como lo han logrado?&lt;/p&gt;&#10;&lt;/blockquote&gt;</description></item><item><title>Being a self-starter</title><link>https://jpadilla.com/2013/06/22/being-a-self-starter/</link><pubDate>Sat, 22 Jun 2013 13:56:00 +0000</pubDate><guid>https://jpadilla.com/2013/06/22/being-a-self-starter/</guid><description>&lt;p class="p1"&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/02686595f2c43ab18c22bc69e1f82104/tumblr_inline_mosryuUQyp1qz4rgp.jpg" /&gt;&lt;/p&gt;&#10;&lt;p class="p1"&gt;I spent the last 4 and a half years getting my Bachelors degree in Computer Science. Throughout those years I worked on different things ranging from small personal projects, with small to medium size companies, government, and co-founding Blimp. I accomplished all of these because 4 years before I began college I decided to I would self start. By that time I was just learning basic programming. Months after I took that decision, I got my first freelance client, my parents. Yea, whatever, maybe they did it to help me out more than it was for me to help them out.&lt;/p&gt;</description></item><item><title>From Day Job to Entrepreneur: Interview with Giselle Zeno</title><link>https://jpadilla.com/2013/05/21/from-day-job-to-entrepreneur-interview-with/</link><pubDate>Tue, 21 May 2013 14:54:02 +0000</pubDate><guid>https://jpadilla.com/2013/05/21/from-day-job-to-entrepreneur-interview-with/</guid><description>&lt;p&gt;&lt;span&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/254033148cc0bbd0cf56c7bda7555392/tumblr_inline_mn3k7ob6hs1qz4rgp.jpg" /&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;It&amp;rsquo;s not everyday someone thinks to themselves &amp;ldquo;Fuck it, I&amp;rsquo;m doing this&amp;rdquo;, quits their job, risks everything and starts working on something they truly believe in, embracing failure every step of the way. Since &lt;a href="http://startupsofpuertorico.com/"&gt;Startup of Puerto Rico&lt;/a&gt; and events like &lt;a href="https://www.facebook.com/groups/startupafterhours/"&gt;Startup After Hours&lt;/a&gt;, &lt;a href="https://www.facebook.com/FounderInstitutePuertoRico"&gt;Founder Institute&lt;/a&gt;, Startup Weekend, and others started I&amp;rsquo;ve slowly but surely seen it happening. The most recent person I know that decided to do this is Giselle Zeno. I&amp;rsquo;ve known her for a while and was very intrigued to know what finally triggered that mindset in her. Hopefully this is the first of a series of interviews to awesome people that have recently reached that mindset switch or are almost there.&lt;/p&gt;</description></item><item><title>Shifting to “new-style” url tag in Django 1.5</title><link>https://jpadilla.com/2013/04/03/shifting-to-new-style-url-tag-in-django-15/</link><pubDate>Wed, 03 Apr 2013 15:03:00 +0000</pubDate><guid>https://jpadilla.com/2013/04/03/shifting-to-new-style-url-tag-in-django-15/</guid><description>&lt;p&gt;Prior to Django 1.3, the syntax for the url tag was &lt;em&gt;{% url project_create %}&lt;/em&gt;. Django considered project_create to be a name of a view in your urls.py, not a template variable named &lt;em&gt;project_create&lt;/em&gt;.&lt;/p&gt;&#10;&lt;p&gt;I recently upgraded &lt;a href="http://getblimp.com"&gt;Blimp&lt;/a&gt; from Django 1.4.5 to Django 1.5.1. We have around 200+ template files that were using the old url tag syntax and there was no way I was going to add quotes around the view names one by one.&lt;/p&gt;</description></item><item><title>Kippt as an RSS Reader</title><link>https://jpadilla.com/2013/03/31/kippt-as-an-rss-reader/</link><pubDate>Sun, 31 Mar 2013 14:30:00 +0000</pubDate><guid>https://jpadilla.com/2013/03/31/kippt-as-an-rss-reader/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/65555af9bd826c4d40cf93d22378c88d/tumblr_inline_mkj6lkGj2F1qz4rgp.png" /&gt;&lt;/p&gt;&#10;&lt;p&gt;Last weekend I felt like working on a hack, but what? With the recent news of Google Reader being &lt;a href="http://googlereader.blogspot.com/2013/03/powering-down-google-reader.html"&gt;retired&lt;/a&gt; on July 2013 I thought there was something cool to be done with RSS, but what? As I was looking for ideas on my &lt;a href="https://kippt.com/jpadilla"&gt;Clips&lt;/a&gt; I realized that with Kippt&amp;#8217;s &lt;a href="http://blog.kippt.com/2013/03/19/future-beyond-bookmarking-new-kippt/"&gt;latest&lt;/a&gt; update, a redesign from ground up and tons of new features, you could store your RSS feed&amp;rsquo;s new entries, actually&lt;a href="https://kippt.com/jpadilla/startups/clips/12440620"&gt; read articles&lt;/a&gt; just fine and have them stored and &lt;a href="https://kippt.com/jpadilla/lists"&gt;categorized&lt;/a&gt; however you want with Lists. &lt;/p&gt;</description></item><item><title>Vagrant VM for StatsD + Graphite</title><link>https://jpadilla.com/2013/03/18/vagrant-vm-for-statsd-graphite/</link><pubDate>Mon, 18 Mar 2013 03:32:00 +0000</pubDate><guid>https://jpadilla.com/2013/03/18/vagrant-vm-for-statsd-graphite/</guid><description>&lt;p&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/e8b7b690869ec7512cc45d9ba81b87c7/tumblr_inline_mju7bqDML11qz4rgp.png" /&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/etsy/statsd/"&gt;StatsD&lt;/a&gt; is this little awesome network daemon built by Etsy used to aggregate stats like counters and timers to a pluggable backend service like &lt;a href="http://graphite.wikidot.com/"&gt;Graphite&lt;/a&gt;. You can read more about how it works on Etsy&amp;rsquo;s Measure Anything, Measure Everything blog &lt;a href="http://codeascraft.etsy.com/2011/02/15/measure-anything-measure-everything/"&gt;post&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Since I&amp;rsquo;ve been already playing around with Vagrant and Chef I decided to just put together a simple Vagrant VM for StatsD and Graphite with the help of &lt;a href="https://github.com/hectcastro/"&gt;@hectcastro’s&lt;/a&gt; graphite, statsd, and node.js cookbooks.&lt;/p&gt;</description></item><item><title>Favorite Podcasts</title><link>https://jpadilla.com/2013/01/21/favorite-podcasts/</link><pubDate>Mon, 21 Jan 2013 12:30:31 +0000</pubDate><guid>https://jpadilla.com/2013/01/21/favorite-podcasts/</guid><description>&lt;p&gt;&lt;img decoding="async" src="https://78.media.tumblr.com/2e3d84dba48074dfddc0d2f2e651d1b6/tumblr_inline_mgxxjjDHyW1qcutq7.png" /&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://5by5.tv/b2w"&gt;Back to Work&lt;/a&gt; &lt;br /&gt; Award winning talk show with Merlin Mann and Dan Benjamin discussing productivity, communication, work, barriers, constraints, tools, and more.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://5by5.tv/webahead"&gt;The Web Ahead&lt;/a&gt; &lt;br /&gt; A weekly podcast about changing technologies and the future of the web, discussing HTML5, mobile, responsive design, iOS, Android, and more.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://itunes.apple.com/us/podcast/customer-development-for-startups/id406567694"&gt;Customer Development for Startups&lt;/a&gt; &lt;br /&gt; Steve Blank, eight-time entrepreneur and now a business school professor at Stanford, Columbia and Berkeley, shares his hard-won wisdom as he pioneers entrepreneurship as a management science, combining Customer Development, Business Model Design and Agile Development.&lt;/p&gt;</description></item><item><title>Looking back: 2008-2012</title><link>https://jpadilla.com/2012/12/28/looking-back-2008-2012/</link><pubDate>Fri, 28 Dec 2012 12:11:00 +0000</pubDate><guid>https://jpadilla.com/2012/12/28/looking-back-2008-2012/</guid><description>&lt;p class="p1"&gt;&lt;img decoding="async" alt="image" src="https://78.media.tumblr.com/a2ba3722a429fcbd24f2f671741fc8e3/tumblr_inline_mfns5suXCu1qcutq7.jpg" /&gt;&lt;/p&gt;&#10;&lt;p class="p1"&gt;So, the world didn&amp;rsquo;t end on December 21, 2012 as many believed would happen and the year is quickly coming to a close. This year has been truly and absolutely awesome. For the past couple of years I haven&amp;rsquo;t really reflected or looked back on things, so today I set out to do exactly that.&lt;/p&gt;&#10;&lt;p class="p2"&gt;Let’s go back a bit. I always thought I wanted to be a Computer Engineer and during my junior year I decided to finish 12th grade on a summer program and get into college one year ahead (Fall 2008). On June 2009 I went to this Puerto Rico Startup Weekend event where I met &lt;a href="https://twitter.com/torlanco" target="_blank"&gt;Francisco&lt;/a&gt; and &lt;a href="https://twitter.com/pabloiv" target="_blank"&gt;Pablo Tirado&lt;/a&gt;, &lt;a href="https://twitter.com/gcollazo" target="_blank"&gt;Giovanni Collazo&lt;/a&gt;, &lt;a href="https://twitter.com/albizu" target="_blank"&gt;Albizu García&lt;/a&gt;, &lt;a href="https://twitter.com/lbenitez" target="_blank"&gt;Luis Benitez&lt;/a&gt;, &lt;a href="https://twitter.com/alfredorichner" target="_blank"&gt;Alfredo Richner&lt;/a&gt;, &lt;a href="https://twitter.com/Rmediavilla" target="_blank"&gt;Rafael Mediavilla,&lt;/a&gt; &lt;a href="https://twitter.com/pulsorock" target="_blank"&gt;Guillermo Carrión&lt;/a&gt;, and others which were all working on very interesting projects. I think I was definitely the one that got the most out of that weekend. Days later I got my first couple of real freelance gigs an opportunity brought by just going to that event and meeting those key people. Weeks later, Fran and Pablo contacted me to help them work on a big government related project&amp;hellip; It was an honor! &lt;/p&gt;</description></item><item><title>About Me</title><link>https://jpadilla.com/about-me/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jpadilla.com/about-me/</guid><description>&lt;figure class="profile"&gt;&#10; &lt;img src="https://jpadilla.com/images/jose-padilla-profile.png" alt="José Padilla"&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;I’m José Padilla. I’m a software developer, hacker, and entrepreneur from Puerto Rico. I currently live in Connecticut with my wife and miniature dachshund.&lt;/p&gt;&#10;&lt;p&gt;In 2011, I co-founded &lt;a href="https://blimp.io/"&gt;Blimp&lt;/a&gt; with Giovanni Collazo. During this time we helped customers build ambitious projects and built products of our own, including &lt;a href="https://filepreviews.io/"&gt;FilePreviews&lt;/a&gt;, an API that produces previews, optical character recognition, and metadata from files.&lt;/p&gt;&#10;&lt;p&gt;I also co-founded Gasolina Móvil, a mobile app that helped people pay at the pump. The product later became the first product of Alias Payments.&lt;/p&gt;</description></item><item><title>Projects</title><link>https://jpadilla.com/projects/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jpadilla.com/projects/</guid><description>&lt;p&gt;These are a few projects I’ve helped build.&lt;/p&gt;&#10;&lt;div class="project-list"&gt;&#10; &lt;article class="project-card"&gt;&#10; &lt;figure class="project-image"&gt;&#10; &lt;a href="https://filepreviews.io/"&gt;&#10; &lt;img src="https://jpadilla.com/images/projects/filepreviews-homepage.png" alt="FilePreviews homepage describing its file preview and data extraction API." width="1440" height="1000" loading="lazy"&gt;&#10; &lt;/a&gt;&#10; &lt;figcaption&gt;FilePreviews homepage&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10; &lt;div class="project-details"&gt;&#10; &lt;p class="project-type"&gt;API · File processing&lt;/p&gt;&#10; &lt;h2&gt;FilePreviews&lt;/h2&gt;&#10; &lt;p&gt;An API that produces previews, optical character recognition, and metadata from files. Built with the Blimp team.&lt;/p&gt;&#10; &lt;p&gt;&lt;a href="https://filepreviews.io/"&gt;Visit FilePreviews &lt;span aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/article&gt;&#10; &lt;article class="project-card"&gt;&#10; &lt;figure class="project-image"&gt;&#10; &lt;a href="https://web.archive.org/web/20220122145015/https://contratospr.com/"&gt;&#10; &lt;img src="https://jpadilla.com/images/projects/contratospr-homepage-2022.png" alt="Archived ContratosPR homepage with a searchable list of Puerto Rico government contracts, contractors, and agencies." width="1440" height="1000" loading="lazy"&gt;&#10; &lt;/a&gt;&#10; &lt;figcaption&gt;&lt;a href="https://web.archive.org/web/20220122145015/https://contratospr.com/"&gt;Archived homepage, January 2022&lt;/a&gt;&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10; &lt;div class="project-details"&gt;&#10; &lt;p class="project-type"&gt;Civic tech · Open data&lt;/p&gt;&#10; &lt;h2&gt;Contratos de Puerto Rico&lt;/h2&gt;&#10; &lt;p&gt;A searchable public index of Puerto Rico government contracts, built with Code for Puerto Rico. The service has since been archived.&lt;/p&gt;&#10; &lt;p&gt;&lt;a href="https://github.com/Code4PuertoRico/contratospr"&gt;View the project on GitHub &lt;span aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/article&gt;&#10; &lt;article class="project-card project-card-text"&gt;&#10; &lt;div class="project-details"&gt;&#10; &lt;p class="project-type"&gt;Open source · Python&lt;/p&gt;&#10; &lt;h2&gt;PyJWT&lt;/h2&gt;&#10; &lt;p&gt;A JSON Web Token implementation for Python. I maintain the project with a community of contributors.&lt;/p&gt;&#10; &lt;p&gt;&lt;a href="https://github.com/jpadilla/pyjwt"&gt;View PyJWT on GitHub &lt;span aria-hidden="true"&gt;↗&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/article&gt;&#10;&lt;/div&gt;</description></item></channel></rss>