<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Go on Cybernetist</title>
    <link>https://cybernetist.com/tags/go/</link>
    <description>Recent content in Go on Cybernetist</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 13 May 2024 01:57:54 +0000</lastBuildDate>
    <atom:link href="https://cybernetist.com/tags/go/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Using Cuelang With Go for LLM Data Extraction</title>
      <link>https://cybernetist.com/2024/05/13/using-cuelang-with-go-for-llm-data-extraction/</link>
      <pubDate>Mon, 13 May 2024 01:57:54 +0000</pubDate>
      <guid>https://cybernetist.com/2024/05/13/using-cuelang-with-go-for-llm-data-extraction/</guid>
      <description>&lt;p&gt;I have been aware of &lt;a href=&#34;https://cuelang.org/?ref=cybernetist.com&#34;&gt;Cuelang&lt;/a&gt; (CUE) pretty much since the early stages of its development.&#xA;It always seemed to me the language had the potential to solve a lot of problems in the ocean of YAML which we found ourselves drowning&#xA;in the Cloud Native ecosystem.&lt;/p&gt;&#xA;&lt;p&gt;CUE excels in validating data against strictly defined schemas and is equally capable of generating code for data models from them.&#xA;These are wonderful features, though I hadn’t found the perfect application for them in any of the projects I had been working on.&#xA;That changed recently with my increased involvement in projects utilizing &lt;a href=&#34;https://en.wikipedia.org/wiki/Large_language_model&#34;&gt;Large Language Models&lt;/a&gt; (LLM)s.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Go or Rust? Just Listen to the Bots</title>
      <link>https://cybernetist.com/2024/04/25/go-or-rust-just-listen-to-the-bots/</link>
      <pubDate>Thu, 25 Apr 2024 08:21:47 +0100</pubDate>
      <guid>https://cybernetist.com/2024/04/25/go-or-rust-just-listen-to-the-bots/</guid>
      <description>&lt;p&gt;It all started as a joke. I was in a group chat with a few of my friends and we were talking about football&#xA;(soccer for the American readers). I entered the chat during a mildly heated discussion about the manager&#xA;of a team one of my friends supports. It was going on for a bit while with seemingly no end in sight when&#xA;it occurred to me that I could just as well clone my friends’ voices and pit them against each other by&#xA;backing them with LLMs, and I’d probably not see much difference in the conversation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Circular Buffer Performance Trick</title>
      <link>https://cybernetist.com/2024/04/11/circular-buffer-performance-trick/</link>
      <pubDate>Thu, 11 Apr 2024 10:00:10 +0100</pubDate>
      <guid>https://cybernetist.com/2024/04/11/circular-buffer-performance-trick/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update 12/04/2024:&lt;/strong&gt; Read at the end of the post for more info.&lt;/p&gt;&#xA;&lt;p&gt;I have been hacking on AI agents recently for both fun and profit as part of the work I&amp;rsquo;m doing for one of my clients.&lt;/p&gt;&#xA;&lt;p&gt;They&amp;rsquo;re mostly text-to-speech (TTS) agents leveraging LLMs for generating text which is then turned into voice by a trained TTS model.&lt;/p&gt;&#xA;&lt;p&gt;As you [probably] know, maintaining conversation with LLMs over a longer period of time requires maintaining the conversational context and&#xA;sending it back to the LLM along with your follow-up prompts to prevent the LLMs from &amp;ldquo;hallucinating&amp;rdquo; from the get-go.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Small Tool for Exploring Text Embeddings</title>
      <link>https://cybernetist.com/2024/03/27/a-small-tool-for-exploring-text-embeddings/</link>
      <pubDate>Wed, 27 Mar 2024 09:48:26 +0000</pubDate>
      <guid>https://cybernetist.com/2024/03/27/a-small-tool-for-exploring-text-embeddings/</guid>
      <description>&lt;p&gt;Last year &lt;a href=&#34;https://cybernetist.com/2024/01/07/fun-with-embeddings/&#34;&gt;I wrote about the superpowers text embeddings can give you and how I tried using them to compare the song lyrics of&#xA;some music artists&lt;/a&gt;. Though the results failed to paint the picture&#xA;I hoped for &amp;ndash; this was due to the methodology, or rather lack thereof &amp;ndash; it made me&#xA;appreciate the importance of simple &lt;em&gt;open source tools (OSS)&lt;/em&gt; in the currently booming AI/LLM space.&lt;/p&gt;&#xA;&lt;p&gt;To get to the point of displaying the embedding projections in the blog post I had to jump through some hoops and combine a lot of&#xA;different Go modules before I could finally generate the nice interactive plots from the computed data. This wasn&amp;rsquo;t ideal I knew even back&#xA;then but I wrote a blog post on a whim trying to quickly prove a silly point to a friend of mine. So at the time, I made do with whatever was necessary.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fun With AI Embeddings in Go</title>
      <link>https://cybernetist.com/2024/01/07/fun-with-embeddings/</link>
      <pubDate>Sun, 07 Jan 2024 11:48:26 +0000</pubDate>
      <guid>https://cybernetist.com/2024/01/07/fun-with-embeddings/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update 9th January, 2024: Changed the title to &amp;ldquo;Fun With AI Embeddings in Go&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Before the end of last year, I visited San Francisco (SF) for a few weeks. It felt great meeting some old friends and ex-colleagues face-to-face after a long hiatus. There is something incredibly refreshing about being in the same room with the folks you&amp;rsquo;ve spent chatting to so much time over the past few years on Zoom or Slack. Real-life connections remain undefeated and I hope it will stay that way.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting Started With LDAP in Go</title>
      <link>https://cybernetist.com/2020/05/18/getting-started-with-go-ldap/</link>
      <pubDate>Mon, 18 May 2020 19:43:12 +0100</pubDate>
      <guid>https://cybernetist.com/2020/05/18/getting-started-with-go-ldap/</guid>
      <description>&lt;p&gt;Recently I had to write a fair amount of Go code which interacts with Active Directory (AD) for one of my clients. AD uses Lightweight Directory Access Protocol (LDAP) [1] for client-server communication. LDAP is a very mature and powerful protocol to interact with directory services, though some of my friends argue that it&amp;rsquo;s a bit of a relic of past at this point. I disagree with this sentiment, but my explanation why would probably take a whole another blog post.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Build a Graph of Kubernetes API Objects in Go</title>
      <link>https://cybernetist.com/2020/05/05/build-a-graph-of-kubernetes-api-objects-in-go/</link>
      <pubDate>Sun, 03 May 2020 10:11:53 +0100</pubDate>
      <guid>https://cybernetist.com/2020/05/05/build-a-graph-of-kubernetes-api-objects-in-go/</guid>
      <description>&lt;p&gt;Over the past few months, I have been rekindling my interest in &lt;a href=&#34;https://en.wikipedia.org/wiki/Graph_(discrete_mathematics)&#34;&gt;graph theory&lt;/a&gt;. I&amp;rsquo;m not quite sure what has caused this shift in my mind as I didn&amp;rsquo;t play with graphs too much since I graduated many moons ago, besides the occasional interview preparation. Maybe it was my reading about all the new graph databases that have come to existence over the past few years, or maybe it was my interest in the &lt;a href=&#34;https://arxiv.org/abs/1901.00596&#34;&gt;Graph Neural Networks&lt;/a&gt; which also seem to have (re)gained a lot of attention in the research community or maybe, stimulated by the recent coronavirus outbreak, it was the result of my random thinking of the ever so increasingly interconnected nature of our world.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Breadth-first search using Go standard library</title>
      <link>https://cybernetist.com/2019/03/09/breadth-first-search-using-go-standard-library/</link>
      <pubDate>Mon, 02 Sep 2019 23:28:55 +0000</pubDate>
      <guid>https://cybernetist.com/2019/03/09/breadth-first-search-using-go-standard-library/</guid>
      <description>&lt;p&gt;Just like many Go developers out there, I&amp;rsquo;m a big fan of Go standard library. Over the past few years I&amp;rsquo;ve been hacking on Go, I&amp;rsquo;ve discovered some real gems that not only made my life as a developer easier (no need to maintain unnecessary code), but they also made my code considerably more readable for others to follow. &lt;a href=&#34;https://cybernetist.com/2019/01/24/random-weighted-draws-in-go/&#34;&gt;The last time I blogged&lt;/a&gt; I talked about how you can leverage Go standard library to generate weighted random draws.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Weighted Random Draws in Go</title>
      <link>https://cybernetist.com/2019/01/24/random-weighted-draws-in-go/</link>
      <pubDate>Thu, 24 Jan 2019 17:42:48 +0000</pubDate>
      <guid>https://cybernetist.com/2019/01/24/random-weighted-draws-in-go/</guid>
      <description>&lt;p&gt;When working on my last &lt;a href=&#34;https://github.com/milosgajdos/go-filter&#34;&gt;project&lt;/a&gt; I needed to find a way to draw a random number from a list based on some weight assigned to it i.e. given a list of numbers each of which has a weight assigned to it, I had to find a way to draw a number from the list based on the weight. The numbers which have higher weight assigned to them should be more likely to be drawn than the numbers with lower weights.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Apollo program, Kalman Filter and Go</title>
      <link>https://cybernetist.com/2019/01/13/apollo-kalman-filter-and-go/</link>
      <pubDate>Sun, 13 Jan 2019 22:53:08 +0000</pubDate>
      <guid>https://cybernetist.com/2019/01/13/apollo-kalman-filter-and-go/</guid>
      <description>&lt;p&gt;Before the end of the last year I went to see a movie made by one of my favourite movie directors,  &lt;a href=&#34;https://www.imdb.com/name/nm3227090/&#34;&gt;Damien Chazelle&lt;/a&gt;. The movie is called &lt;a href=&#34;https://www.imdb.com/title/tt1213641/&#34;&gt;First Man&lt;/a&gt; and it tells the story of the journey of the first man on the Moon. I am also a bit of a space nerd, so my expectations were sky high. I was happy to find out the movie delivered on its promise.&lt;/p&gt;&#xA;&lt;p&gt;What I liked about it the most was that it showed the [human] sacrifice that had to be made in order to achieve, what has arguably been one of the biggest achievements of humankind to date. Many lives were ruined [and lost] in the pursuit of greatness and place in the history. Astronauts would compete with each other for the spots on the spaceships in spite of knowing they might not return back to Earth at all. Besides every [technological] achievement there is a price to pay. Some are high, others are higher. This was the golden era of space exploration, the era when the geopolitical tensions around the world were immense.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Edge computing with Go and Intel Movidius Neural Compute Stick</title>
      <link>https://cybernetist.com/2018/10/07/edge-computing-with-go-and-intel-movidius-neural-compute-stick/</link>
      <pubDate>Sun, 07 Oct 2018 17:23:08 +0000</pubDate>
      <guid>https://cybernetist.com/2018/10/07/edge-computing-with-go-and-intel-movidius-neural-compute-stick/</guid>
      <description>&lt;p&gt;This summer I spent quite a bit of time speaking to various people about &amp;ldquo;intelligent&amp;rdquo; &lt;a href=&#34;https://en.wikipedia.org/wiki/Edge_computing&#34;&gt;Edge computing&lt;/a&gt;. I put double quotes around the word &lt;em&gt;intelligent&lt;/em&gt; to avoid the wrath of the thought leaders on the internet as they fight each other over what intelligence is and what is not.&lt;/p&gt;&#xA;&lt;p&gt;The more I talked to people the more I was realizing the possibilities and opportunities the edge computing opens up for the future: &amp;ldquo;injecting&amp;rdquo; intelligence into dumb physical objects seems akin to injecting &amp;ldquo;life&amp;rdquo; to dead objects, at least for us, scifi fans, which makes up for interesting vision of the future (for brevity let&amp;rsquo;s ignore the IoT security issues in this post). The possibilities are even more exciting in light of machine learning and neural networks models getting lighter and more easily deployable in the physical space. And let&amp;rsquo;s not forget about all the efforts to bring intelligence into some variation of IoT blockchain.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hopfield networks in Go</title>
      <link>https://cybernetist.com/2017/03/12/hopfield-networks-in-go/</link>
      <pubDate>Sun, 12 Mar 2017 22:12:58 +0000</pubDate>
      <guid>https://cybernetist.com/2017/03/12/hopfield-networks-in-go/</guid>
      <description>&lt;p&gt;As I continue to explore the realm of &lt;a href=&#34;https://en.wikipedia.org/wiki/Artificial_neural_network&#34;&gt;Artificial Neural Networks&lt;/a&gt; (ANN) I keep learning about some really cool types of neural networks which don&amp;rsquo;t get much attention these days. Many of these networks have not found much practical use in the &amp;ldquo;real world&amp;rdquo; for various reasons. Nevertheless, I find learning about them in my free time somewhat stimulating as they often make me think of some problems from a different perspective. One such ANN is called &lt;a href=&#34;https://en.wikipedia.org/wiki/Hopfield_network&#34;&gt;Hopfield Network&lt;/a&gt; (a.k.a. &lt;em&gt;Hopfield net&lt;/em&gt;), named after its inventor &lt;a href=&#34;https://en.wikipedia.org/wiki/John_Hopfield&#34;&gt;John Hopfield&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Self-organizing Maps in Go</title>
      <link>https://cybernetist.com/2017/01/13/self-organizing-maps-in-go/</link>
      <pubDate>Fri, 13 Jan 2017 11:22:59 +0000</pubDate>
      <guid>https://cybernetist.com/2017/01/13/self-organizing-maps-in-go/</guid>
      <description>&lt;p&gt;Couple of months ago I came across a type of Artificial Neural Network I knew very little about: &lt;a href=&#34;https://en.wikipedia.org/wiki/Self-organizing_map&#34;&gt;Self-organizing map&lt;/a&gt; (SOM). I vaguely remembered the term from my university studies. We scratched upon it when we were learning about data clustering algorithms. So when I re-discovered it again, my knowledge of it was very basic, almost non-existent. It felt like a great opportunity to learn something new and interesting, so I rolled up my sleeves, dived into reading and hacking.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fun with neural networks in Go</title>
      <link>https://cybernetist.com/2016/07/27/fun-with-neural-networks-in-go/</link>
      <pubDate>Wed, 27 Jul 2016 11:00:31 +0000</pubDate>
      <guid>https://cybernetist.com/2016/07/27/fun-with-neural-networks-in-go/</guid>
      <description>&lt;p&gt;My rekindled interest in Machine Learning turned my attention to Neural Networks or more precisely &lt;a href=&#34;https://en.wikipedia.org/wiki/Artificial_neural_network&#34;&gt;Artificial Neural Networks&lt;/a&gt; (ANN). I started tinkering with ANN by building &lt;a href=&#34;https://github.com/milosgajdos/ml-examples/tree/master/rlang/neuralNetworks&#34;&gt;simple prototypes in R&lt;/a&gt;. However, my basic knowledge of the topic only got me so far. I struggled to understand why certain parameters work better than others. I wanted to understand the inner workings of ANN learning better. So I built a long list of questions and started looking for answers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tenus Golang Powered Linux Networking</title>
      <link>https://cybernetist.com/2014/07/30/tenus-golang-powered-linux-networking/</link>
      <pubDate>Wed, 30 Jul 2014 12:13:44 +0000</pubDate>
      <guid>https://cybernetist.com/2014/07/30/tenus-golang-powered-linux-networking/</guid>
      <description>&lt;p&gt;&lt;strong&gt;2014-07-30 22:35 Update:&lt;/strong&gt; I&amp;rsquo;ve updated the post with the link to netlink RFC. I&amp;rsquo;ve also replaced references to &lt;strong&gt;golang&lt;/strong&gt; with &lt;strong&gt;Go&lt;/strong&gt; programming language on majority of mentions in the article. I do agree with the people in discussions on the topic of Go/golang, but I&amp;rsquo;ve adpoted &lt;strong&gt;golang&lt;/strong&gt; in my vocabulary as that&amp;rsquo;s my standard search term on Google for the information about Go language, hence the abundance of the word &lt;strong&gt;golang&lt;/strong&gt; in the original post.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
