<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dw="https://www.dreamwidth.org">
  <id>tag:dreamwidth.org,2014-10-10:2331049</id>
  <title>spinda's dreamwidth</title>
  <subtitle>spinda</subtitle>
  <author>
    <name>spinda</name>
  </author>
  <link rel="alternate" type="text/html" href="https://spindas.dreamwidth.org/"/>
  <link rel="self" type="text/xml" href="https://spindas.dreamwidth.org/data/atom"/>
  <updated>2022-12-29T02:19:24Z</updated>
  <dw:journal username="spindas" type="personal"/>
  <entry>
    <id>tag:dreamwidth.org,2014-10-10:2331049:4207</id>
    <link rel="alternate" type="text/html" href="https://spindas.dreamwidth.org/4207.html"/>
    <link rel="self" type="text/xml" href="https://spindas.dreamwidth.org/data/atom/?itemid=4207"/>
    <title>Who needs a backend? ChatGPT as the universal Redux reducer</title>
    <published>2022-12-27T02:09:15Z</published>
    <updated>2022-12-29T02:19:24Z</updated>
    <category term="javascript"/>
    <category term="react"/>
    <category term="redux"/>
    <category term="web"/>
    <category term="machine learning"/>
    <category term="program synthesis"/>
    <category term="artificial intelligence"/>
    <dw:music>la pumpkin - BLOODY MEMOIR vol. II</dw:music>
    <dw:mood>artistic</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;p&gt;A React/Redux app is a &lt;a href="https://redux.js.org/tutorials/essentials/part-1-overview-concepts#redux-application-data-flow"&gt;one-way data flow cycle&lt;/a&gt;. The user interacts with the UI, which produces Redux &lt;strong&gt;actions&lt;/strong&gt;, which get dispatched to &lt;strong&gt;reducer&lt;/strong&gt; functions, which update the app’s &lt;strong&gt;state&lt;/strong&gt; object, which gets passed back to React to re-render the UI.&lt;/p&gt;
