<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="http://rakagami.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="http://rakagami.github.io/" rel="alternate" type="text/html" /><updated>2025-09-14T15:39:02+00:00</updated><id>http://rakagami.github.io/feed.xml</id><title type="html">raka.raka.raka</title><subtitle>A website and blog where I walk about computer science, machine learning, image processing, art and many other things.</subtitle><entry><title type="html">Can Computers Think? - Essay</title><link href="http://rakagami.github.io/posts/thinking-essay/" rel="alternate" type="text/html" title="Can Computers Think? - Essay" /><published>2023-03-02T00:00:00+00:00</published><updated>2023-03-02T00:00:00+00:00</updated><id>http://rakagami.github.io/posts/thinking-essay</id><content type="html" xml:base="http://rakagami.github.io/posts/thinking-essay/"><![CDATA[<h2 id="preface">Preface</h2>

<p>I’m currently enrolled in an Informatics M.Sc. program at <a href="https://www.in.tum.de/en/in/for-prospective-students/masters-programs/informatics/">TUM</a>. It’s now almost been two years since I applied for this program, I kinda wanted to look back on <a href="https://www.in.tum.de/en/in/fuer-studieninteressierte/bewerbung/masterstudiengaenge/informatics/#c4052">the essay</a> we had to write for the application. We live in an interesting time, where there is a difference between a student essay from 2021 and 2023 in the fact that there now exists <a href="https://blogs.nvidia.com/blog/2023/01/26/what-are-large-language-models-used-for/">LLM</a> tools like ChatGPT to write stuff for you. <em>Stuff like <a href="https://openai.com/blog/gpt-3-apps">gpt3 already existed back</a> then, but the <a href="https://www.youtube.com/watch?v=Sqa8Zo2XWc4">barriers of entry to use those models have clearly plummeted down</a></em> Commomerating this nostalgia trip, I’ll be reposting my essay into this blog.</p>

<p>Even though I don’t think I’m a particularly good writer (yet?), I got accepted for the program. After some minor tweaking to fit this browser format, I hereby present a completely human-made essay:</p>

<hr />
<hr />

<h2 id="can-computers-think">Can Computers Think?</h2>

<h3 id="intro">Intro</h3>

<p>I am in my last online tutorial after a long day of online lectures, not the most exciting subject but important enough for more than a handful attending students. I can’t see the faces of the other attendees but I can imagine a wall of tired screen-lit faces waiting for the presenter to show the next slides - assuming they are even paying attention. The presentation is being halted because the presenter wanted to show new slides from another file.
What he doesn’t know is that the software only supports pdf and not powerpoint. Unfortunately, this will take a few minutes to figure out and five more for him to fix. The phrase “stupid thing!” slips out of his mouth before finally resuming the tutorial. The ‘thing’ he is referring to could be either the computer or software. Don’t we all know that feeling?
When we are tired and unmotivated to troubleshoot, that is when the desire for computers to think for themselves is the strongest. Just think like humans! Can’t computers do the same thing as humans? Or taking a step back - Can computers think?</p>

<h3 id="lets-take-a-few-steps-back">Let’s take a few steps back</h3>

<p>The roots of this question can be traced back to the father of theoretical computer science himself, Alan Turing. Like many others in his time, he did not have any luxury to complain about the shortcomings of computers. The prospect of machines being as intelligent as humans filled discussions with more fascination rather than impatience. However, the fundamental approach to thinking about this question has stayed the same. Discussing what it means to think is to inspect the origin of thought and how it behaves. To answer ‘Yes’ or ‘No’, we need some form of definition for thinking. Following <a href="http://aima.cs.berkeley.edu/">Stuart Russel’s and Peter Norvig’s example</a>, we will differentiate between human thinking and rational thinking.</p>

<h3 id="thinking-like-a-computer">Thinking like a computer</h3>

<p>Seeing the construction of a computer just as another utility tool for humanity, we can view the concept of ‘thinking’ in a more general, some would say mathematical, domain. Rather than restricting the concept of thinking to a human discipline, we can generalize ‘thinking’ as ‘solving a problem’. This brings us to the concept of rational thinking. Given a proposed problem, finding an optimal solution to that problem would be analogous to ‘thinking’ itself. Modern applications like recommender systems solving the problem of ‘What is this person interested in given past interests’ open a huge industry of internet advertisement. Modern language models like <a href="https://openai.com/blog/gpt-3-apps">GPT-3</a> are trying to solve the problem of ‘Given the input sequence of words, how would we complete the text’. Even more complex problems like playing human games such as Chess or GO has been <a href="https://www.nature.com/articles/nature16961">proven to be doable by computers</a>. Methods such as <a href="https://deepai.org/machine-learning-glossary-and-terms/backpropagation">Backpropagation</a>, which is the backbone of Machine Learning with Neural Network, shows that learning is just an optimization problem of a multi-dimensional function. Now, we have reasons to believe computers can indeed think - and that very well.</p>

