<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: granttimmerman</title><link>https://news.ycombinator.com/user?id=granttimmerman</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 07 Apr 2026 07:24:21 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=granttimmerman" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by granttimmerman in "Ask HN: Does anyone else find the AWS Lambda developer experience frustrating?"]]></title><description><![CDATA[
<p>(Disclaimer: I work on Google Cloud Functions)<p>With Google Cloud Functions, you can run your function locally using the Function Framework libraries (available in all Cloud Function languages) [0]. These libraries are used in production Cloud Functions, so you're not emulating the runtime. The feedback loop / devX is pretty simple with just 1 command to run the function locally like a library for every language.<p>We have some guides on local development here [1]. Our samples have system tests that use the FF.<p>You also can bundle your function in a container after building it with `pack build` [2]. This provides an exact container environment with things like environment variables and system packages.<p>We're working on improving eventing devX, but we have some `curl` examples here [3]. Connecting multiple functions together eloquently is still something to be desired though.<p>[0] <a href="https://github.com/GoogleCloudPlatform/functions-framework" rel="nofollow">https://github.com/GoogleCloudPlatform/functions-framework</a>
[1] <a href="https://cloud.google.com/functions/docs/running/overview" rel="nofollow">https://cloud.google.com/functions/docs/running/overview</a>
[2] <a href="https://cloud.google.com/functions/docs/building/pack" rel="nofollow">https://cloud.google.com/functions/docs/building/pack</a>
[3] <a href="https://cloud.google.com/functions/docs/running/calling" rel="nofollow">https://cloud.google.com/functions/docs/running/calling</a></p>
]]></description><pubDate>Tue, 20 Apr 2021 05:06:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=26870884</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=26870884</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26870884</guid></item><item><title><![CDATA[New comment by granttimmerman in "How Stripe's COO approaches company-building [audio]"]]></title><description><![CDATA[
<p>She did say live plants are very important.</p>
]]></description><pubDate>Wed, 16 May 2018 23:40:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=17087351</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=17087351</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17087351</guid></item><item><title><![CDATA[New comment by granttimmerman in "Airbus moves 130k employees from Microsoft Office to GSuite"]]></title><description><![CDATA[
<p>The comment was about trending G Suite into open source.<p>You've got to start somewhere. It starts with developer samples, moves into tools, languages (Apps Script), then sub-products.<p>If you're asking for Google to open source it's products in one big blow, I don't think that will happen without smaller steps. I'm on the team that would probably best start the conversation of considering G Suite in open source. Would love to hear proposals.</p>
]]></description><pubDate>Fri, 16 Mar 2018 19:47:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=16603511</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=16603511</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=16603511</guid></item><item><title><![CDATA[New comment by granttimmerman in "Airbus moves 130k employees from Microsoft Office to GSuite"]]></title><description><![CDATA[
<p>(Disclaimer: I work on G Suite Open Source)
I open sourced our developer samples this week: github.com/gsuitedevs<p>There's an increasing amount of things you can do with G Suite, almost all our products have APIs and Apps Script libraries.<p>If there's something missing in our APIs, feel free to let us know.</p>
]]></description><pubDate>Fri, 16 Mar 2018 16:30:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=16601728</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=16601728</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=16601728</guid></item><item><title><![CDATA[New comment by granttimmerman in "Deepjazz: AI-generated 'jazz'"]]></title><description><![CDATA[
<p>I built a very similar project for classical music using Theano and MusicXML for a Sound Capstone Project at UW.<p>Blogpost + music:
<a href="https://medium.com/@granttimmerman/algo-rhythm-music-composition-using-neural-networks-f89897ff2df7" rel="nofollow">https://medium.com/@granttimmerman/algo-rhythm-music-composi...</a><p>GitHub: <a href="https://github.com/grant/algo-rhythm" rel="nofollow">https://github.com/grant/algo-rhythm</a></p>
]]></description><pubDate>Mon, 18 Apr 2016 18:40:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=11522165</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=11522165</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=11522165</guid></item><item><title><![CDATA[React.js: The Front End Framework of the Future]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.youtube.com/watch?v=iVVZfPbNCtI">https://www.youtube.com/watch?v=iVVZfPbNCtI</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=9405014">https://news.ycombinator.com/item?id=9405014</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 19 Apr 2015 21:51:20 +0000</pubDate><link>https://www.youtube.com/watch?v=iVVZfPbNCtI</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=9405014</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9405014</guid></item><item><title><![CDATA[DubHacks Spring]]></title><description><![CDATA[
<p>Article URL: <a href="http://15s.dubhacks.co/">http://15s.dubhacks.co/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=9329588">https://news.ycombinator.com/item?id=9329588</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 06 Apr 2015 18:01:04 +0000</pubDate><link>http://15s.dubhacks.co/</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=9329588</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9329588</guid></item><item><title><![CDATA[New comment by granttimmerman in "Nuclide: An open-source IDE for React Native"]]></title><description><![CDATA[
<p>That's a lot of `padding-top`. Almost looks like the vertical height is misaligned.</p>
]]></description><pubDate>Fri, 27 Mar 2015 03:43:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=9274647</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=9274647</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9274647</guid></item><item><title><![CDATA[Welcome to the New OpenTable]]></title><description><![CDATA[
<p>Article URL: <a href="http://blog.opentable.com/">http://blog.opentable.com/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=9140940">https://news.ycombinator.com/item?id=9140940</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 03 Mar 2015 21:37:25 +0000</pubDate><link>http://blog.opentable.com/</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=9140940</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9140940</guid></item><item><title><![CDATA[Open Table's New Brand]]></title><description><![CDATA[
<p>Article URL: <a href="http://brand.opentable.com/">http://brand.opentable.com/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=9140910">https://news.ycombinator.com/item?id=9140910</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 03 Mar 2015 21:31:19 +0000</pubDate><link>http://brand.opentable.com/</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=9140910</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9140910</guid></item><item><title><![CDATA[Product Grunt: The worst old products, every day]]></title><description><![CDATA[
<p>Article URL: <a href="http://www.productgrunt.com/">http://www.productgrunt.com/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=8436120">https://news.ycombinator.com/item?id=8436120</a></p>
<p>Points: 7</p>
<p># Comments: 1</p>
]]></description><pubDate>Fri, 10 Oct 2014 03:23:53 +0000</pubDate><link>http://www.productgrunt.com/</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=8436120</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8436120</guid></item><item><title><![CDATA[Vinli: Making cars smarter, safer and more fun]]></title><description><![CDATA[
<p>Article URL: <a href="http://vin.li">http://vin.li</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=8287914">https://news.ycombinator.com/item?id=8287914</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 08 Sep 2014 23:37:16 +0000</pubDate><link>http://vin.li</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=8287914</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8287914</guid></item><item><title><![CDATA[New comment by granttimmerman in "Ask HN: What's your best startup idea that you're not going to pursue?"]]></title><description><![CDATA[
<p>In Seattle, Stash (<a href="https://angel.co/stash-4" rel="nofollow">https://angel.co/stash-4</a>) is doing this.</p>
]]></description><pubDate>Thu, 04 Sep 2014 00:58:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=8266249</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=8266249</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8266249</guid></item><item><title><![CDATA[New comment by granttimmerman in "Show HN: Play music by typing"]]></title><description><![CDATA[
<p>I particularly like input = "qwdtytdwqertytreqxctntcxzxctbtvwqwdtytdwqertytreqxctntcxzxctbtvwqwdtytdwqertytreqxctntcxzxctbtvwqwdtytdwqertytreqxctntcxzxctbtvwqwdtytdwqertytreqxctntcxzxctbtvw"</p>
]]></description><pubDate>Sun, 24 Aug 2014 06:45:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=8217905</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=8217905</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8217905</guid></item><item><title><![CDATA[New comment by granttimmerman in "Show HN: Play music by typing"]]></title><description><![CDATA[
<p>I created a music auto-player since I was too lazy to play your guy's songs by myself. Paste this in the console.<p><pre><code>  // SETTINGS
  var input = "rsa ecde srgu yhgr bv rsa ecde srgu yhgr bv hybtg ser erv";
  input += " hybtg iii r hybtg ser erv tvr rrr rvgres rrr rvg rrr rvgres ";
  input += "ggg rgh grs sxebbe cuuuhbgres grs sxebbe cbbbgvrsai";
  var TIME_INTERVAL = 300;

  // Add jquery
  var script = document.createElement('script');
  script.src = 'http://code.jquery.com/jquery-1.11.0.min.js';
  script.type = 'text/javascript';
  document.getElementsByTagName('head')[0].appendChild(script);

  function play () {
    // Sound array setup
    var soundArray = [];
    var down = $.Event("keydown");
    var up = $.Event("keyup");
    input = '  ' + input; // hack
    for (var i = 0; i < input.length; ++i) {
      soundArray.push(input.toUpperCase().charCodeAt(i));
    }

    // Start sound
    var index = 0;
    function playSound () {
      up.which = soundArray[index];
      $("body").trigger(up);
      ++index;

      down.which = soundArray[index];
      $("body").trigger(down);
      // // is there another?
      if (index < soundArray.length) {
        setTimeout(playSound, TIME_INTERVAL);
      }
    }
    playSound();
  }

  (function loadjQuery () {
    if (typeof jQuery === 'undefined') {
      setTimeout(loadjQuery, 100);
    } else {
      play();
    }
  })();</code></pre></p>
]]></description><pubDate>Sun, 24 Aug 2014 06:22:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=8217872</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=8217872</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8217872</guid></item><item><title><![CDATA[New comment by granttimmerman in "Show HN: LCON – Ludicrously Compact Object Notation"]]></title><description><![CDATA[
<p>For anybody who wants a little bit more structure than LCON but less clutter than JSON, I'd recommend checking out CSON.<p><a href="https://github.com/bevry/cson" rel="nofollow">https://github.com/bevry/cson</a></p>
]]></description><pubDate>Sat, 23 Aug 2014 02:21:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=8214796</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=8214796</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8214796</guid></item><item><title><![CDATA[New comment by granttimmerman in "Show HN: Pseudo3d old school racing game made with pure JavaScript"]]></title><description><![CDATA[
<p>I love being able to drive in reverse at 300km/h.</p>
]]></description><pubDate>Mon, 18 Aug 2014 06:27:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=8191609</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=8191609</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8191609</guid></item><item><title><![CDATA[New comment by granttimmerman in "ColorRun – Simple browser game about colors"]]></title><description><![CDATA[
<p>Fun stuff.<p><pre><code>  function action(){
    var opacity1 = $('#color-1')[0].getContext('2d').getImageData(0,0,1,1).data[3];
    var opacity2 = $('#color-2')[0].getContext('2d').getImageData(0,0,1,1).data[3];
    if(opacity1 > opacity2){
      $('#color-1').trigger('click');
    }else{
      $('#color-2').trigger('click');
    } 
  };

  setInterval('action()', 100);</code></pre></p>
]]></description><pubDate>Sun, 17 Aug 2014 03:05:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=8188418</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=8188418</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8188418</guid></item><item><title><![CDATA[New comment by granttimmerman in "Game of Hacks"]]></title><description><![CDATA[
<p>Here's how to hack the hacking game. Pretty simple (in your console):<p>app.sendAnswer({answer: 1,time: -999999999999})<p>(I added the instructions on the leaderboard itself)</p>
]]></description><pubDate>Tue, 05 Aug 2014 03:11:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=8135329</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=8135329</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8135329</guid></item><item><title><![CDATA[New comment by granttimmerman in "Show HN: Markov chains explained visually"]]></title><description><![CDATA[
<p>Markov chain circle generator: <a href="https://gist.github.com/grant/29afaa91349b1928b05e" rel="nofollow">https://gist.github.com/grant/29afaa91349b1928b05e</a></p>
]]></description><pubDate>Tue, 29 Jul 2014 20:09:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=8104682</link><dc:creator>granttimmerman</dc:creator><comments>https://news.ycombinator.com/item?id=8104682</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8104682</guid></item></channel></rss>