&lt;p&gt;A conversation with &lt;a href="https://chat.openai.com"&gt;ChatGPT&lt;/a&gt; is &lt;em&gt;also&lt;/em&gt; a one-way cycle. A human sends a &lt;strong&gt;prompt&lt;/strong&gt; (action), which gets passed to the &lt;strong&gt;language model&lt;/strong&gt; (reducer), which updates the &lt;strong&gt;conversation&lt;/strong&gt; (state) with its response.&lt;/p&gt;
&lt;p&gt;Can we use the latter to emulate the former? Spoilers: yes, we totally can! ChatGPT will happily act as your universal reducer, so you can prototype your app’s frontend without needing to mock up a backend or business logic right away. And after interacting with the frontend for a bit to teach the AI how the app works, you can even ask it to implement the reducer function for you.&lt;/p&gt;
&lt;p&gt;Here’s a quick demo of a basic counter app with my &lt;a href="https://github.com/spinda/react-redux-chatgpt/tree/main/react-redux-chatgpt"&gt;&lt;code style="white-space:pre-wrap"&gt;react-redux-chatgpt&lt;/code&gt;&lt;/a&gt; plugin doing the reducing (app on the left, behind-the-scenes ChatGPT conversation in the console on the right):&lt;/p&gt;
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/u9rE7sfCmj8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="allowfullscreen"&gt;
&lt;/iframe&gt;
&lt;p&gt;And here’s ChatGPT powering the &lt;a href="https://github.com/reduxjs/redux/tree/master/examples/todomvc"&gt;Redux TodoMVC example&lt;/a&gt;, unmodified except to delete the reducers and replace them with ChatGPT:&lt;/p&gt;
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/GgR1QiPPie4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="allowfullscreen"&gt;
&lt;/iframe&gt;
&lt;p&gt;Check out the &lt;a href="https://github.com/spinda/react-redux-chatgpt"&gt;source code&lt;/a&gt; on GitHub! Or keep reading for an in-depth explainer.&lt;/p&gt;
&lt;span class="cut-wrapper"&gt;&lt;span style="display: none;" id="span-cuttag___1" class="cuttag"&gt;&lt;/span&gt;&lt;b class="cut-open"&gt;(&amp;nbsp;&lt;/b&gt;&lt;b class="cut-text"&gt;&lt;a href="https://spindas.dreamwidth.org/4207.html#cutid1"&gt;Read more...&lt;/a&gt;&lt;/b&gt;&lt;b class="cut-close"&gt;&amp;nbsp;)&lt;/b&gt;&lt;/span&gt;&lt;div style="display: none;" id="div-cuttag___1" aria-live="assertive"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=spindas&amp;ditemid=4207" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2014-10-10:2331049:3908</id>
    <link rel="alternate" type="text/html" href="https://spindas.dreamwidth.org/3908.html"/>
    <link rel="self" type="text/xml" href="https://spindas.dreamwidth.org/data/atom/?itemid=3908"/>
    <title>Software I rely on to make Windows usable</title>
    <published>2022-03-16T09:46:13Z</published>
    <updated>2022-12-27T00:11:14Z</updated>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/valinet/ExplorerPatcher"&gt;ExplorerPatcher&lt;/a&gt; by &lt;a href="https://valinet.ro"&gt;Valentin-Gabriel Radu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/mgth/LittleBigMouse"&gt;LittleBigMouse&lt;/a&gt; by &lt;a href="http://mgth.fr"&gt;Mathieu Grenet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eartrumpet.app"&gt;EarTrumpet&lt;/a&gt; by &lt;a href="https://goldentao.net"&gt;David Golden&lt;/a&gt; (of &lt;a href="https://metrotwit.com"&gt;MetroTwit&lt;/a&gt; fame), &lt;a href="https://withinrafael.com"&gt;Rafael Rivera&lt;/a&gt;, and &lt;a href="https://github.com/davuxcom"&gt;Dave Amenta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/AutoDarkMode/Windows-Auto-Night-Mode"&gt;Auto Dark Mode&lt;/a&gt; by &lt;a href="https://github.com/Spiritreader"&gt;Spiritreader&lt;/a&gt; and &lt;a href="https://github.com/Armin2208"&gt;Armin Osaj&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://powerplan.forbootcamp.org"&gt;Power Plan Assistant&lt;/a&gt; by &lt;a href="http://forbootcamp.org"&gt;Vladimir Shoham/forBootCamp.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wincompose.info"&gt;WinCompose&lt;/a&gt; by &lt;a href="http://sam.hocevar.net"&gt;Sam Hocevar&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Bonus:&lt;/strong&gt; &lt;a href="https://github.com/TranslucentTB/TranslucentTB"&gt;TranslucentTB&lt;/a&gt; by &lt;a href="https://sylveon.dev"&gt;Charles Milette&lt;/a&gt;.&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=spindas&amp;ditemid=3908" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2014-10-10:2331049:3811</id>
    <link rel="alternate" type="text/html" href="https://spindas.dreamwidth.org/3811.html"/>
    <link rel="self" type="text/xml" href="https://spindas.dreamwidth.org/data/atom/?itemid=3811"/>
    <title>Modern Rocket Raccoon &amp; Groot Reading List (2021)</title>
    <published>2021-01-26T10:49:29Z</published>
    <updated>2022-12-27T20:27:01Z</updated>
    <category term="marvel"/>
    <category term="guardians of the galaxy"/>
    <category term="groot"/>
    <category term="reading"/>
    <category term="rocket raccoon"/>
    <category term="resource"/>
    <category term="comics"/>
    <dw:music>Arctique Circles - Vesica Pisces</dw:music>
    <dw:mood>cold</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">Sticking this here so I can stop re-compiling this info for myself. Here's the reading order for the modern Marvel comics featuring the characters Rocket Raccoon and Groot, for someone not interested in reading the mainline &lt;em&gt;Guardians of the Galaxy&lt;/em&gt; books, as of the start of 2021.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://marvel.fandom.com/wiki/Rocket_Raccoon_Vol_2"&gt;&lt;i&gt;Rocket Raccoon Vol 2&lt;/i&gt; (2014-2015)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://marvel.fandom.com/wiki/Groot_Vol_1"&gt;&lt;em&gt;Groot Vol 1&lt;/em&gt; (2015)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://marvel.fandom.com/wiki/Rocket_Raccoon_and_Groot_Vol_1"&gt;&lt;em&gt;Rocket Raccoon and Groot Vol 1&lt;/em&gt; (2016)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://marvel.fandom.com/wiki/Rocket_Raccoon_Vol_3"&gt;&lt;em&gt;Rocket Raccoon Vol 3&lt;/em&gt; (2017)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://marvel.fandom.com/wiki/I_Am_Groot_Vol_1"&gt;&lt;em&gt;I Am Groot Vol 1&lt;/em&gt; (2017)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://marvel.fandom.com/wiki/Rocket_Vol_1"&gt;&lt;em&gt;Rocket Vol 1&lt;/em&gt; (2017)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;Because really, Rocket and Groot are the only Guardians of the Galaxy you actually care about, right?&lt;br /&gt;&lt;br /&gt;&lt;footer&gt;&amp;mdash;&lt;i&gt;ROCKET RACCOON VOL. 1: A CHASING TALE (Trade Paperback)&lt;/i&gt;&lt;/footer&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=spindas&amp;ditemid=3811" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2014-10-10:2331049:2765</id>
    <link rel="alternate" type="text/html" href="https://spindas.dreamwidth.org/2765.html"/>
    <link rel="self" type="text/xml" href="https://spindas.dreamwidth.org/data/atom/?itemid=2765"/>
    <title>$ curl poptart.spinda.net</title>
    <published>2016-02-28T00:17:14Z</published>
    <updated>2021-01-26T10:55:07Z</updated>
    <category term="fun"/>
    <category term="hacks"/>
    <category term="web"/>
    <dw:music>Momo Momo - Nyanyanyanyanyanyanya!</dw:music>
    <dw:mood>amused</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;img alt="" src="https://www.spinda.net/files/blog/nya.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=spindas&amp;ditemid=2765" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2014-10-10:2331049:2452</id>
    <link rel="alternate" type="text/html" href="https://spindas.dreamwidth.org/2452.html"/>
    <link rel="self" type="text/xml" href="https://spindas.dreamwidth.org/data/atom/?itemid=2452"/>
    <title>A better rich text editor for Dreamwidth</title>
    <published>2016-02-23T01:39:29Z</published>
    <updated>2017-01-23T04:53:40Z</updated>
    <category term="dreamwidth"/>
    <category term="tweaks"/>
    <category term="web"/>
    <category term="userscripts"/>
    <category term="snippets"/>
    <dw:music>Mr Explicit, Balistik - Philadelphia Sunrise (Utah Jazz Remix)</dw:music>
    <dw:mood>busy</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;p&gt;For whatever reason, Dreamwidth’s default rich text editor (built on an old version of FCKEditor) hides a lot of the available toolbar buttons. I’ve written a quick userscript that enables all available buttons in the editor, and also increases the height a bit to make writing more pleasant. I’ve tested it on Firefox with GreaseMonkey; presumably it should work on Chrome/Chromium as well.&lt;/p&gt;