<h3 id="thinking-like-a-human">Thinking like a human</h3>

<p>Intuitively however, thinking is more thought of as a human property. Any perception, reflection, decision-making that happens in our human self can be called thinking. In such a way, we can define thinking as performing the work of a human brain which implies ‘thinking’ also means ‘human thinking’. To compare the functionality of a brain and a computer, there are two different approaches to take, ‘intrinsic’ and ‘end-to-end’. I will now go into more detail on each comparison.</p>

<p>What I call intrinsic comparison means that we can measure how similar a computer thinks to a human by examining how similar the underlying structure is. This would require knowledge of the human brain. Neuroscience and biology has provided us with the structure of the nervous system by identifying parts like the hypothalamus or the cerebral cortex. To zoom further in, models like the <a href="https://en.wikipedia.org/wiki/Hodgkin%E2%80%93Huxley_model">Hodgkin-Huxley model</a> describe how action potentials in neurons are propagated. A comparison with computer in this way means that we are more interested in the implementation of the computer program rather than the performance of it.</p>

<p align="center"><img src="https://www.researchgate.net/publication/328206919/figure/fig1/AS:680354205675520@1539220491312/A-Hodgkin-Huxley-model-modified-from-Wikipedia-B-Changes-of-sodium-conductance.png" /></p>
<p align="center">
The Hodgkin-Huxley model describes how action potentials in neurons are initiated and propagated. This concept is abstracted in traditional Neural Networks in form of activation functions.
</p>

<h3 id="thinking-as-a-behaviour">Thinking as a behaviour</h3>

<p>If we are more interested in the behaviour of an entity to judge whether or not it can think then we can do an end-to-end approach. This is done by comparing how a human acts with how a computer acts without being bothered by the specifics of the implementation. The problem in this approach is that we can’t enumerate all the capabilities of the brain and just go through each point in the list to see whether computers can do the same, like going through a check list in a car safety examination. Any attempt to construct such an enumeration would lead us to a difficult path in defining each and every way a human can be creative. To circumvent this problem, we can rely on human intuition. The only judge whether or not something can think humanly is therefore another human being, which is the basic assumption of the <a href="https://www.geeksforgeeks.org/turing-test-artificial-intelligence/">Turing Test</a>.</p>

<p align="center"><img src="https://imgs.xkcd.com/comics/turing_test.png" /></p>
<p align="center">
obligatory xkcd
</p>

<p>Through a series of questions the computer then answers, a computer can pass if a human interrogator can’t distinguish between the responses of the computer or another human. Giving the term ‘human intuition’ more rigidity, an interrogator can look for the following properties: Can the computer communicate in natural language? Does it store given knowledge? Can it use given knowledge to answer questions and draw new conclusions? Can it adapt to new circumstance to detect and extrapolate patterns? A computer which passes the Turing Test is able to have the appearance of human intelligence, therefore also human thinking.</p>

<h3 id="its-been-half-a-century-has-anything-changed">It’s been half a century. Has anything changed?</h3>

