<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>kpkaiser.com</title><link>https://www.kpkaiser.com/</link><description>Recent content on kpkaiser.com</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Tue, 05 Jun 2018 20:57:08 +0000</lastBuildDate><atom:link href="https://www.kpkaiser.com/index.xml" rel="self" type="application/rss+xml"/><item><title>When Your Site’s SSL Works on WiFi but not Cellular</title><link>https://www.kpkaiser.com/programming/when-your-sites-ssl-works-on-wifi-but-not-cellular/</link><pubDate>Mon, 20 Nov 2017 17:18:49 +0000</pubDate><guid>https://www.kpkaiser.com/programming/when-your-sites-ssl-works-on-wifi-but-not-cellular/</guid><description>Last night I ran into an interesting error, so I figured I’d make a quick post about what happened to Make Art with Python. I had an error that kept occurring whenever I’d connect to my site over cellular network…</description></item><item><title>Writing a Technical Book in Emacs and Org Mode</title><link>https://www.kpkaiser.com/programming/writing-a-technical-book-in-emacs-and-org-mode/</link><pubDate>Thu, 15 Jun 2017 03:11:29 +0000</pubDate><guid>https://www.kpkaiser.com/programming/writing-a-technical-book-in-emacs-and-org-mode/</guid><description>&lt;p&gt;&lt;center&gt;&lt;img src="https://www.kpkaiser.com/wp-content/uploads/2017/06/one_book-2.png" alt="" width="400" height="558" /&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;h2&gt;I spent the past year writing a book called &lt;a href="http://www.makeartwithpython.com"&gt;Make Art with Python&lt;/a&gt;. It teaches Python programming through drawing and art, instead of print statements. If that sounds interesting to you, sign up to hear when it&amp;#8217;s released &lt;a href="http://www.makeartwithpython.com/"&gt;here&lt;/a&gt;.&lt;/h2&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;strong style="font-size: 150%;"&gt;Why Write a Book in Emacs?&lt;/strong&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;I needed a distraction free way to write my code and prose in one place. I also needed to track my progress during the writing itself, and settled on using a paper journal and org-pomodoro.&lt;/p&gt;&#10;&lt;p&gt;If you&amp;#8217;ve ever wanted to write a technical book, the past few months have taught me it&amp;#8217;s possible for mortals with day jobs. I&amp;#8217;ve just sent my fourth draft off to my editor, and tens of thousands of lines of code and prose have already been written. It&amp;#8217;s the first time in my life writing a book has felt achievable.&lt;/p&gt;&#10;&lt;p&gt;But there have been painful false starts and mistakes along the way. &lt;/p&gt;&#10;&lt;p&gt;In this article I&amp;#8217;ll share some basic rules I stole to keep myself focused, motivated, and productive while writing. I&amp;#8217;m sharing in the hopes that they will help you too, and you&amp;#8217;ll begin writing your book much sooner than it took me.&lt;/p&gt;&#10;&lt;p&gt;Most of these ideas and habits are generally applicable, and although they may seem insignificant, improved my writing tremendously. In fact, all the writing and code for my first draft was written while I was the sole backend developer at a startup which grew to millions of users.&lt;/p&gt;&#10;&lt;p&gt;I&amp;#8217;m a big believer in concrete examples as the only way to learn anything, so I&amp;#8217;ll also walk you through the mechanics of the tools I use. We&amp;#8217;ll cover the process of writing, file and time management, visualizing the work in progress, exporting, and maintaining a positive attitude to keep the work flowing. Of all these parts, the biggest challenge is mental. &lt;/p&gt;&#10;&lt;p&gt;When things get difficult, it&amp;#8217;s mostly because you don&amp;#8217;t know what to do next. It&amp;#8217;s during these times that you need have a routine that happens, no matter what, to get you focused back on writing and making progress.&lt;/p&gt;&#10;&lt;p&gt;If you&amp;#8217;ve been thinking about writing a book, this guide will hopefully convince you it&amp;#8217;s possible. &lt;/p&gt;&#10;&lt;p&gt;And best case, soon I&amp;#8217;ll be reading your book.&lt;/p&gt;&#10;&lt;p&gt;Let&amp;#8217;s get started!&lt;/p&gt;&#10;&lt;p&gt;</description></item><item><title>Projects</title><link>https://www.kpkaiser.com/projects/</link><pubDate>Sun, 03 Apr 2016 23:51:38 +0000</pubDate><guid>https://www.kpkaiser.com/projects/</guid><description>&lt;p&gt;&lt;center&gt;&lt;br /&gt;&#10;&lt;strong style="font-size:150%;"&gt;&lt;br /&gt;&#10;&lt;a href="https://www.makeartwithpython.com/"&gt;Make Art with Python&lt;/a&gt;&lt;br /&gt;&#10;&lt;a href="https://www.makeartwithpython.com/blog/deal-with-it-generator-face-recognition/"&gt;Automatic Memes in Python with Face Detection&lt;/a&gt;&lt;br /&gt;&#10;&lt;a href="https://www.kpkaiser.com/machine-learning/training-neural-networks-to-generate-crappy-amazon-products/"&gt;AI Generated Terrible Amazon Products&lt;/a&gt;&lt;br /&gt;&#10;&lt;a href="https://www.kpkaiser.com/programming/the-mostly-newbies-guide-to-automatically-swapping-faces-in-video/"&gt;Video face swapping in Python&lt;/a&gt;&lt;br /&gt;&#10;&lt;a href="https://www.kpkaiser.com/programming/defeating-facebooks-deepface-with-deepdreams/"&gt;Deep Graffiti&lt;/a&gt;&lt;br /&gt;&#10;&lt;a href="https://www.kpkaiser.com/programming/plant-controlled-robot-bongos/"&gt;Plant Bongos&lt;/a&gt;&lt;br /&gt;&#10;&lt;a href="https://www.kpkaiser.com/entrepreneurship/building-a-meditation-controlled-orb/"&gt;Real Time Meditation App&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&#10;&lt;/center&gt;&lt;/p&gt;</description></item><item><title>Training Neural Networks to Generate Terrible Amazon Products</title><link>https://www.kpkaiser.com/machine-learning/training-neural-networks-to-generate-crappy-amazon-products/</link><pubDate>Mon, 11 Jan 2016 01:46:01 +0000</pubDate><guid>https://www.kpkaiser.com/machine-learning/training-neural-networks-to-generate-crappy-amazon-products/</guid><description>&lt;p&gt;&lt;center&gt;&lt;img src="https://www.kpkaiser.com/wp-content/uploads/2016/01/out.gif" /&gt;&lt;img src="https://www.kpkaiser.com/wp-content/uploads/2016/01/out.gif" /&gt;&lt;img src="https://www.kpkaiser.com/wp-content/uploads/2016/01/out.gif" /&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;div id="amWrapper" style="width: 140%; margin-left: -186px;"&gt;&#10;&lt;div id="amazonproducts" style="background-color: #A9A9A9;&#10;text-align: center;&#10;margin-bottom: 50px;&#10;padding-bottom: 50px; &#10;padding-top: 50px;&#10;margin-left: 12%; margin-right: 12%;display: none;"&gt;&lt;/p&gt;&#10;&lt;div id="productImage" style="float: left; margin-left: 87px;"&gt;&#10;&lt;/div&gt;&#10;&lt;div id="productName" style="text-align: left; margin-left: 312px; margin-top: -10px; padding-right: 169px;"&gt;&#10;&lt;/div&gt;&#10;&lt;div id="price" style="text-align: left; padding-left: 312px;"&gt;&#10;&lt;/div&gt;&#10;&lt;div id="review" style="text-align:left;margin-left: 119px;"&gt;&#10;&lt;/div&gt;&#10;&lt;div id="controller" style="margin-top: 32px; text-align: right; padding-right: 195px;"&gt;&#10;&lt;button id="nextProd"&gt;Next Product&lt;/button&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;strong style="font-size: 150%;"&gt;Teaching Machines Nonsense&lt;/strong&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;Last Wednesday, while joking at the end of the workday, the idea came up to make an neural network that generates Amazon reviews. &lt;/p&gt;&#10;&lt;p&gt;Above you can see the results for images, reviews, prices, and product names generated by neural networks trained on Amazon&amp;#8217;s data.&lt;/p&gt;&#10;&lt;p&gt;All of this was possible thanks to the dataset provided by Julian McAuley, used in the &lt;a href="http://cseweb.ucsd.edu/~jmcauley/pdfs/sigir15.pdf"&gt;SIGIR&lt;/a&gt; and &lt;a href="http://cseweb.ucsd.edu/~jmcauley/pdfs/kdd15.pdf"&gt;KDD&lt;/a&gt; papers, along with the torch-gan and char-rnn sources. We&amp;#8217;ll walk through adapting this dataset and adapting it to train these neural networks in this writeup.&lt;/p&gt;&#10;&lt;p&gt;We&amp;#8217;ll step through the thought process behind adapting and extending a dataset, and we&amp;#8217;ll document the road blocks as we run into them along the way. I hope leaving these in will help beginners see that very often, programming requires running into wall after wall until you finally reach the other side.&lt;/p&gt;&#10;&lt;p&gt;We&amp;#8217;ll cover how to load the dataset, how to generate fake product images, reviews, prices, and product names, and then export them for presentation. I hope you&amp;#8217;ll enjoy the ride, even if you&amp;#8217;re not necessarily into programming. I just want to give you an idea for how writing and extending an AI bot works when working from a given data set.&lt;/p&gt;&#10;&lt;p&gt;The finished neural networks and code with instructions are at &lt;a href="https://www.kpkaiser.com/"&gt;Github&lt;/a&gt;. &lt;/p&gt;&#10;&lt;p&gt;So, let&amp;#8217;s begin.&lt;/p&gt;&#10;&lt;p&gt;&lt;script type="text/javascript"&gt;&#10;&lt;!--&#10;var productData = [];&#10;jQuery(document).ready(function($) {&#10;url = '/uploads/divinations.json';&#10;$.getJSON( url, function( data ) {&#10; var items = [];&#10; productData = data;&#10; chosenOne = Math.floor((Math.random() * productData.length) + 1);&#10; productCamel = productData[chosenOne].productName.replace(&#10; /(^|\s+)(\S)(\S*)/g,&#10; function(match, whitespace, firstLetter, rest) {&#10; return whitespace + firstLetter.toUpperCase() + rest.toLowerCase();&#10; }&#10;);&#10; $('#productName').html('&lt;strong style="font-size: 150%;"&gt;' + productCamel + '&lt;/strong&gt;');&#10; $('#price').text(productData[chosenOne].price);&#10; $('#review').html(productData[chosenOne].finalReview);&#10; $('#review h2').prepend('&lt;img src="https://www.kpkaiser.com/images/onestar.png" /&gt;');&#10; $('#productImage').html('&lt;img src="' + productData[chosenOne].finalImage + '" width="128" height="128" /&gt;');&#10;});&#10;$('#nextProd').click(function() {&#10; chosenOne = Math.floor((Math.random() * productData.length) + 1);&#10; productCamel = productData[chosenOne].productName.replace(&#10; /(^|\s+)(\S)(\S*)/g,&#10; function(match, whitespace, firstLetter, rest) {&#10; return whitespace + firstLetter.toUpperCase() + rest.toLowerCase();&#10; }&#10;);&#10; $('#productName').html('&lt;strong style="font-size: 150%;"&gt;' + productCamel + '&lt;/strong&gt;');&#10; $('#price').text(productData[chosenOne].price);&#10; $('#review').html(productData[chosenOne].finalReview);&#10; $('#review h2').prepend('&lt;img src="https://www.kpkaiser.com/images/onestar.png" /&gt;');&#10; $('#productImage').html('&lt;img src="' + productData[chosenOne].finalImage + '" width="128" height="128" /&gt;');&#10;});&#10;});&#10;&#10;//--&gt;&lt;/script&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;center&gt;&lt;strong style="font-size: 150%;"&gt;Meeting Your Data&lt;/strong&gt;&lt;/center&gt;&lt;/p&gt;&#10;&lt;p&gt;The very first thing I did once I received the data set was to take a look at it, to get an idea for its formatting. It was originally compressed with gzip, and so I needed to uncompress it on my external drive.&lt;/p&gt;&#10;&lt;p&gt;Uncompressed, it was 68 gigabytes. When you&amp;#8217;re working with large files, it can get tricky to figure out what you&amp;#8217;ve got, and to make the most basic of assumptions. So the first thing to do is take a look at what you&amp;#8217;re working with, and how messy your data might be.&lt;/p&gt;&#10;&lt;p&gt;In my case, I just used the &amp;#8216;less&amp;#8217; command, to take a look at the first few lines in my terminal. This is easy enough to do in the command line:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ less user_dedup.json&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;reviewerID&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;A00000262KYZUE4J55XGL&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;asin&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;B003UYU16G&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;reviewerName&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;Steven N Elich&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;helpful&amp;#34;&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;0, 0&lt;span class="o"&gt;]&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;reviewText&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;It is and does exactly what the description said it would be and would do. Couldn&amp;#39;t be happier with it.&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;overall&amp;#34;&lt;/span&gt;: 5.0, &lt;span class="s2"&gt;&amp;#34;summary&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;Does what it&amp;#39;s supposed to do&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;unixReviewTime&amp;#34;&lt;/span&gt;: 1353456000, &lt;span class="s2"&gt;&amp;#34;reviewTime&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;11 21, 2012&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;reviewerID&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;A000008615DZQRRI946FO&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;asin&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;B005FYPK9C&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;reviewerName&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;mj waldon&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;helpful&amp;#34;&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;0, 0&lt;span class="o"&gt;]&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;reviewText&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;I was sketchy at first about these but once you wear them for a couple hours they break in they fit good on my board an have little wear from skating in them. They are a little heavy but won&amp;#39;t get eaten up as bad by your grip tape like poser dc shoes.&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;overall&amp;#34;&lt;/span&gt;: 5.0, &lt;span class="s2"&gt;&amp;#34;summary&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;great buy&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;unixReviewTime&amp;#34;&lt;/span&gt;: 1357603200, &lt;span class="s2"&gt;&amp;#34;reviewTime&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;01 8, 2013&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;reviewerID&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;A00000922W28P2OCH6JSE&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;asin&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;B000VEBG9Y&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;reviewerName&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;Gabriel Merrill&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;helpful&amp;#34;&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;0, 0&lt;span class="o"&gt;]&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;reviewText&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;Very mobile product. Efficient. Easy to use; however product needs a varmint guard. Critters are able to gorge themselves without a guard.&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;overall&amp;#34;&lt;/span&gt;: 3.0, &lt;span class="s2"&gt;&amp;#34;summary&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;Great product but needs a varmint guard.&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;unixReviewTime&amp;#34;&lt;/span&gt;: 1395619200, &lt;span class="s2"&gt;&amp;#34;reviewTime&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;03 24, 2014&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;reviewerID&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;A00000922W28P2OCH6JSE&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;asin&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;B001EJMS6K&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;reviewerName&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;Gabriel Merrill&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;helpful&amp;#34;&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;0, 0&lt;span class="o"&gt;]&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;reviewText&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;Easy to use a mobile. If you&amp;#39;re taller than 4ft, be ready to tuck your legs behind you as you hang and pull.&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;overall&amp;#34;&lt;/span&gt;: 4.0, &lt;span class="s2"&gt;&amp;#34;summary&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;Great inexpensive product. Mounts easily and transfers to the ground for multiple push up positions.&amp;#34;&lt;/span&gt;, &lt;span class="s2"&gt;&amp;#34;unixReviewTime&amp;#34;&lt;/span&gt;: 1395619200, &lt;span class="s2"&gt;&amp;#34;reviewTime&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;03 24, 2014&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;p&gt;We can immediately see that our JSON file isn&amp;#8217;t really in JSON, but it&amp;#8217;s in a kind of Python dictionary object. And indeed, when I look at the web url that I got this info from, it says specifically that each line can just be &amp;#8216;eval&amp;#8217;d in Python in order to generate one object at a time.&lt;/p&gt;&#10;&lt;p&gt;This makes it easier to deal with this large of a file, because it means we don&amp;#8217;t need to read the entire list into memory just to create our object. (Which could take minutes to hours to do.) Instead, we can go line by line in our file, and each review individually into memory.&lt;/p&gt;&#10;&lt;p&gt;</description></item><item><title>Using Neural Networks to Generate Paintings</title><link>https://www.kpkaiser.com/programming/using-neural-networks-to-generate-paintings/</link><pubDate>Tue, 01 Sep 2015 05:16:48 +0000</pubDate><guid>https://www.kpkaiser.com/programming/using-neural-networks-to-generate-paintings/</guid><description>Last week an incredible paper got released showing how neural networks could be used to separate a “style” from an image, and apply that style to another image. It’s a great read, even if some of the math goes over…</description></item><item><title>The (Mostly) Newbie’s Guide to Automatically Swapping Faces in Video</title><link>https://www.kpkaiser.com/programming/the-mostly-newbies-guide-to-automatically-swapping-faces-in-video/</link><pubDate>Thu, 06 Aug 2015 03:55:42 +0000</pubDate><guid>https://www.kpkaiser.com/programming/the-mostly-newbies-guide-to-automatically-swapping-faces-in-video/</guid><description>Last weekend I was inspired by a great blog post from Matthew Earl, where he showed how to do face swapping in Python. It immediately got me intrigued, and I ended up quickly using it to make this video: Adopting…</description></item><item><title>Defeating Facebook’s DeepFace with Deep Dreams</title><link>https://www.kpkaiser.com/programming/defeating-facebooks-deepface-with-deepdreams/</link><pubDate>Thu, 30 Jul 2015 14:18:02 +0000</pubDate><guid>https://www.kpkaiser.com/programming/defeating-facebooks-deepface-with-deepdreams/</guid><description>AI Is Already Here, And We’ve Barely Noticed AI is infiltrating our lives, in much the same way mobile did before it. It’s being fueled by the massive amounts of data we humans are generating from our phones, and it’s…</description></item><item><title>Fixing Twilio’s SSL Certificate Errors in PHP and Ubuntu</title><link>https://www.kpkaiser.com/programming/fixing-twilios-ssl-certificate-errors-in-php-and-ubuntu/</link><pubDate>Mon, 20 Jul 2015 19:35:15 +0000</pubDate><guid>https://www.kpkaiser.com/programming/fixing-twilios-ssl-certificate-errors-in-php-and-ubuntu/</guid><description>If you’re trying to get the latest version of the Twilio API up and running on PHP with Ubuntu 14.04, and you keep getting errors about SSL, you’re most likely missing the php5-curl package. The error would look like the…</description></item><item><title>Diving Deeper into Deep Dreams</title><link>https://www.kpkaiser.com/machine-learning/diving-deeper-into-deep-dreams/</link><pubDate>Mon, 20 Jul 2015 03:44:18 +0000</pubDate><guid>https://www.kpkaiser.com/machine-learning/diving-deeper-into-deep-dreams/</guid><description>A few weeks ago, Google released it’s Deep Dream source code. Suddenly interest in machine learning exploded, and artists especially were interested in seeing what the Deep Dream software could do with their own artwork.I’ve been working with Deep Learning…</description></item><item><title>Plant Controlled Robot Bongos</title><link>https://www.kpkaiser.com/programming/plant-controlled-robot-bongos/</link><pubDate>Tue, 14 Apr 2015 21:31:47 +0000</pubDate><guid>https://www.kpkaiser.com/programming/plant-controlled-robot-bongos/</guid><description>TLDR: I turned a Teensy LC into a plant controlled MIDI robot bongo. I used the capacitive touch sensors built into the Teensy along with some guitar shielding copper stuck in plant’s soil to trigger MIDI clips in Ableton Live…</description></item><item><title>Hacking Mindfulness with an Arduino and the iPhone</title><link>https://www.kpkaiser.com/entrepreneurship/building-a-meditation-controlled-orb/</link><pubDate>Fri, 15 Mar 2013 20:27:14 +0000</pubDate><guid>https://www.kpkaiser.com/entrepreneurship/building-a-meditation-controlled-orb/</guid><description>For the past six months, I’ve been working on measuring human physiology during meditation. Most notably, instead of focusing on measuring using an EEG (to record brainwaves), I’ve been focusing on measuring the changes in physiology caused by the autonomic…</description></item><item><title>Events Don’t Exist</title><link>https://www.kpkaiser.com/mindhack/events-dont-exist/</link><pubDate>Mon, 25 Feb 2013 17:50:04 +0000</pubDate><guid>https://www.kpkaiser.com/mindhack/events-dont-exist/</guid><description>In my life, I try to imagine events don’t exist at all. That there will never be some major “thing” that happens which changes anything dramatically in my life. See, I’ve noticed a lot of people go through life waiting…</description></item><item><title>Using Processing to Generate Christmas Presents</title><link>https://www.kpkaiser.com/programming/using-processing-to-generate-christmas-presents/</link><pubDate>Mon, 24 Dec 2012 20:52:45 +0000</pubDate><guid>https://www.kpkaiser.com/programming/using-processing-to-generate-christmas-presents/</guid><description>Download the code at Github. As a last minute idea, I decided to write some code to generate my Christmas gifts. If you look above, you can see what the final result was with all the code. I’ve printed out…</description></item><item><title>Hacking the Human Mind</title><link>https://www.kpkaiser.com/mindhack/hacking-the-human-mind/</link><pubDate>Mon, 17 Dec 2012 18:49:30 +0000</pubDate><guid>https://www.kpkaiser.com/mindhack/hacking-the-human-mind/</guid><description>“The intelligent want self-control, children want candy.” – Rumi Last week I gave a talk about the progress I’ve made on my meditation platform. In it, I went into a little more depth about the whys behind meditation, stressing how…</description></item><item><title>Hacking Meditation with the Arduino</title><link>https://www.kpkaiser.com/mindhack/hacking-meditation-with-the-arduino/</link><pubDate>Thu, 08 Nov 2012 15:13:07 +0000</pubDate><guid>https://www.kpkaiser.com/mindhack/hacking-meditation-with-the-arduino/</guid><description>TLDR; Meditation done right changes your physiology. You can monitor these changes to your physiology using off the shelf components and the Arduino. Learning to meditate sucks, because there’s no way to know whether you’re doing it right. And if…</description></item><item><title>Good Partners Are Mutually Assured Execution Devices</title><link>https://www.kpkaiser.com/entrepreneurship/good-partners-are-mutually-assured-execution-devices/</link><pubDate>Mon, 05 Nov 2012 20:47:25 +0000</pubDate><guid>https://www.kpkaiser.com/entrepreneurship/good-partners-are-mutually-assured-execution-devices/</guid><description>I had a great weekend this week. I took a beautiful lady out to some of the world’s last remaining old growth cypress forest, went to an independent film festival, and skateboarded with some old friends. I completely forgot about…</description></item><item><title>I don’t have any idea what a wooden structure is, but I’m building a city.</title><link>https://www.kpkaiser.com/entrepreneurship/i-dont-have-any-idea-what-a-wooden-structure-is-but-im-building-a-city/</link><pubDate>Mon, 29 Oct 2012 18:10:48 +0000</pubDate><guid>https://www.kpkaiser.com/entrepreneurship/i-dont-have-any-idea-what-a-wooden-structure-is-but-im-building-a-city/</guid><description>My people tell me they’re building the houses out of wood, and I heard that wood is scalable. I can’t tell you what my city is going to look like, but I spoke with a lawyer. He said my vision…</description></item><item><title>From 0 to 10,000 Pageviews In Two Weeks</title><link>https://www.kpkaiser.com/entrepreneurship/from-0-to-10000-pageviews-in-two-weeks/</link><pubDate>Wed, 24 Oct 2012 17:20:43 +0000</pubDate><guid>https://www.kpkaiser.com/entrepreneurship/from-0-to-10000-pageviews-in-two-weeks/</guid><description>I took a break from writing for a while. Well, about 5 months to be exact. And my blog readers sputtered to a halt. But my experience interviewing with a company got me so angry, I had to start writing…</description></item><item><title>Big Hacks In Little Paradise – The Story of the First Naples Startup Battle</title><link>https://www.kpkaiser.com/entrepreneurship/big-hacks-in-little-paradise-the-story-of-the-first-naples-startup-battle/</link><pubDate>Tue, 23 Oct 2012 17:12:46 +0000</pubDate><guid>https://www.kpkaiser.com/entrepreneurship/big-hacks-in-little-paradise-the-story-of-the-first-naples-startup-battle/</guid><description>It’s 12:30 AM on a Sunday, and instead of being out with friends, I’ve locked myself indoors, busy building the most boring piece of software I’ve ever heard of. Of the team of four people I just met, I’m the…</description></item><item><title>Building and Deploying Your First API in Python</title><link>https://www.kpkaiser.com/articles/building-and-deploying-your-first-api-in-python/</link><pubDate>Mon, 15 Oct 2012 20:47:49 +0000</pubDate><guid>https://www.kpkaiser.com/articles/building-and-deploying-your-first-api-in-python/</guid><description>&lt;p&gt;This four part series will guide you through building your first RESTful API and deploying it on Amazon EC2 instances. We walk through every part of stubbing out and building an API, from writing YAML to an ElasticSearch backend, then our server deployment scripts.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://www.kpkaiser.com/programming/an-iterative-approach-to-building-and-deploying-an-api/"&gt;Part One &amp;#8211; Building the API skeleton with YAML&lt;/a&gt;&lt;br /&gt;&#10;&lt;a href="https://www.kpkaiser.com/programming/an-iterative-approach-to-building-an-api-part-2-adding-elasticsearch/"&gt;Part Two &amp;#8211; From YAML to ElasticSearch&lt;/a&gt;&lt;br /&gt;&#10;&lt;a href="https://www.kpkaiser.com/programming/an-iterative-approach-to-building-an-api-part-3-writing-chef-scripts-for-amazon-ec2-deployment/"&gt;Part Three &amp;#8211; Writing Chef Scripts for Amazon Deployment&lt;/a&gt;&lt;br /&gt;&#10;&lt;a href="https://www.kpkaiser.com/programming/an-iterative-approach-to-building-an-api-part-4-fabric-scripts-for-code-deployment/"&gt;Part Four &amp;#8211; Writing Fabric Scripts for Code Deployment&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>