<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: eomiso</title>
    <description>The latest articles on DEV Community by eomiso (@eomiso).</description>
    <link>https://dev.to/eomiso</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F628250%2Ff023f630-75e6-4154-8ffc-bdcf7d820d5e.jpeg</url>
      <title>DEV Community: eomiso</title>
      <link>https://dev.to/eomiso</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eomiso"/>
    <language>en</language>
    <item>
      <title>Jest parametrized test that throws errors</title>
      <dc:creator>eomiso</dc:creator>
      <pubDate>Fri, 10 Jun 2022 13:09:23 +0000</pubDate>
      <link>https://dev.to/eomiso/jest-parametrized-test-that-throws-errors-3p7o</link>
      <guid>https://dev.to/eomiso/jest-parametrized-test-that-throws-errors-3p7o</guid>
      <description>&lt;p&gt;&lt;a href="https://dev.tourl"&gt;&lt;/a&gt;Let's say we have a code like below that runs in node.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;registerUser&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;username&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;username&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Username is required.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;getTime&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="na"&gt;username&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;username&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the code, the scenario where Error should be thrown are when the &lt;code&gt;username&lt;/code&gt; is invalid.&lt;/p&gt;

&lt;p&gt;For the &lt;code&gt;username&lt;/code&gt; to be invalid, the &lt;code&gt;username&lt;/code&gt; should be one of these: &lt;code&gt;False&lt;/code&gt;, &lt;code&gt;0&lt;/code&gt;, &lt;code&gt;null&lt;/code&gt;, &lt;code&gt;''&lt;/code&gt;, &lt;code&gt;undefined&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In the jest documentation, there is a section about parametrized (data-driven) tests in jest. However it is not clear how to handle erroneous situations in a bulk.&lt;/p&gt;

&lt;p&gt;The code that I've come up is as below. Hope it helps!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;registerUser&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;it&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;each&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;NaN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;])(&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;should throw if username is falsy&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;lib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;registerUser&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;)).&lt;/span&gt;&lt;span class="nx"&gt;toThrow&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>node</category>
      <category>jest</category>
      <category>testing</category>
    </item>
    <item>
      <title>[한글] 파이썬 lazy evaluation</title>
      <dc:creator>eomiso</dc:creator>
      <pubDate>Fri, 11 Mar 2022 16:51:49 +0000</pubDate>
      <link>https://dev.to/eomiso/hangeul-paisseon-lazy-evaluation-5gin</link>
      <guid>https://dev.to/eomiso/hangeul-paisseon-lazy-evaluation-5gin</guid>
      <description>&lt;h1&gt;
  
  
  Lazy Evaluation과 Generator
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Generator
&lt;/h2&gt;

&lt;p&gt;파이썬에서 사용되는 Generator를 이해하기 위해서는 우선 iterator에 대한 지식이 필요하다.&lt;br&gt;
다음에 iterator에 대해서도 글을 쓰겠지만, 형태적인 차원에서 설명하자면 &lt;code&gt;__iter__&lt;/code&gt;와 &lt;code&gt;__next__&lt;/code&gt; 를 메소드로 가지고 있으면서, 호출된 후의 상태(state)를 저장하고 있다가 더 이상 내보낼 값이 없을 때 &lt;code&gt;StopIteration&lt;/code&gt; 예외를 일으키는 클래스를 iterator라고 부른다.&lt;/p&gt;

&lt;p&gt;듣기 만해도 복잡해 보인다. ㅡㅡ;&lt;/p&gt;

&lt;p&gt;이렇듯 복잡한 iterator를 보다 쉽게 생성해주는 것이 바로 &lt;strong&gt;Generator&lt;/strong&gt; 이다. 제네레이터를 통해 앞에서 언급한 기능과 메소드를 자동적으로 구현할 수 있는 것이다.&lt;/p&gt;
&lt;h3&gt;
  
  
  Generator를 생성하는 방법
&lt;/h3&gt;

&lt;p&gt;제네레이터를 생성하는 방법은 매우 간단하다. 그냥 함수에서 &lt;code&gt;return&lt;/code&gt; 대신에 &lt;code&gt;yield&lt;/code&gt;를 써주면 된다.&lt;/p&gt;

&lt;p&gt;:::tip&lt;br&gt;
함수에 yield statement가 한 개 이상 있으면 Generator라고 부른다. &lt;br&gt;
:::&lt;/p&gt;