<p>Many of the examinations on what thinking means has already been done in the past. The Dartmouth College Summer Workshop that seems to have kick-started the field of artificial intelligence is now more than half-a-century ago. However, the context around whether computers can think has changed quite a bit since Turing proposed it. Where has this led us?
Considering the countless Hollywood movies portraying AIs and new startups advertising with words like ‘smart’, ‘AI’, ‘Neural Network’, the general populace might be quite comfortable with the idea of a thinking computer. <a href="https://en.wikipedia.org/wiki/Computing_Machinery_and_Intelligence">This was also predicted by Turing</a>. Unfortunately, there has been a dangerous misunderstanding revolving around this idea. The idea of a thinking computer might not be interesting in itself, even Turing called this discourse <a href="https://en.wikipedia.org/wiki/Computing_Machinery_and_Intelligence">‘too meaningless to deserve discussion’</a> with the lack of a clear single definition of thinking. It could be the fantasy of artificially creating an intellect which works just like a human that seems to drive the interest along this path. This is reflected in the language researchers use for the developed technology which can appear quite misleading to an uninformed observer. <a href="https://cnvrg.io/spiking-neural-networks/">Current Neural Networks don’t work exactly like a real neuronal network of a human</a>. Machine Learning doesn’t imply that computers learn the same way like a child does - in Deep Learning it often just means gradient descent. Even a more dated example like the <a href="https://en.wikipedia.org/wiki/General_Problem_Solver">General Problem Solver</a> from 1963 used the word ‘general’ quite loosely. The field of artificial intelligence has survived periods of stagnation what some would call AI Winter. <a href="https://ieeexplore.ieee.org/document/4475849">The cause of which is speculated to be the over-optimistic prognoses and unfulfilled promises for the performance of AI, though the validity of those speculations is also debated</a>. Nevertheless, it is never a good idea to oversell a research achievement. It is better to judge it for its capabilities, present benchmark results, realize limitations, and staying away from terms like Artificial General Intelligence or Human Intelligence.</p>

<h3 id="concluding-my-rambling-thoughts">Concluding my rambling thoughts</h3>

<p>It might come to no surprise that this essay won’t end with any definite conclusion. It depends on how one defines thinking. As it currently stands, we are far away from human level intelligence. We might not like it, but there is no hyper intelligent home-assistant baby sitter AI for us that can solve all of our problems. If we expect such a program when asking whether computers can think, we can cut this paragraph short just by saying ‘No’. However, if we see thinking in a more rational way, meaning problem solving, then we can consider to say ‘Yes’. Ultimately, instead of relying on computers with ‘human level’ intelligence to magically whisk away all of our problems, the grind of researching, developing, and troubleshooting is still ahead of us - And that might be a good thing.</p>

<hr />
<hr />

<p>So that was the essay. Added some pictures to make it more accessible. To be honest, most of my last blog post can be traced back on this essay. Going into the Master’s program I was quite excited to do AI, now I kinda changed direction. But that’s a story for another time. Anyways, if for some reason you make it this far, I would be happy to receive a comment. Finger-crossed the comment system is working.</p>]]></content><author><name></name></author><category term="jekyll" /><category term="update" /><summary type="html"><![CDATA[Preface]]></summary></entry><entry><title type="html">Rotation in Space</title><link href="http://rakagami.github.io/posts/rotation-in-space/" rel="alternate" type="text/html" title="Rotation in Space" /><published>2023-02-19T00:00:00+00:00</published><updated>2023-02-19T00:00:00+00:00</updated><id>http://rakagami.github.io/posts/rotation-in-space</id><content type="html" xml:base="http://rakagami.github.io/posts/rotation-in-space/"><![CDATA[<p>3D rotation is tricky.</p>]]></content><author><name></name></author><category term="jekyll" /><category term="update" /><summary type="html"><![CDATA[3D rotation is tricky.]]></summary></entry><entry><title type="html">Getting into Neural Nets</title><link href="http://rakagami.github.io/posts/neural-nets-in-6-months/" rel="alternate" type="text/html" title="Getting into Neural Nets" /><published>2021-11-04T00:00:00+00:00</published><updated>2021-11-04T00:00:00+00:00</updated><id>http://rakagami.github.io/posts/neural-nets-in-6-months</id><content type="html" xml:base="http://rakagami.github.io/posts/neural-nets-in-6-months/"><![CDATA[<p>The sound of a topic can make it very menacing. Just try to say <em><strong>Neuronal Network</strong></em> out loud…</p>

<p>That term sounds like a group of 5-digit-IQ’ed genius professors figured out how the actual human brain works, and now we can simulate it. I seem to remember my high school biology classes covering neurons to some degree. <em>If we learn about it in high school, then it must’ve been fully figured out, right?</em></p>

<p>Well, in my 4 month journey of getting into <em>Neural Networks</em> for my bachelor’s thesis, I was quite surprised about how some of my initial misconceptions were quickly dispelled. In this post I want to document this experience and what I take out of it.</p>

<h2 id="1-they-lie-to-us">1. They lie to us!</h2>

<p>The name is a lie! The first thing I did for research is watching the <a href="https://www.youtube.com/watch?v=aircAruvnKk">3blue1brown video</a>. And guess what? There is no simulation of neuron membrane voltages. There is no modelling of real biological synapses. There’s not even a “left-brain, right-brain” kind of architecture.</p>