&lt;pre class="prettyprint"&gt;&lt;code class="language-javascript hljs "&gt;&lt;span class="hljs-comment"&gt;// ==UserScript==&lt;/span&gt;
&lt;span class="hljs-comment"&gt;// @name        Better Dreamwidth Editor&lt;/span&gt;
&lt;span class="hljs-comment"&gt;// @namespace   betterdweditor&lt;/span&gt;
&lt;span class="hljs-comment"&gt;// @include     https://www.dreamwidth.org/update?usejournal=spindas&lt;/span&gt;
&lt;span class="hljs-comment"&gt;// @include     https://www.dreamwidth.org/editjournal*&lt;/span&gt;
&lt;span class="hljs-comment"&gt;// @version     1&lt;/span&gt;
&lt;span class="hljs-comment"&gt;// @grant       none&lt;/span&gt;
&lt;span class="hljs-comment"&gt;// ==/UserScript==&lt;/span&gt;

window.onload = &lt;span class="hljs-function"&gt;&lt;span class="hljs-keyword"&gt;function&lt;/span&gt; &lt;span class="hljs-params"&gt;()&lt;/span&gt; {&lt;/span&gt;
  &lt;span class="hljs-keyword"&gt;var&lt;/span&gt; frame = document.getElementById(&lt;span class="hljs-string"&gt;'draft___Frame'&lt;/span&gt;);
  frame.onload = &lt;span class="hljs-function"&gt;&lt;span class="hljs-keyword"&gt;function&lt;/span&gt; &lt;span class="hljs-params"&gt;()&lt;/span&gt; {&lt;/span&gt;
    document.getElementById(&lt;span class="hljs-string"&gt;'draft___Frame'&lt;/span&gt;).style.height = &lt;span class="hljs-string"&gt;'600px'&lt;/span&gt;;
  };
  frame.src = &lt;span class="hljs-string"&gt;'https://www.dreamwidth.org/stc/fck/editor/fckeditor.html?InstanceName=draft&amp;amp;Toolbar=Default'&lt;/span&gt;;
};&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=spindas&amp;ditemid=2452" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2014-10-10:2331049:2244</id>
    <link rel="alternate" type="text/html" href="https://spindas.dreamwidth.org/2244.html"/>
    <link rel="self" type="text/xml" href="https://spindas.dreamwidth.org/data/atom/?itemid=2244"/>
    <title>Reverse engineering the Firewatch.camera API (and pranking r/Firewatch)</title>
    <published>2016-02-18T23:22:05Z</published>
    <updated>2022-12-27T00:19:06Z</updated>
    <category term="hacks"/>
    <category term="firewatch"/>
    <category term="nodejs"/>
    <category term="code"/>
    <category term="tutorial"/>
    <category term="fun"/>
    <category term="games"/>
    <dw:music>she - Artifical Love</dw:music>
    <dw:mood>busy</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;a href="http://firewatchgame.com"&gt;Firewatch&lt;/a&gt; is a story-centric game by &lt;a href="http://camposanto.com"&gt;Campo Santo&lt;/a&gt; and &lt;a href="https://panic.com"&gt;Panic&lt;/a&gt;. I played it all the way through this weekend  and had a really great time with it. Besides the top-notch voice acting, gorgeous  visuals, and mystery-filled plot, one feature that&amp;rsquo;s been getting a lot of  attention is the disposable camera the player carries through most of the game.  Starting with 18 unused shots on the roll, you can fill it up with snaps of  trees and trails and plenty of sunsets peaking over the hills. At the end  they&amp;rsquo;re all uploaded to a personal page on &lt;a href="https://firewatch.camera"&gt;Firewatch.camera&lt;/a&gt;, where you can share them  or order prints from the &amp;quot;Fotodome&amp;quot;.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.spinda.net/files/blog/firewatch/photo_upload_screen.png" alt="Firewatch photo upload screen" width="690" height="401" /&gt;&lt;br /&gt;&lt;br /&gt;At the end of my own playthrough, I uploaded my shots and logged onto the site  to see them.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.spinda.net/files/blog/firewatch/my_camera_roll.png" alt="My camera roll" width="684" height="579" /&gt;&lt;br /&gt;&lt;br /&gt;But one of them came out&amp;hellip; weird.&lt;span class="cut-wrapper"&gt;&lt;span style="display: none;" id="span-cuttag___1" class="cuttag"&gt;&lt;/span&gt;&lt;b class="cut-open"&gt;(&amp;nbsp;&lt;/b&gt;&lt;b class="cut-text"&gt;&lt;a href="https://spindas.dreamwidth.org/2244.html#cutid1"&gt;Read more...&lt;/a&gt;&lt;/b&gt;&lt;b class="cut-close"&gt;&amp;nbsp;)&lt;/b&gt;&lt;/span&gt;&lt;div style="display: none;" id="div-cuttag___1" aria-live="assertive"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=spindas&amp;ditemid=2244" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2014-10-10:2331049:1988</id>
    <link rel="alternate" type="text/html" href="https://spindas.dreamwidth.org/1988.html"/>
    <link rel="self" type="text/xml" href="https://spindas.dreamwidth.org/data/atom/?itemid=1988"/>
    <title>Internships 2016</title>
    <published>2016-01-19T06:29:51Z</published>
    <updated>2017-01-23T04:54:01Z</updated>
    <category term="internships"/>
    <category term="jobs"/>
    <category term="status-update"/>
    <dw:music>nil.team nest - its not truth, but i believe it.</dw:music>
    <dw:mood>excited</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;p&gt;After doing Google Summer of Code last year, this is my first year of applying for internships. So I&amp;rsquo;m nervous-yet-excited, and am really hoping that resumes actually get looked at as I don&amp;rsquo;t have any &amp;ldquo;employers&amp;rdquo; to put down so far.&lt;/p&gt; &lt;p&gt;Places I&amp;rsquo;ve applied to:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="https://careers.mozilla.org/en-US/university/"&gt;&lt;strong&gt;Mozilla&lt;/strong&gt;&lt;/a&gt; in Mountain View &amp;ndash; open source, makers of Firefox and Rust!&amp;nbsp;This is kind of my dream job.&lt;/li&gt; &lt;li&gt;&lt;a href="https://www.adobe.com/careers/university/internships.html"&gt;&lt;strong&gt;Adobe&lt;/strong&gt;&lt;/a&gt; in San Jose &amp;ndash; they&amp;rsquo;re really easy to get to from home, which is great since I don&amp;rsquo;t have my driver&amp;rsquo;s license yet.&lt;/li&gt; &lt;li&gt;&lt;a href="https://careers.yahoo.com/us/students"&gt;&lt;strong&gt;Yahoo&lt;/strong&gt;&lt;/a&gt; in Sunnyvale &amp;ndash; also very reachable.&lt;/li&gt; &lt;li&gt;&lt;a href="https://www.facebook.com/careers/university/internships/engineering"&gt;&lt;strong&gt;Facebook&lt;/strong&gt;&lt;/a&gt; in Mountain View &amp;ndash; one at WhatsApp, where they use Erlang! And two elsewhere in the company.&lt;br /&gt;Lesson learned: if you have a Facebook account, make sure you log in before applying, &lt;s&gt;and use Chrome &amp;ndash; the &amp;ldquo;Skills&amp;rdquo; field is currently broken on Firefox&lt;/s&gt; &lt;em&gt;(this seems to be fixed now)&lt;/em&gt;. Also, some fields have character caps that aren't apparent unless you proceed to the next page and then go back.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Places I&amp;rsquo;ve looked at:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="https://www.janestreet.com/join-jane-street/internships/"&gt;&lt;strong&gt;Jane Street&lt;/strong&gt;&lt;/a&gt; &amp;ndash; it&amp;rsquo;d be fun to work in a functional language like OCaml, but they only have positions in NYC, London, and Hong Kong.&lt;/li&gt; &lt;li&gt;&lt;a href="https://galois.com/careers/software-engineer-intern/"&gt;&lt;strong&gt;Galois&lt;/strong&gt;&lt;/a&gt; &amp;ndash; another FP&amp;nbsp;(Haskell) shop that&amp;rsquo;s too far away (Portland).&lt;/li&gt; &lt;li&gt;&lt;a href="https://www.google.com/about/careers/students/"&gt;&lt;strong&gt;Google&lt;/strong&gt;&lt;/a&gt; &amp;ndash; they&amp;rsquo;re all closed up for the summer internships. I&amp;rsquo;ll have to apply earlier next year.&lt;/li&gt; &lt;li&gt;&lt;a href="https://nest.com/careers/"&gt;&lt;strong&gt;Nest&lt;/strong&gt;&lt;/a&gt; &amp;ndash; lots of positions open, but the closest office is in Palo Alto, which lacks good public transportation to and from San Jose.&lt;/li&gt; &lt;li&gt;&lt;a href="https://about.twitter.com/careers/teams/university"&gt;&lt;strong&gt;Twitter&lt;/strong&gt;&lt;/a&gt; &amp;ndash; again, the nearest office is in-state but not close enough (San Francisco).&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;As it turns out, location is a major limiting factor for me. I definitely need to start driving soon.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=spindas&amp;ditemid=1988" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2014-10-10:2331049:1247</id>
    <link rel="alternate" type="text/html" href="https://spindas.dreamwidth.org/1247.html"/>
    <link rel="self" type="text/xml" href="https://spindas.dreamwidth.org/data/atom/?itemid=1247"/>
    <title>Google Summer of Code 2015!</title>
    <published>2015-04-29T03:57:27Z</published>
    <updated>2021-01-26T10:16:09Z</updated>
    <category term="haskell"/>
    <category term="liquidhaskell"/>
    <category term="gsoc"/>
    <dw:music>Two Cirrate Cubiforms - Darius + Rotteen</dw:music>
    <dw:mood>excited</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;p&gt;My proposal for the Haskell's Google Summer of Code 2015 has been accepted!&amp;nbsp;I'm super excited for this. There's a list of the other accepted proposals &lt;a href="https://www.reddit.com/r/haskell/comments/342rvp/google_summer_of_code_18_projects_accepted/cqqt8mw"&gt;on reddit&lt;/a&gt;, and I've posted my full proposal as a &lt;a href="https://gist.github.com/spinda/b261167303515cc8a1d9"&gt;Gist&lt;/a&gt;. I'll be working on embedding &lt;a href="https://github.com/ucsd-progsys/liquidhaskell"&gt;LiquidHaskell&lt;/a&gt; signatures in Haskell's native type system. Woo!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=spindas&amp;ditemid=1247" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2014-10-10:2331049:986</id>
    <link rel="alternate" type="text/html" href="https://spindas.dreamwidth.org/986.html"/>
    <link rel="self" type="text/xml" href="https://spindas.dreamwidth.org/data/atom/?itemid=986"/>
    <title>More AUR Packages!</title>
    <published>2015-04-29T01:02:02Z</published>
    <updated>2017-01-23T04:54:17Z</updated>
    <category term="linux"/>
    <category term="package"/>
    <category term="aur"/>
    <category term="nemo"/>
    <category term="arch"/>
    <dw:music>Sootopolis City (Re-Orchestrated), by GlitchxCity</dw:music>
    <dw:mood>accomplished</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;strong&gt;New&amp;nbsp;Packages&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://aur.archlinux.org/packages/nemo-owncloud-git/"&gt;nemo-owncloud-git&lt;/a&gt;, for my &lt;a href="https://github.com/spinda/nemo-owncloud"&gt;port&lt;/a&gt; of the Nautilus ownCloud plugin to Nemo&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Adopted Packages&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://aur.archlinux.org/packages/gargoyle/"&gt;gargoyle&lt;/a&gt;, an interactive fiction player&lt;/li&gt;&lt;li&gt;&lt;a href="https://aur.archlinux.org/packages/nemo-dropbox-git/"&gt;nemo-dropbox-git&lt;/a&gt;, Dropbox plugin for Nemo&lt;/li&gt;&lt;li&gt;&lt;a href="https://aur.archlinux.org/packages/nemo-fileroller-git/"&gt;nemo-fileroller-git&lt;/a&gt;, File Roller plugin for Nemo&lt;/li&gt;&lt;li&gt;&lt;a href="https://aur.archlinux.org/packages/jips/"&gt;jips&lt;/a&gt;, an IPS patcher&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=spindas&amp;ditemid=986" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2014-10-10:2331049:717</id>
    <link rel="alternate" type="text/html" href="https://spindas.dreamwidth.org/717.html"/>
    <link rel="self" type="text/xml" href="https://spindas.dreamwidth.org/data/atom/?itemid=717"/>
    <title>I submitted my first package to the AUR today.</title>
    <published>2014-11-01T08:36:15Z</published>
    <updated>2017-01-23T04:54:23Z</updated>
    <category term="arch"/>
    <category term="theme"/>
    <category term="aur"/>
    <category term="linux"/>
    <category term="package"/>
    <dw:music>Soundscapes of Ur - Sketches</dw:music>
    <dw:mood>calm</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">The existing package for the &lt;a href="https://satya164.deviantart.com/art/elementary-Dark-GTK3-Theme-244257862"&gt;elementary Dark theme&lt;/a&gt;, aptly named &lt;a href="https://aur.archlinux.org/packages/elementary-dark-theme/"&gt;elementary-dark-theme&lt;/a&gt;, is... really bad. It downloads the source archive over HTTP instead of HTTPS, doesn't use checksums to verify the download, gives the wrong source URL&amp;nbsp;and license... So I put up &lt;a href="https://aur.archlinux.org/packages/elementary-dark/"&gt;elementary-dark&lt;/a&gt;, and filed a request to replace (&amp;quot;merge&amp;quot;) the old package with the new one. After doing a lot of work with Debian packaging in the past, I was pleasantly surprised by how easy the PKGBUILD format is to work with.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=spindas&amp;ditemid=717" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2014-10-10:2331049:332</id>
    <link rel="alternate" type="text/html" href="https://spindas.dreamwidth.org/332.html"/>
    <link rel="self" type="text/xml" href="https://spindas.dreamwidth.org/data/atom/?itemid=332"/>
    <title>OgreVR Milestone 1: Basic Head Tracking</title>
    <published>2014-10-10T04:17:54Z</published>
    <updated>2017-01-23T04:54:29Z</updated>
    <category term="3d"/>
    <category term="programming"/>
    <category term="ogrevr"/>
    <category term="rift"/>
    <category term="oculus"/>
    <category term="dk2"/>
    <category term="ogre"/>
    <category term="game"/>
    <dw:mood>busy</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;p&gt;I'm working on integrating the Oculus Rift DK2 with the &lt;a href="http://ogre3d.org/"&gt;Ogre3D engine&lt;/a&gt;. Last night I got basic head tracking working: moving the DK2 in real life translates into camera movement in-game. The goal is to build a toolkit that makes building something for the Rift in Ogre super duper easy.&lt;/p&gt;
&lt;iframe width="500" height="281" frameborder="0" allowfullscreen="" mozallowfullscreen="" webkitallowfullscreen="" src="//player.vimeo.com/video/103370362"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=spindas&amp;ditemid=332" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
</feed>
