<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>SpeakMy.Name blog posts</title>
  <description>recent posts on SpeakMy.Name blog</description>
  <link>http://speakmy.name</link>
  <atom:link href="http://speakmy.name/feed.xml" rel="self" type="application/rss+xml" />
  <pubDate>Sun, 28 Sep 2014 12:00:00 GMT</pubDate>
  <ttl>60</ttl>

  
  <item>
    <title>Visualising the censorship - with NodeJS, Firebase, Tableau, and some client-side Javascript</title>
    <link>http://speakmy.name/2014/09/28/visualising-the-censorship/</link>
    <description>
      &lt;p&gt;One day a client of mine found his websites banned by the Russian govenment&amp;#8217;s
censorship. How ban it is? How many users are affected? How to even find it out?
With some help from a number of free (and one cheap) tools, I&amp;#8217;ll show you how
to answer this question with a nice data visualisation.&lt;/p&gt;
    </description>
    <pubDate>Sun, 28 Sep 2014 12:00:00 GMT</pubDate>
    <guid>http://speakmy.name/2014/09/28/visualising-the-censorship/</guid>
  </item>
  
  <item>
    <title>Modifying an interface{}-ed struct in Go via reflection</title>
    <link>http://speakmy.name/2014/09/14/modifying-interfaced-go-struct/</link>
    <description>
      &lt;p&gt;As &lt;code&gt;interface{}&lt;/code&gt; is Go&amp;#8217;s go-to tool when accepting unknown types in a
function, sometimes we need to work on modify those types. One of the tasks
that comes up fairly often is to modify a field in a structure that was
passed into a function via interface{}-type parameter.&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s see how we can do it easily.&lt;/p&gt;
    </description>
    <pubDate>Sun, 14 Sep 2014 12:00:00 GMT</pubDate>
    <guid>http://speakmy.name/2014/09/14/modifying-interfaced-go-struct/</guid>
  </item>
  
  <item>
    <title>Go kata - generating random strings</title>
    <link>http://speakmy.name/2014/08/10/go-kata-generating-random-strings/</link>
    <description>
      &lt;p&gt;Let&amp;#8217;s look at a small exercise to generate a large number of unique
string codes. It turned out to be an interesting kata, with a number of
unexpected discoveries made along the way.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll also discuss a number of interesting points and tricks learned doing it.&lt;/p&gt;
    </description>
    <pubDate>Sun, 10 Aug 2014 12:00:00 GMT</pubDate>
    <guid>http://speakmy.name/2014/08/10/go-kata-generating-random-strings/</guid>
  </item>
  
  <item>
    <title>HTTP request debugging in Go with httputil</title>
    <link>http://speakmy.name/2014/07/29/http-request-debugging-in-go/</link>
    <description>
      &lt;p&gt;Many tools and libraries which deal with &lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt; requests provide means
to dump full request and response data for debug purposes. http package
in Go, by itself, does not provide this capability &amp;#8211; but it can be easily
extended with httputil to do so.&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s see how both packages work together.&lt;/p&gt;
    </description>
    <pubDate>Tue, 29 Jul 2014 12:00:00 GMT</pubDate>
    <guid>http://speakmy.name/2014/07/29/http-request-debugging-in-go/</guid>
  </item>
  
  <item>
    <title>GZipped JSON files and Logstash</title>
    <link>http://speakmy.name/2014/01/13/gzipped-json-files-and-logstash/</link>
    <description>
      &lt;p&gt;Working on moving a large part of data from our database into the offline
storage, I and my team have faced a problem of keeping it gzipped in the
filesystem, but at the same time making it easy to send it for processing
to Elastic Search. The obvious solution was to use Logstash as the middleman,
but it doesn&amp;#8217;t really handle archived data from the box.&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s see how we can write an input plugin for Logstash to make this process
easy.&lt;/p&gt;
    </description>
    <pubDate>Mon, 13 Jan 2014 12:00:00 GMT</pubDate>
    <guid>http://speakmy.name/2014/01/13/gzipped-json-files-and-logstash/</guid>
  </item>
  
  <item>
    <title>Automatic system backups with backup gem and some shell scripting - part 3, large file structures</title>
    <link>http://speakmy.name/2014/01/12/automatic-backups-with-ruby-and-linux-shell-part-3/</link>
    <description>
      &lt;p&gt;In &lt;a href=&quot;/2013/05/13/automatic-backups-with-ruby-and-linux-shell-part-1/&quot;&gt;part 1&lt;/a&gt;