<p align="center"><img src="https://imgs.xkcd.com/comics/machine_learning.png" /></p>
<p align="center">
if you get into ML, you will inevitably see this xqcd
</p>

<p>All I see is matrix multiplication and gradient descent, I thought neural nets are way cooler than that. I feel betrayed and it broke my heart.</p>

<h2 id="2-smart-people-have-done-most-of-the-work-already">2. Smart people have done most of the work already!</h2>

<p>As soon as I recovered from a heart broken, I quickly realized that the barrier of entry for neural networks is surprisingly low. <a href="https://www.tensorflow.org/">Tensorflow</a> and <a href="https://pytorch.org/">pytorch</a> - both are popular libraries that basically makes writing code to use neural nets super easy.</p>

<p>They figured out efficient matrix multiplication. A good working syntax for tensors. They implemented all the things you would find in your <em>Introduction to Deep Learning</em> course, like <strong>LSTM cells</strong>, the <strong>Adam optimizer</strong>, <strong>Regularization</strong>, <strong>Dropout</strong>, and many more…</p>

<p>Now, as end-users, we only need to learn how to <strong>load and augment</strong> our dataset, <strong>define our model</strong>, and <strong>train</strong> the model. Check out this python code that does exactly that with tensorflow:</p>

<p>First, importing everything you need.</p>

<figure class="highlight"><pre><code class="language-python" data-lang="python"><span class="kn">import</span> <span class="nn">tensorflow</span> <span class="k">as</span> <span class="n">tf</span>
<span class="kn">import</span> <span class="nn">tensorflow_datasets</span> <span class="k">as</span> <span class="n">tfds</span></code></pre></figure>

<p>Yep, that’s all the libraries you need. Then, we gotta load our dataset…</p>

<figure class="highlight"><pre><code class="language-python" data-lang="python"><span class="c1"># Loading dataset
</span><span class="n">ds</span> <span class="o">=</span> <span class="n">tfds</span><span class="p">.</span><span class="n">load</span><span class="p">(</span> <span class="s">'mnist'</span><span class="p">,</span> <span class="n">split</span><span class="o">=</span><span class="s">'train'</span><span class="p">,</span> <span class="n">as_supervised</span><span class="o">=</span><span class="bp">True</span> <span class="p">)</span>
<span class="c1"># Batching dataset together into 128 big batches
</span><span class="n">ds</span> <span class="o">=</span> <span class="n">ds</span><span class="p">.</span><span class="n">batch</span><span class="p">(</span><span class="mi">128</span><span class="p">)</span></code></pre></figure>

<p>Cool! We have loaded the <a href="https://deepai.org/dataset/mnist">mnist dataset</a> in essentially two lines of code. Let’s define our model…</p>

<figure class="highlight"><pre><code class="language-python" data-lang="python"><span class="c1"># Defining model
</span><span class="n">model</span> <span class="o">=</span> <span class="n">tf</span><span class="p">.</span><span class="n">keras</span><span class="p">.</span><span class="n">models</span><span class="p">.</span><span class="n">Sequential</span><span class="p">([</span>
  <span class="n">tf</span><span class="p">.</span><span class="n">keras</span><span class="p">.</span><span class="n">layers</span><span class="p">.</span><span class="n">Flatten</span><span class="p">(</span><span class="n">input_shape</span><span class="o">=</span><span class="p">(</span><span class="mi">28</span><span class="p">,</span> <span class="mi">28</span><span class="p">)),</span>
  <span class="n">tf</span><span class="p">.</span><span class="n">keras</span><span class="p">.</span><span class="n">layers</span><span class="p">.</span><span class="n">Dense</span><span class="p">(</span><span class="mi">128</span><span class="p">,</span> <span class="n">activation</span><span class="o">=</span><span class="s">'relu'</span><span class="p">),</span>
  <span class="n">tf</span><span class="p">.</span><span class="n">keras</span><span class="p">.</span><span class="n">layers</span><span class="p">.</span><span class="n">Dense</span><span class="p">(</span><span class="mi">10</span><span class="p">),</span>
  <span class="n">tf</span><span class="p">.</span><span class="n">keras</span><span class="p">.</span><span class="n">layers</span><span class="p">.</span><span class="n">Softmax</span><span class="p">(),</span>
<span class="p">])</span>
<span class="c1"># Defining optimizer
</span><span class="n">model</span><span class="p">.</span><span class="nb">compile</span><span class="p">(</span>
    <span class="n">optimizer</span><span class="o">=</span><span class="s">"adam"</span><span class="p">,</span>
    <span class="n">loss</span><span class="o">=</span><span class="s">"sparse_categorical_crossentropy"</span><span class="p">,</span>
    <span class="n">metrics</span><span class="o">=</span><span class="p">[</span><span class="s">"sparse_categorical_accuracy"</span><span class="p">],</span>
<span class="p">)</span></code></pre></figure>