&lt;p&gt;이 부분 때문에 Generator는 yield가 들어 있는 함수라고 이해하고 있는 사람들도 있다. 틀린말은 아니지만 정확히는 yield 는 iterator가 갖고 있는 여러 기능들을 보다 쉽게 구현해주록 파이썬에 내장된 statement이고 이를 통해서 간단하게 제네레이터를 만들 수 있다는 표현이 맞겠다(&lt;del&gt;그리고 그렇게 간단하게 생성된 제네레이터를 통해서 iterator를 만들 수 있는 것, 그게 그말인가??&lt;/del&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;num_generator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;
        &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;-=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;'Error Message goes here'&lt;/span&gt;
&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;num_generator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;결과&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; a.__next__()
&amp;gt;&amp;gt;&amp;gt; 3
&amp;gt;&amp;gt;&amp;gt; a.__next__()
&amp;gt;&amp;gt;&amp;gt; 2
&amp;gt;&amp;gt;&amp;gt; a.__next__()
&amp;gt;&amp;gt;&amp;gt; 1
&amp;gt;&amp;gt;&amp;gt; a.__next__()
&amp;gt;&amp;gt;&amp;gt; StopIteration: Error Message goes here
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;그래서 최종적으로 정리하자면 제네레이터는 다음과 같은 특징을 가지고 있다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;한 개 이상의 yield statement를 갖는다.&lt;/li&gt;
&lt;li&gt;호출 되었을 때 iterator를 반환한다.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;__iter__()&lt;/code&gt; &lt;code&gt;__next__()&lt;/code&gt; 같은 함수들이 자동적으로 적용되어, &lt;code&gt;&amp;lt;generator&amp;gt;.__next__()&lt;/code&gt; 와 같이 사용가능하다.&lt;/li&gt;
&lt;li&gt;제네레이터가 yield를 실행한 후에는 control을 caller에게 넘긴다. 즉 실행을 잠시 멈춘다.&lt;/li&gt;
&lt;li&gt;이 때 제네레이터 내부의 지역변수(local variable)들과 그 값들이 다시 호출 되기 전까지 기억되어 있다. -&amp;gt; 이게 어떻게 가능한 건지는 좀더 전체적인 아키텍쳐를 알게 되었을 때 설명할 수 있을 듯하다.&lt;/li&gt;
&lt;li&gt;그리고 함수가 실행을 마치면 &lt;code&gt;StopIteration&lt;/code&gt; 예외가 발생한다.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Lazy-evaluation(느긋한 계산법)
&lt;/h2&gt;

&lt;p&gt;자 이제 제네레이터에 대해 어느정도 알아 보았으니, 제네레이터와 관련하여 알아두어야할 개념인 &lt;strong&gt;Lazy-evaluation&lt;/strong&gt; 에 대해 알아보자. &lt;strong&gt;Lazy-evaluation&lt;/strong&gt; 은 제네레이터의 특징 중 4번째 특징과 관련된다.&lt;/p&gt;

&lt;p&gt;왜 Lazy 하다고 하느냐? yield를 하기 전에 계산을 완료해 놓지 않기 때문이다. 가령 위의 예시 코드에서 for 문은 한 번에 다 돌지 않고 &lt;code&gt;a.__next__()&lt;/code&gt; 가 호출될 때만 돌게 된다. 만약에 일반적인 함수였다면 for 문은 한번에 다 돌았을 것이다. &lt;/p&gt;

&lt;p&gt;이 차이는 &lt;code&gt;[i for i in range(i)]&lt;/code&gt; 와 &lt;code&gt;(i for i in range(i))&lt;/code&gt;의 차이를 통해 확인할 수 있다. &lt;br&gt;
전자는 한번에 생성되는 리스트지만 후자는 호출될 때마다 for 문이 한 단계씩 진행되면서 i를 반환하는 제네레이터이다.&lt;/p&gt;

&lt;p&gt;::: warning &lt;br&gt;
그래서 어떤 함수의 실행 시간을 측정할 때 만약에 그 함수가 제네레이터라면 측정된 결과가 그 함수에 적용된 알고리즘 고유의 수행시간(시간복잡도)가 아닐 수 있다. Lazy-Evaluation이 적용되기 때문이다.&lt;br&gt;
:::&lt;/p&gt;

&lt;h2&gt;
  
  
  추가 질문
&lt;/h2&gt;

&lt;p&gt;제네레이터와 이터레이터, 그리고 코루틴 모두 실행 중에 호출자에게 control을 넘기는 특징을 가지고 있다. 이때 피호출자의 지역변수와 그 값들이 남아 있는데 이게 어떻게 가능한 것인지 궁금하다. 아마 파이썬이라는 언어의 전체적인 아키텍쳐를 이해할 수 있을 때 설명할 수 있을 것 같다.&lt;/p&gt;

</description>
      <category>python</category>
    </item>
    <item>
      <title>A Simple article to motivate your student</title>
      <dc:creator>eomiso</dc:creator>
      <pubDate>Fri, 11 Mar 2022 15:35:45 +0000</pubDate>
      <link>https://dev.to/eomiso/a-sample-first-post-2b68</link>
      <guid>https://dev.to/eomiso/a-sample-first-post-2b68</guid>
      <description>&lt;h1&gt;
  
  
  [Article] Start of a Journeyman
&lt;/h1&gt;

&lt;p&gt;So, what is &lt;strong&gt;Python&lt;/strong&gt;? Well it's not a snake for sure...🐍 You don't want to see a snake lurking around your PC eh? (Well if snakes can catch bugs on my program then it would be tempting tho... 😆). It is a &lt;strong&gt;Programming Language&lt;/strong&gt; that works on &lt;strong&gt;computers&lt;/strong&gt;. Ah, we have just addressed two important keywords in the tech world. Can you define what a &lt;strong&gt;computer&lt;/strong&gt; is? How about &lt;strong&gt;programming language&lt;/strong&gt;?&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's talk about computer first
&lt;/h2&gt;

&lt;p&gt;So what is a computer? Sorry if you are feeling that I'm holding you off. But this is such an important concept. Yet everyone has computers now a days, and nobody seems to be serious about the definition of computers.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THINK AND ANSWER&lt;br&gt;
How would YOU define a computer?&lt;/p&gt;

&lt;p&gt;help) a cell phone is a computer. Our cars would also have a computer. Planes are FLOWN by computers. The distance from earth to the newest planet discovered is computed by computers.  The cool lightsaver on Star Wars is again drawn by computer.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3LcBjVTP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://emoji.gg/assets/emoji/6629_red_lightsaber.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3LcBjVTP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://emoji.gg/assets/emoji/6629_red_lightsaber.png" alt=":lightsaver:" width="256" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;WARNING!&lt;br&gt;
Do not read the next paragraph unless you have answered the questions above yet.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Computers can be anything
&lt;/h2&gt;