and &lt;a href=&quot;/2013/05/20/automatic-backups-with-ruby-and-linux-shell-part-2/&quot;&gt;part 2&lt;/a&gt; of
this series we set up a remote image file as the backup storage, and learned
how to use Backup gem to back up a database and small data directories.&lt;/p&gt;
&lt;p&gt;In the final part, let&amp;#8217;s see how we can handle a backup of file directories
with a large number of files in them (as it is the case for many web sites),
and wrap it all up.&lt;/p&gt;
    </description>
    <pubDate>Sun, 12 Jan 2014 12:00:00 GMT</pubDate>
    <guid>http://speakmy.name/2014/01/12/automatic-backups-with-ruby-and-linux-shell-part-3/</guid>
  </item>
  
  <item>
    <title>Automatic system backups with backup gem and some shell scripting - part 2, using backup gem</title>
    <link>http://speakmy.name/2013/05/20/automatic-backups-with-ruby-and-linux-shell-part-2/</link>
    <description>
      &lt;p&gt;In &lt;a href=&quot;/2013/05/13/automatic-backups-with-ruby-and-linux-shell-part-1/&quot;&gt;part 1&lt;/a&gt; of
this series we set up a remote image file as the backup storage, with some
extra scripts for easier operations.&lt;/p&gt;
&lt;p&gt;Now, let&amp;#8217;s move on to actually backing up our data, using ruby backup gem.
I&amp;#8217;ll show you today how you can quickly and easily back up your database,
and essential small-to-medium-sized file directories.&lt;/p&gt;
    </description>
    <pubDate>Mon, 20 May 2013 12:00:00 GMT</pubDate>
    <guid>http://speakmy.name/2013/05/20/automatic-backups-with-ruby-and-linux-shell-part-2/</guid>
  </item>
  
  <item>
    <title>Automatic system backups with backup gem and some shell scripting - part 1, the preparation</title>
    <link>http://speakmy.name/2013/05/13/automatic-backups-with-ruby-and-linux-shell-part-1/</link>
    <description>
      &lt;p&gt;One of the most important things when setting up a new application server, especially for a greenfield project on untested hardware, is to make sure you have a solid backup setup to ensure the safety of your data.&lt;/p&gt;
&lt;p&gt;Ruby makes it really easy with backup gem, and with some shell scripting we can supplement it to build a really robust and effective backup solution.&lt;/p&gt;
    </description>
    <pubDate>Mon, 13 May 2013 12:00:00 GMT</pubDate>
    <guid>http://speakmy.name/2013/05/13/automatic-backups-with-ruby-and-linux-shell-part-1/</guid>
  </item>
  
  <item>
    <title>vim - Craftsman's Precision Tool</title>
    <link>http://speakmy.name/2013/05/11/vim-craftsmans-precision-tool/</link>
    <description>
      &lt;p&gt;Slides from my lightning talk about the origins of vim editor, and explaining some basic ideas behind it.&lt;/p&gt;
    </description>
    <pubDate>Sat, 11 May 2013 12:00:00 GMT</pubDate>
    <guid>http://speakmy.name/2013/05/11/vim-craftsmans-precision-tool/</guid>
  </item>
  
  <item>
    <title>Processes, Threads and Ruby - Presentation Slides</title>
    <link>http://speakmy.name/2013/04/22/processes-threads-and-ruby/</link>
    <description>
      &lt;p&gt;Presentation from the talk that I gave at JN Solutions office on April, 2013. Gives an introduction into working with processes and threads in Ruby, together with a deeper look at some underlying differences between various Ruby versions and implementations.&lt;/p&gt;
    </description>
    <pubDate>Mon, 22 Apr 2013 12:00:00 GMT</pubDate>
    <guid>http://speakmy.name/2013/04/22/processes-threads-and-ruby/</guid>
  </item>
  
</channel>
</rss>