<p>With <code class="language-plaintext highlighter-rouge">tf.keras.models.Sequential</code> we have defined a simple feed-forwad neural network with 128 hidden neurons and 10 output neurons (with a softmax layer applied at the end). By using <code class="language-plaintext highlighter-rouge">model.compile</code> we define which additional parameter to train the model. Actually training the model is just a simple function call…</p>

<figure class="highlight"><pre><code class="language-python" data-lang="python"><span class="n">model</span><span class="p">.</span><span class="n">fit</span><span class="p">(</span> <span class="n">ds</span><span class="p">,</span> <span class="n">epochs</span><span class="o">=</span><span class="mi">6</span> <span class="p">)</span></code></pre></figure>

<p>…and we are done! That took literally only five function calls. Congratulations, you can pat yourself in the back now because you just did Deep Learning.</p>

<p><em>(This code works but is useless because I skipped a lot of meaningful boilerplate. Check the official <a href="https://www.tensorflow.org/datasets/keras_example">tensorflow keras example</a> for more details)</em></p>

<h2 id="3-domain-knowledge-is-very-valuable">3. Domain knowledge is very valuable</h2>

<p>Because the barrier of entry is so low, it seems the main target audience for neural networks are non-IT people. A chemical-engineering friend of mine also used Deep Learning for her bachelor’s thesis. Linguist friends tell me how their colleagues are using NLP models. The <a href="https://www.tum-ai.com/makeathon.html">AI focused hackathon</a> of my university advertises itself for requiring “no programming skill”.</p>

<p>This only makes sense if I think about it. You won’t be able to create a neural network-based system for speech recognition, if you have exactly no idea about signal processing. The decision on which data to use is key to a successfull model training. This would explain why Deep Learning is so popular, <strong>it reaches a wide target audience</strong>.</p>

<h2 id="4-okay-okay-but-what-actually-is-intelligence">4. Okay, okay, but what actually is intelligence?</h2>

<p>It seems the word intelligence is used kinda loosely. Other than making me feel smart, it’s interesting to think about what we informally consider intelligence. This is something I got from twitter: <em>Does Artificial General Intelligence really lie at the bottom of gradient descent?</em></p>

<p>When <a href="https://openai.com/blog/gpt-3-apps/">GPT-3</a> was trending on twitter, a lot of <a href="https://gpt3.website/">very interesting applications</a> were shared that seemed to require some form of intelligence. It was exciting and I personally never seen NLP to that level before.</p>

<div align="center">
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/PqbB07n_uQ4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
</div>

<p>Learning about neural networks the first time you will realize it is purely a mathematical optimization problem. In the end, we are left with a function, an input, and an output.</p>

<p>Maybe this is what intelligence is - We receive our perception, short-term, and long-term memory at each timestep and output the next thoughts to occupy our minds with the next set of actuator commands for our muscles and pores. We might also add that this function is fuzzy and non-deterministic to account for randomness. Using the GPT-3 interface is very similar to this. But having experimented with it before, I realized <em>(maybe something really obvious)</em> that GPT-3 is not an AGI, in a way AGI’s are depicted in the movies. In fact, we are farther from hollywood AI than the 12-year old me would have expected.</p>

<p>This is just the rambling of a green-horn computer science student that just learned about Deep Learning. Alan Turing, a way more smarter person, <a href="https://www.csee.umbc.edu/courses/471/papers/turing.pdf">thought about this question more than 70 years ago</a>. Going into Deep Learning I didn’t realize how ambiguous the term “Intelligence” can be…</p>

<h2 id="5-the-community-seems-nice">5. The community seems nice</h2>

<p>The Deep Learning community is quite welcoming.</p>

<p>The semester before my bachelor’s thesis I was trying to go into cyber security. Specifically, I tried to get into the hardening of the linux kernel by using virtualization techniques in a seminar. I was a beginner to kernel-level development then too as I was a complete beginner to deep learning. By contrast, I could find overwhelmingly more accessible learning resources for deep learning than for virtualization of the linux memory allocator.</p>