&lt;p&gt;No they are not. Sorry I didn't want you to see the answer on the sidebar. 😜 There are things that computers can't do. And are most certainly, things in the world that are not computers. An analog watch is not a computer. Humans of course are not computers(although their do seem pretty function like a computer). A book is not a computer either. And neither the bed where you may be reading this article on.&lt;/p&gt;

&lt;p&gt;So what are computers? Well here goes the first blow. A computer is a &lt;strong&gt;programmable&lt;/strong&gt; machine. Because they are programmable, we can tell them to fly a plane, drive a car, send an email, and let the alarm on in the morning. In a sense it's like we are &lt;strong&gt;instructing&lt;/strong&gt; the computer to do the work on our behalf. And this is infact pretty true because the better you conquer your computer the easier your life will be (ask mom).&lt;/p&gt;

&lt;h2&gt;
  
  
  Ok, then how do we instruct a computer?
&lt;/h2&gt;

&lt;p&gt;So how do we instruct them to do the stuff that we want them to do? In other words, how do we make the computer understand our needs? Yeah, you should have probably guessed it already. We do that by programming the computer with our programming language.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello World&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Cool Stuff&lt;br&gt;
On your macOS press &lt;code&gt;cmd + space&lt;/code&gt; then type &lt;code&gt;terminal&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;When you see that little cute black window, type: &lt;code&gt;vim hello.c&lt;/code&gt;. (or possibly &lt;code&gt;nvim hello.c&lt;/code&gt;)&lt;br&gt;
Then press &lt;code&gt;i&lt;/code&gt;, type the code above then press &lt;code&gt;&amp;lt;esc&amp;gt;&lt;/code&gt; once.&lt;br&gt;
Then type &lt;code&gt;:wq&lt;/code&gt; which will bring you back to the black window again.&lt;/p&gt;

&lt;p&gt;Then type: &lt;code&gt;gcc hello.c -o hello&lt;/code&gt;&lt;br&gt;
Finally type: &lt;code&gt;./hello&lt;/code&gt; and see what is printed on the black window.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;[When Error]&lt;br&gt;
When you see an error don't worry, just look &lt;a href="//../TroubleShoot/ts_note1.md"&gt;here&lt;/a&gt; and try to follow through the instructions then come back.&lt;/p&gt;

&lt;p&gt;Tada! We have just instructed the computer to say it's greeting to us. Likewise, by instructing the computer in a more complex and elegant way we can somehow tell them to do more than just this.&lt;/p&gt;

&lt;h2&gt;
  
  
  A computer is a calculator
&lt;/h2&gt;

&lt;p&gt;For a computer to fly a plane, it needs to calculate it's altitude, speed, direction and so on. When the computer drives a car, draws a light saver, or figure out our distance to an unknown planet in the universe, it has to &lt;strong&gt;calculate&lt;/strong&gt;. So here is the second blow. Compter &lt;strong&gt;caculates&lt;/strong&gt;. It is nothing but a calculator, but only that we can tell it &lt;em&gt;what&lt;/em&gt; to calculate and &lt;em&gt;how&lt;/em&gt; to calculate it. Calculations is one of the core functcions of computers. With mere 0, 1 some how humans have made a logic to create addition, multiplication, division, and substraction.&lt;/p&gt;

&lt;p&gt;So for a computer to calculate it needs to deal with numbers. And there are plenty of smart things that smart people have done to make our computers understand the Pi, Epsilon, and increadibly large numbers and so on. To do that there are some serious electrical engineering going on. When you come to think of it, it truely is a mistery how humans have come this far while we didn't even know what a voltage or current is.&lt;/p&gt;

&lt;p&gt;Anyhow thus understanding how computer calculates is another core of studying computers.&lt;/p&gt;

&lt;p&gt;Does this sound fun? Jump right in then!&lt;/p&gt;

</description>
      <category>beginners</category>
    </item>
  </channel>
</rss>