<p>Many of my fellow students are getting into Deep Learning. Channels like <a href="https://www.youtube.com/watch?v=aircAruvnKk">3blue1brown</a> make it easy to get into the math. Big figures like <a href="https://twitter.com/ylecun">Yann LeCun</a> have active twitter pages you can follow. Youtube channels like <a href="https://www.youtube.com/c/K%C3%A1rolyZsolnai">Two Minute Papers</a> or <a href="https://www.youtube.com/c/YannicKilcher">Yannic Kilcher</a> make it quite easy to learn about some higher level concepts that I might have been too overwhelmed learning by myself. <a href="https://www.tensorflow.org/">Tensorflow</a> and <a href="https://pytorch.org/">pytorch</a> are backed by Facebook and Google, so you can be damn sure there’s good documentation for it.</p>

<p>My verdic: The community seems nice.</p>

<h2 id="closing-words">Closing Words</h2>

<p>I am by no means an expert on neural networks yet but this short but fruitful journey has opened the door to a big world. I hope this blog post helps anyone who was also a bit hesitant to dive into this.</p>

<h3 id="some-other-stuff">Some other stuff</h3>

<p>I currently kinda try to get into blogging and stuff, so any feedback is welcome, just <a href="mailto: prak.renatin@tum.de">contact me</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[The sound of a topic can make it very menacing. Just try to say Neuronal Network out loud…]]></summary></entry><entry><title type="html">Welcome to Jekyll!</title><link href="http://rakagami.github.io/posts/welcome-to-jekyll/" rel="alternate" type="text/html" title="Welcome to Jekyll!" /><published>2021-05-05T10:57:44+00:00</published><updated>2021-05-05T10:57:44+00:00</updated><id>http://rakagami.github.io/posts/welcome-to-jekyll</id><content type="html" xml:base="http://rakagami.github.io/posts/welcome-to-jekyll/"><![CDATA[<p>You’ll find this post in your <code class="language-plaintext highlighter-rouge">_posts</code> directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run <code class="language-plaintext highlighter-rouge">jekyll serve</code>, which launches a web server and auto-regenerates your site when a file is updated.</p>

<p>Jekyll requires blog post files to be named according to the following format:</p>

<p><code class="language-plaintext highlighter-rouge">YEAR-MONTH-DAY-title.MARKUP</code></p>

<p>Where <code class="language-plaintext highlighter-rouge">YEAR</code> is a four-digit number, <code class="language-plaintext highlighter-rouge">MONTH</code> and <code class="language-plaintext highlighter-rouge">DAY</code> are both two-digit numbers, and <code class="language-plaintext highlighter-rouge">MARKUP</code> is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works.</p>

<p>Jekyll also offers powerful support for code snippets:</p>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="k">def</span> <span class="nf">print_hi</span><span class="p">(</span><span class="nb">name</span><span class="p">)</span>
  <span class="nb">puts</span> <span class="s2">"Hi, </span><span class="si">#{</span><span class="nb">name</span><span class="si">}</span><span class="s2">"</span>
<span class="k">end</span>
<span class="n">print_hi</span><span class="p">(</span><span class="s1">'Tom'</span><span class="p">)</span>
<span class="c1">#=&gt; prints 'Hi, Tom' to STDOUT.</span></code></pre></figure>

<figure class="highlight"><pre><code class="language-c" data-lang="c"><span class="cp">#include</span> <span class="cpf">&lt;stdio.h&gt;</span><span class="cp">
</span>
<span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span><span class="err">\</span><span class="o">*</span><span class="err">\</span><span class="o">*</span> <span class="n">argv</span><span class="p">)</span> <span class="p">{</span>
    <span class="n">printf</span><span class="p">(</span><span class="s">"Hello World"</span><span class="p">);</span>
<span class="p">}</span></code></pre></figure>

<p>Check out the <a href="https://jekyllrb.com/docs/home">Jekyll docs</a> for more info on how to get the most out of Jekyll. File all bugs/feature requests at <a href="https://github.com/jekyll/jekyll">Jekyll’s GitHub repo</a>. If you have questions, you can ask them on <a href="https://talk.jekyllrb.com/">Jekyll Talk</a>.</p>]]></content><author><name></name></author><category term="jekyll" /><category term="update" /><summary type="html"><![CDATA[You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve, which launches a web server and auto-regenerates your site when a file is updated.]]></summary></entry></feed>