<?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: Hiromichi NOMATA</title>
    <description>The latest articles on DEV Community by Hiromichi NOMATA (@hiromichinomata).</description>
    <link>https://dev.to/hiromichinomata</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%2F870965%2Fa3dd24c1-53b5-47c7-ae50-39ffbde35e38.png</url>
      <title>DEV Community: Hiromichi NOMATA</title>
      <link>https://dev.to/hiromichinomata</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hiromichinomata"/>
    <language>en</language>
    <item>
      <title>Learn biped robot by Zaku (ZEONIC TECHNICS)</title>
      <dc:creator>Hiromichi NOMATA</dc:creator>
      <pubDate>Thu, 06 Jul 2023 09:51:22 +0000</pubDate>
      <link>https://dev.to/hiromichinomata/learn-biped-robot-by-zaku-zeonic-technics-2k70</link>
      <guid>https://dev.to/hiromichinomata/learn-biped-robot-by-zaku-zeonic-technics-2k70</guid>
      <description>&lt;p&gt;Notes about robot Zaku&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2bUhGWXC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8154tnfc81325vntvlvh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2bUhGWXC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8154tnfc81325vntvlvh.jpg" alt="zaku standing" width="510" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is ZEONIC TECHNICS?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://p-bandai.jp/item/item-1000136116"&gt;ZEONIC TECHNICS&lt;/a&gt; is a bipedal robot course offered by Bandai. It is based on Kondo Kagaku hobby robots, and many of the parts are from Kondo Kagaku. The humanoids offered by Kondo Kagaku, such as &lt;a href="https://kondo-robot.com/product-category/robot/khrseries"&gt;KHR&lt;/a&gt;, have a plain black and white design, but this work is based on Zaku from Gundam, and a lot of effort has been put into the exterior of the robot. In short, it is a &lt;strong&gt;Moving Gundam Model&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When it arrived, nothing is assembled and you must assembly by following the instructions. The assembled Zaku can be controlled by Kondo Kagaku's HeartToHeart4 software from Windows or iOS/Android app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Associated parts
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tm9PtQNd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f3z67rm3lk72l9nhf10h.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tm9PtQNd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f3z67rm3lk72l9nhf10h.jpg" alt="zaku parts" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IFugy2pk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nv7trpzz01xcibwqewzn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IFugy2pk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nv7trpzz01xcibwqewzn.jpg" alt="zaku parts" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exterior system parts&lt;/li&gt;
&lt;li&gt;Batteries, screws, servos and structural parts&lt;/li&gt;
&lt;li&gt;Interior parts&lt;/li&gt;
&lt;li&gt;Plain manual&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All in one box.&lt;/p&gt;

&lt;p&gt;The box includes a screwdriver, so the assembly can be completed only with this box, but the assembly manual needs to be downloaded from the Internet. The manual is in black and white. It would have been easier to understand if more colors were used.&lt;/p&gt;

&lt;p&gt;As in the case of assembling my custom PC, it is easy to see the dark area with a penlight.&lt;/p&gt;

&lt;h2&gt;
  
  
  Assembly
&lt;/h2&gt;

&lt;p&gt;It seems that if you use &lt;a href="https://ameblo.jp/robotyuenchi/entry-12602100648.html"&gt;Robot Yuenchi's assembly service&lt;/a&gt;, you can have it in assembled  status about 8 hours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It took a total of 28 hours&lt;/strong&gt; for me to assemble it. The pros are 3 times faster.  I'm from a mechanical engineering department anyway... &lt;/p&gt;

&lt;p&gt;The area I got stuck on are summarized in &lt;a href="https://twitter.com/hiromichinomata/status/1271647306580803585"&gt;serial tweets&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I assembled the head, put on the body, put on the hands, and put on the feet. Generally, the more servos, the more time it takes. Miniature Zaku has no servos in the wrists and has 3 servos for one arm and 5 servos for one leg, so the legs are a real challenge. The legs are not just for decoration at all.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1271994559191330816-13" src="https://platform.twitter.com/embed/Tweet.html?id=1271994559191330816"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1271994559191330816-13');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1271994559191330816&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1272388358962991104-817" src="https://platform.twitter.com/embed/Tweet.html?id=1272388358962991104"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1272388358962991104-817');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1272388358962991104&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1274137661976895488-861" src="https://platform.twitter.com/embed/Tweet.html?id=1274137661976895488"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1274137661976895488-861');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1274137661976895488&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  After assembly
&lt;/h2&gt;

&lt;p&gt;After assembly, you can control it from an app on your smartphone like Scratch. The control is built with if clause and counting loops. Zaku has an IR sensor to the front , so you can use trigger when it comes near something.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/jHYH87ZotyU"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Posing can be done by the movement of servos. The Kondo Kagaku servo has a function to transmit its own position to the control, so you can register the posing like playing with a doll.&lt;/p&gt;

&lt;h2&gt;
  
  
  Operation from PC
&lt;/h2&gt;

&lt;p&gt;Kondo Kagaku maintain a software called HeartToHeart4, which allows you to transfer your own motions (Windows only, since it depends on .NET Frameworks). However, the transfer cable, Dual USB Adapter HS, must be purchased separately (6,000 yen without tax).&lt;/p&gt;

&lt;p&gt;The feel is very basic, and the servo angles are directly specified, so you may be surprised if you are using it like MikuMikuDance or Unity's Humanoid.&lt;/p&gt;

&lt;p&gt;Once the motion is written on the board, it can be executed from a smartphone app.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VrM88RDg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3kgipta3k8rmgkribdlq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VrM88RDg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3kgipta3k8rmgkribdlq.png" alt="HeartToHeart4" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/VQDm1r66M3c"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Good things, learning
&lt;/h2&gt;

&lt;p&gt;Thoughts are below.&lt;/p&gt;

&lt;h3&gt;
  
  
  Zaku with audio support
&lt;/h3&gt;

&lt;p&gt;I spent my weekends and after work to assemble it. It took a long time. I think I would have failed if it were the other robot. &lt;strong&gt;It's great that it's a Zaku that everyone knows, because I can imagine the finished product&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I also like the fact that it has speakers on the board. Even when the robot is not yet fully assembled, the cool sound effects and voices are very entertaining and motivating.&lt;/p&gt;

&lt;h3&gt;
  
  
  True biped robot.
&lt;/h3&gt;

&lt;p&gt;Some humanoid robots for hobby use are sold in the market with wheels on their legs or with legs that hardly move at all. ZEONIC TECHNICS Zaku walks on two legs (although it slips a little) and can do high kicks. &lt;strong&gt;I was impressed that it could go from prone or supine to upright on its own&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Yes, Zaku is smaller in size and has fewer servos than the &lt;a href="https://robotstart.info/robot-database/pre-made-ai"&gt;Premade AI&lt;/a&gt;. There are no servos for the wrists, and the range of motion around the face and neck is limited. Especially if you want to make it dance, you will want to have wrist parts. On the other hand, when posing it as a combat robot, it looks pretty good, which I think is a good thing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Video support
&lt;/h2&gt;

&lt;p&gt;Gunpla needs reading instructions and assemble parts silently. Zaku has a dedicated website, and many parts are explained in videos. It is easier to understand and more than just reading. It was good to supplement the manual by video since the small number of colors are a bit hard to understand.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bad points and difficulties
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Price
&lt;/h3&gt;

&lt;p&gt;Compared to the Premade AI, which was sold for several tens of thousands of yen last year, the price is high. Well, Premade AI was too much in the red. However, in the current market, one side is assembled for about 100,000 yen as well, and the other side has already assembled, so there is a difference.&lt;/p&gt;

&lt;p&gt;I thought it was hard to get to the programming part when you look at it as a STEM education material. The exterior is elaborate, but there were many operations to remove and attach screws, and the many screws reduced efficiency. If the next version is to be made, the fastening structure of backpacks and other parts that are frequently opened and closed could be changed, and the sharing of screws could be promoted a little more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lack of developers
&lt;/h2&gt;

&lt;p&gt;As well as the price, I don't see many people on Twitter playing together. And most of them are adults. I think the original concept was to make it controllable from a smartphone app so that even high school students could do it.&lt;/p&gt;

&lt;p&gt;I would like to combine higher level control than HeartToHeart4.&lt;br&gt;
I know the manufacturer wants to sell the hardware, but I wonder if it would be difficult in terms of budget to introduce it in schools, etc. unless it is one unit for a class or group rather than one unit for each person.&lt;/p&gt;

&lt;p&gt;I have heard that when the founder of Pebble was developing a smartwatch, he was advised by a mentor at Y Combinator to create an SDK, which turned out to be a good idea. Working with wired devices can be a pain, so it might be a good idea to make a hackable machine by creating an API that can be called wirelessly from Python, which would increase the number of developers.&lt;/p&gt;
&lt;h2&gt;
  
  
  Not Gundam. Large actuator.
&lt;/h2&gt;

&lt;p&gt;As I came into Gundam from SEED and Wing, the mobile suits in Gundam are Gundam. I haven't watched the recent Gundam. I was wondering if Zaku is mostly in the old series and all the recent ones are Gundam. I feel that Gundam is better for young people for STEM educational purposes.&lt;/p&gt;

&lt;p&gt;I think one pain point is the size of the servos. The smaller the size of the robot, the more noticeable the servos are. The servo size determins the restrictions on modeling. It is not so bad if the robot is fat because it is a Zaku, but if it is a slender Gundam, the servos would be too large.&lt;/p&gt;

&lt;p&gt;I don't have a solution for this, but when I was in college, I remember seeing an actuator that used a shape memory alloy. If miniaturization progresses, or if the patent for such a small actuator expires, hobby robots may change.&lt;/p&gt;
&lt;h2&gt;
  
  
  Fiction and reality is mixed
&lt;/h2&gt;

&lt;p&gt;There is a control system in Gundam called &lt;a href="https://ja.wikipedia.org/wiki/AMBAC"&gt;AMBAC&lt;/a&gt; that appears in the instructional book. The Gundam setting of the story is well done. It is written so openly in the textbook that I thought it was the real way of controlling robots until the very end. It may be a little confusing as an education because there are parts of the website that have such a mixed view of the world as well.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/OSDP83Saa54"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Comments
&lt;/h2&gt;

&lt;p&gt;Biped robots are fun.&lt;/p&gt;

&lt;p&gt;When I was a high school student, I chose the mechanical engineering department of the university because of WABOT. Unfortunately, I became interested in programming and ended up in a thermal laboratory doing numerical calculations, but I am deeply moved that I was able to complete a humanoid 10 years after graduation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Future Work
&lt;/h2&gt;

&lt;p&gt;Examining the possibility of porting tools made for Premade AI.&lt;/p&gt;

</description>
      <category>iot</category>
      <category>ros</category>
      <category>robotics</category>
      <category>zaku</category>
    </item>
    <item>
      <title>How to run Emacs macro via CLI without remembering complex shell commands</title>
      <dc:creator>Hiromichi NOMATA</dc:creator>
      <pubDate>Wed, 05 Jul 2023 13:57:35 +0000</pubDate>
      <link>https://dev.to/hiromichinomata/how-to-run-emacs-macro-via-cli-without-remembering-complex-shell-commands-5222</link>
      <guid>https://dev.to/hiromichinomata/how-to-run-emacs-macro-via-cli-without-remembering-complex-shell-commands-5222</guid>
      <description>&lt;p&gt;Proof of concept&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;When I convert file or replace some text, if the repeat is necessary,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use unix commands&lt;/li&gt;
&lt;li&gt;Combine 1&lt;/li&gt;
&lt;li&gt;Write scripts&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;are standard selection routine. &lt;/p&gt;

&lt;p&gt;Sometimes complex 2 is called as &lt;strong&gt;shell art&lt;/strong&gt; (in Japanese).&lt;/p&gt;

&lt;p&gt;Although we can understand the program if the number of commands are a few, the command with many combinations is dark magic.&lt;/p&gt;

&lt;p&gt;To ease this pain, one of the approach is rb command, which is simplified Ruby. This approach make Option 3 close to 1 and 2.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ja.algonote.com/entry/rb"&gt;https://ja.algonote.com/entry/rb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is useful, but command is long because it is simply Ruby. Also the speed of Ruby is slow compared with native Unix commands.&lt;/p&gt;

&lt;p&gt;When the other engineers use option 2,  in most cases, I simply use Emacs macro. If we can do this by CLI (Make Option 1 &amp;amp;2 rich), it's very helpful. &lt;/p&gt;

&lt;h2&gt;
  
  
  What is Emacs Macro?
&lt;/h2&gt;

&lt;p&gt;In Emacs, we can record keyboard strokes and paly it (keyboard macro).  Keyboard macro can be repeat run like the other Emacs commands using &lt;code&gt;C-u&lt;/code&gt;. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Record start: &lt;code&gt;C-x (&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Do custome action.  Using &lt;code&gt;C-a&lt;/code&gt;(Move to head) on head ,&lt;code&gt;C-n&lt;/code&gt;(newline) on end makes action stable&lt;/li&gt;
&lt;li&gt;Record end: &lt;code&gt;C-x )&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Run many times:&lt;code&gt;C-u &amp;lt;repeat number&amp;gt; C-x e&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This concept is also available in Excel+VBA, Windows+UWSC too. Save format is long compared with Emacs Macro anyway.&lt;/p&gt;

&lt;p&gt;Emacs operation is basically just key input, &lt;code&gt;C-&lt;/code&gt;(Ctrl)  and &lt;code&gt;M-&lt;/code&gt;(Meta).&lt;/p&gt;

&lt;p&gt;If we assume&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;^A&lt;/code&gt; =&amp;gt; &lt;code&gt;C-a&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;^a&lt;/code&gt; =&amp;gt; &lt;code&gt;M-a&lt;/code&gt; (Under struggle)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;, escape word in only &lt;code&gt;^&lt;/code&gt;. Very simple.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementation
&lt;/h2&gt;

&lt;p&gt;node.js is one option but I use golang for multiplatform support and speed. Interface is the copy of grep. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/hiromichinomata/emacro"&gt;https://github.com/hiromichinomata/emacro&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ cat test/sample.csv
2020-04-01 01:23,user01,male,17
2020-04-01 02:34,user02,female,27
2020-04-01 03:45,user03,male,37

$ grep female test/sample.csv
2020-04-01 02:34,user02,female,27

$ emacro '^S,user^D^D' test/sample.csv
2020-04-01 01:23,user,male,17
2020-04-01 02:34,user,female,27
2020-04-01 03:45,user,male,37

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;another example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ emacro "as^Adf" test/sample.csv
dfas2020-04-01 01:23,user01,male,17
dfas2020-04-01 02:34,user02,female,27
dfas2020-04-01 03:45,user03,male,37

$ emacro "as^F^Fdf" test/sample.csv
as20df20-04-01 01:23,user01,male,17
as20df20-04-01 02:34,user02,female,27
as20df20-04-01 03:45,user03,male,37

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Is regex only expression for string DSL?
&lt;/h2&gt;

&lt;p&gt;The most famous string DSL is probably regular expression. Regular expression is useful but main focus is pattern match. IMO, the weight is more on find than replacement.&lt;/p&gt;

&lt;p&gt;The final purpose of text replacement is imitation of text editor. &lt;strong&gt;String DSL is not only regular expression. Simple expression of text editor operation can be competitor.&lt;/strong&gt; That is my assumption.&lt;/p&gt;

&lt;p&gt;Unix philosophy says do one thing well.  Alghough Regex is very complex, we recognize regex is one operation.  If we can invent simple DSL instead of shell art, that DSL will be recognized as one thing after ten years ago .&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/hiromichinomata/emacro"&gt;https://github.com/hiromichinomata/emacro&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>cli</category>
      <category>emacs</category>
    </item>
    <item>
      <title>Collectible Card Game AI</title>
      <dc:creator>Hiromichi NOMATA</dc:creator>
      <pubDate>Tue, 07 Jun 2022 10:57:32 +0000</pubDate>
      <link>https://dev.to/hiromichinomata/collectible-card-game-ai-2968</link>
      <guid>https://dev.to/hiromichinomata/collectible-card-game-ai-2968</guid>
      <description>&lt;p&gt;Notes about the papers of Collectible Card Game AI&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xxUtpORI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vj74chg1cl6gqh77c2ld.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xxUtpORI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vj74chg1cl6gqh77c2ld.png" alt="Hearthstone AI Competition" width="867" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Game AI competition in IEEE COG 2019 was held. The competitions include Angry Bird level generation, fighting video game like Street Fighter 2, DeepMind hanabi.&lt;/p&gt;

&lt;p&gt;Also, Collectible Card Game AI competition was held. One is &lt;a href="https://jakubkowalski.tech/Projects/LOCM/COG19/"&gt;Legends of Code and Magic&lt;/a&gt;, which is simple card game for research. Another one is real digital card game &lt;a href="https://dockhorn.antares.uberspace.de/wordpress/"&gt;Hearthstone&lt;/a&gt;. In Hearthstone page, &lt;a href="https://dockhorn.antares.uberspace.de/wordpress/additional-material/"&gt;the list of past papers&lt;/a&gt; are available. I've read some papers for curiosity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Assumption
&lt;/h2&gt;

&lt;p&gt;Legends of Code and Magic and Hearthstone have two tasks.&lt;/p&gt;

&lt;p&gt;a.  Create deck from multiple cards&lt;/p&gt;

&lt;p&gt;b. Play good with created deck&lt;/p&gt;

&lt;p&gt;Each needs each optimization technique.&lt;/p&gt;

&lt;p&gt;There's variation in a. Legends of Code and Magic is selecting cards from limited random set before play(equivalent to Shadowverse 2Pick). Hearthstone AI competition have two tracks. One is  play AI using prebuilt deck, the other one is full deck customization &amp;amp; play. The latter one has enough time to consider. The assumption of paper is the same.&lt;/p&gt;

&lt;h2&gt;
  
  
  Papers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://doi.org/10.1109/CIG.2016.7860426"&gt;Evolutionary deckbuilding in hearthstone&lt;/a&gt;, 2016
&lt;/h3&gt;

&lt;p&gt;Paper about deck creation. With Metastone AI engine, the evolutionary algorithm library μGP is used. To improve confidence, there are 15 tries per deck. The author compared the result with the deck of Tempo Storm, American e-sports team. &lt;/p&gt;

&lt;p&gt;Two heroes are scope. They won against the deck created by the professional players.&lt;br&gt;
However the simulation of Metastone AI is not perfect. &lt;/p&gt;

&lt;p&gt;The computer doesn't play well the deck which human player plays well. Although no condition was assumed, generated deck include multiple same cards. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.sciencedirect.com/science/article/abs/pii/S0950705118301953?via%3Dihub"&gt;Automated Playtesting in Collectible Card Games using Evolutionary Algorithms: a Case Study in HearthStone&lt;/a&gt;, 2018
&lt;/h3&gt;

&lt;p&gt;Papers from the same authors. After exploring all heroes, they replace the card to similar cost one (+1/-1) to reduce calculations. They call it as Smart Mutation.&lt;/p&gt;

&lt;p&gt;In all cases, they outperform human deck. However Smart Mutation doesn't work for some heroes.  Most heroes work well and the evolutionary algorithm is stable anyway. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://doi.org/10.15439/2017F561"&gt;Helping AI to Play Hearthstone using Neural Networks&lt;/a&gt;, 2017
&lt;/h3&gt;

&lt;p&gt;AAIA’17 Data Mining Challenge winning solution.  The task is to predict win ratio with Neural Network. at the given game state. In this condition, the player doesn't know played cards and remaining cards. &lt;/p&gt;

&lt;p&gt;Used network is CNN. The input is normalized to 0-1. Compared with logistic regression, the performance is better thanks to ensemble and tuning. AUC is around 0.01 anyway.&lt;/p&gt;

&lt;h2&gt;
  
  
  Impression
&lt;/h2&gt;

&lt;p&gt;The assumption of deck selection AI sometimes include play AI. The two tasks are related.&lt;/p&gt;

&lt;p&gt;In the both cases, the calculation complexity is important.  Play log is the key in &lt;a href="https://elie.net/blog/hearthstone/predicting-hearthstone-opponent-deck-using-machine-learning/"&gt;n-gram case&lt;/a&gt;. Card2Vec may be important.&lt;/p&gt;

&lt;h2&gt;
  
  
  Future Work
&lt;/h2&gt;

&lt;p&gt;Join competition?&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>Learn Qt by Udemy course</title>
      <dc:creator>Hiromichi NOMATA</dc:creator>
      <pubDate>Mon, 06 Jun 2022 10:46:05 +0000</pubDate>
      <link>https://dev.to/hiromichinomata/learn-qt-by-udemy-course-26jc</link>
      <guid>https://dev.to/hiromichinomata/learn-qt-by-udemy-course-26jc</guid>
      <description>&lt;p&gt;Notes about Qt course (Translation of Japanese article in 2020)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6YuI199a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cs4vxnl85hdhcdf2c4a0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6YuI199a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cs4vxnl85hdhcdf2c4a0.png" alt="qt course toc" width="774" height="727"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Stay home is consensus. Although I prefer stay home natively since born, I noticed the importance of walking recently.&lt;/p&gt;

&lt;p&gt;Every course is free or on sale. No schedule to meet people drives learning. Home with children looks hard anyway.&lt;/p&gt;

&lt;p&gt;Udemy regularly do sales campaign. I purchased &lt;a href="https://www.udemy.com/course/qt_quick_qml_tutorial_for_beginners/"&gt;Qt Quick and QML For Beginners : The Fundamentals&lt;/a&gt; with discount price.&lt;/p&gt;

&lt;p&gt;Here are the notes I have learned&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Qt?
&lt;/h2&gt;

&lt;p&gt;When we develop desktop native application, we use C++ or C# with Visual Studio for Windows, Objective-C or Swift for MacOS. The tools are different like mobile app development, which we use Swift and Kotlin for iOS and Android.&lt;/p&gt;

&lt;p&gt;React Native, Xamarin, Flutter are famous as cross platform development tool. Write once, run each platform.&lt;br&gt;
Qt and Uno Platform are cross platform development tool for desktop app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Qt is used by 3dsMax, FireAlpaca, Krita, Kindle, Kobo, VLC media player and Wireshark.  There are many cases.&lt;/strong&gt;(&lt;a href="https://qiita.com/hermit4/items/5156203201694966c9e4"&gt;Ref&lt;/a&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  Qt license
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Originally Qt licenses were only commercial and GPL.&lt;/strong&gt; If you wanted to sell product, you had to purchase commercial license. Free meant GPL.  Commercial license price is $3950/year now. If my memory is correct, the price was more expensive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In 2009, they changed the plan. LGPL is also applicable.&lt;/strong&gt; Free tier widened. Startup and individual developer can purchase special license with discounted 499 USD/year. &lt;/p&gt;

&lt;p&gt;For your information, PyQT is GPL in either case.&lt;/p&gt;

&lt;h2&gt;
  
  
  Recent Qt change
&lt;/h2&gt;

&lt;p&gt;Qt was originally develop by C++. &lt;strong&gt;Recent versions support QML(Qt Modeling Language). Creating UI and simple logic is possible by only JavaScript&lt;/strong&gt;. In addition, Qt Quick, UI framework is included in the latest version.&lt;/p&gt;

&lt;p&gt;Also original build targets were desktop and embedded system. The latest version supports smartphone build and WebAssembly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Udemy course
&lt;/h2&gt;

&lt;p&gt;Udemy course is based on QML and Qt Quick. Basically JavaScript is the language. Here are the table of contents.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Dissecting the QML Syntax&lt;/li&gt;
&lt;li&gt;Qt Quick Basic Elements&lt;/li&gt;
&lt;li&gt;Signals and Slots&lt;/li&gt;
&lt;li&gt;User Input Elements&lt;/li&gt;
&lt;li&gt;Working with Javascript&lt;/li&gt;
&lt;li&gt;Qt Quick Positioning&lt;/li&gt;
&lt;li&gt;Qt and Qt Quick on Mobile Devices&lt;/li&gt;
&lt;li&gt;Qt Quick Controls&lt;/li&gt;
&lt;li&gt;Dialogs&lt;/li&gt;
&lt;li&gt;Models Views and Delegates&lt;/li&gt;
&lt;li&gt;Transforms, Transitions and Animations&lt;/li&gt;
&lt;li&gt;Networking&lt;/li&gt;
&lt;li&gt;Storage&lt;/li&gt;
&lt;li&gt;Best Practices+BONUS&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Covering animation easing is awesome.&lt;/p&gt;

&lt;p&gt;Well-known Qt features are &lt;strong&gt;signal and slot&lt;/strong&gt;. Event by button click can trigger another action like cable. 2015 PyConJP had presentation for this feature.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=S_ipiLIClZw"&gt;https://www.youtube.com/watch?v=S_ipiLIClZw&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pro and Cons
&lt;/h2&gt;

&lt;p&gt;When I took &lt;a href="https://ja.algonote.com/entry/udemy-ios-android"&gt;iOS, Android courses&lt;/a&gt;, I felt video is good format to learn GUI development. The same advantage applies to Qt too.&lt;/p&gt;

&lt;p&gt;On the other hand, the course content is only JavaScript. Full usage of C++ is missing. &lt;/p&gt;

&lt;p&gt;I need to check open source projects for further learning. Techbook fest book is also a good reference.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://booth.pm/ja/items/1010947"&gt;https://booth.pm/ja/items/1010947&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Qt future
&lt;/h2&gt;

&lt;p&gt;If you check Wikipedia, you find the parent company changes a few times by M&amp;amp;A.&lt;/p&gt;

&lt;p&gt;Due to Covid-19, the company is &lt;a href="https://www.phoronix.com/scan.php?page=news_item&amp;amp;px=Qt-Might-Restrict-New-Releases"&gt;planning to sell only commercial license for new version&lt;/a&gt;. The business health is not very good.&lt;/p&gt;

&lt;h2&gt;
  
  
  Future Works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Xamarin&lt;/li&gt;
&lt;li&gt;React Native&lt;/li&gt;
&lt;li&gt;Electron&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.udemy.com/course/qt_quick_qml_tutorial_for_beginners/"&gt;https://www.udemy.com/course/qt_quick_qml_tutorial_for_beginners/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>udemy</category>
      <category>cpp</category>
      <category>javascript</category>
      <category>qt</category>
    </item>
    <item>
      <title>List of Famous Machine Learning Patents</title>
      <dc:creator>Hiromichi NOMATA</dc:creator>
      <pubDate>Sun, 05 Jun 2022 04:11:44 +0000</pubDate>
      <link>https://dev.to/hiromichinomata/list-of-famous-machine-learning-patents-49nh</link>
      <guid>https://dev.to/hiromichinomata/list-of-famous-machine-learning-patents-49nh</guid>
      <description>&lt;p&gt;Summary of famous machine learning patents&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WJlJj2Ta--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1q44avwn4q60nenc0s6m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WJlJj2Ta--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1q44avwn4q60nenc0s6m.png" alt="Tokyo patent office" width="388" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Machine learning community is relatively open. Papers can be dowloaded from arXiv for free. On the other hand, we sometimes  found some methods are registered as patents.&lt;/p&gt;

&lt;p&gt;I daily collect these patents shared on Twitter and Reddit. The patents below are  the list of machine learning patents. Some patents are under application, not approved.&lt;/p&gt;

&lt;h2&gt;
  
  
  General
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Generating output sequences from input sequences using neural networks by Google
&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://www.freepatentsonline.com/10402719.html"&gt;http://www.freepatentsonline.com/10402719.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;known as seq2seq&lt;/p&gt;

&lt;h2&gt;
  
  
  Preventing overfitting
&lt;/h2&gt;

&lt;h3&gt;
  
  
  System and method for addressing overfitting in a neural network by Google
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://patents.google.com/patent/WO2014105866A1"&gt;https://patents.google.com/patent/WO2014105866A1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;known as Dropout&lt;/p&gt;

&lt;h3&gt;
  
  
  Batch normalization layers
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://patents.google.com/patent/US20160217368A1/en"&gt;https://patents.google.com/patent/US20160217368A1/en&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As title shows, Batch Normalization patents. According to &lt;a href="https://www.slideshare.net/YosukeShinya/ss-125937523"&gt;this slide&lt;/a&gt;,  the patents are registered in many countries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Image, Augmentation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Object detection and classification in images by Microsoft
&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect2=PTO1&amp;amp;Sect2=HITOFF&amp;amp;p=1&amp;amp;u=/netahtml/PTO/search-bool.html&amp;amp;r=1&amp;amp;f=G&amp;amp;l=50&amp;amp;d=PALL&amp;amp;RefSrch=yes&amp;amp;Query=PN/9858496"&gt;http://patft.uspto.gov/netacgi/nph-Parser?Sect2=PTO1&amp;amp;Sect2=HITOFF&amp;amp;p=1&amp;amp;u=/netahtml/PTO/search-bool.html&amp;amp;r=1&amp;amp;f=G&amp;amp;l=50&amp;amp;d=PALL&amp;amp;RefSrch=yes&amp;amp;Query=PN/9858496&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Faster R-CNN (object detection). According to &lt;a href="https://qiita.com/yu4u/items/6bc9571c19181c1600a7"&gt;qiita article&lt;/a&gt;, it is only applied to U.S.&lt;/p&gt;

&lt;h3&gt;
  
  
  DATA AUGMENTATION FOR IMAGE CLASSIFICATION TASKS by IBM
&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://www.freepatentsonline.com/y2019/0087694.html"&gt;http://www.freepatentsonline.com/y2019/0087694.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;similar to Mixup&lt;/p&gt;

&lt;h2&gt;
  
  
  Sound
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Spectrogram to waveform synthesis using convolutional networks by Baidu
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://patents.google.com/patent/US20190355347A1/en"&gt;https://patents.google.com/patent/US20190355347A1/en&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;waveform generation from spectrogram by (Multi-head) CNN&lt;/p&gt;

&lt;h3&gt;
  
  
  Machine learning to generate music from text by Google
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://pdfaiw.uspto.gov/.aiw?PageNum=0&amp;amp;docid=20180190249&amp;amp;IDKey=&amp;amp;HomeUrl=%2F"&gt;https://pdfaiw.uspto.gov/.aiw?PageNum=0&amp;amp;docid=20180190249&amp;amp;IDKey=&amp;amp;HomeUrl=%2F&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Music Generation from text&lt;/p&gt;

&lt;h2&gt;
  
  
  Others
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Deep reinforcement learning for robotic manipulation by Google
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://patents.google.com/patent/WO2018053187A1/en"&gt;https://patents.google.com/patent/WO2018053187A1/en&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Multiple robots learn individually. By using acquired experiments, policy network is learned.&lt;/p&gt;

&lt;h3&gt;
  
  
  Active Machine Learning by Microsoft
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://patents.google.com/patent/US20160162802"&gt;https://patents.google.com/patent/US20160162802&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When new labels are added, model start relearning in the limit of model size.&lt;/p&gt;

&lt;h2&gt;
  
  
  Impression
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.federalregister.gov/documents/2019/08/27/2019-18443/request-for-comments-on-patenting-artificial-intelligence-inventions"&gt;US patent office was open for comments about AI patents&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If it is paper, the explicit description  like xx% precision improvement is popular. The patents description is ambiguous for enlarging the claim rights.&lt;/p&gt;

&lt;p&gt;If you know the other patens, please let me know.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>patent</category>
    </item>
    <item>
      <title>binding.pry by many programming languages</title>
      <dc:creator>Hiromichi NOMATA</dc:creator>
      <pubDate>Sat, 04 Jun 2022 09:13:37 +0000</pubDate>
      <link>https://dev.to/hiromichinomata/bindingpry-by-many-programming-languages-4h2f</link>
      <guid>https://dev.to/hiromichinomata/bindingpry-by-many-programming-languages-4h2f</guid>
      <description>&lt;p&gt;Comparison of process interruption tool&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LQ942Kk_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ydtoaqehc7lird8gx5p8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LQ942Kk_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ydtoaqehc7lird8gx5p8.png" alt="Image description" width="466" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is binding.pry?
&lt;/h2&gt;

&lt;p&gt;While debugging, the engineers sometimes want to see the variable values at that point. If your language is static and you use IDE, you can set break point  by GUI tools. However, if you use a scripting language with a pure text editor, we cannot take it the same way.&lt;/p&gt;

&lt;p&gt;Open REPL and run each line might be possible, but it's a hassle.&lt;br&gt;
On Ruby, inserting binding.pry or binding.irb can launch REPL at a specific point. I share how we can do the same thing for the other languages. &lt;/p&gt;
&lt;h2&gt;
  
  
  Ruby
&lt;/h2&gt;

&lt;p&gt;After &lt;code&gt;gem install pry&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'pry'&lt;/span&gt;
&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="nb"&gt;binding&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pry&lt;/span&gt; &lt;span class="c1"&gt;# open REPL&lt;/span&gt;
&lt;span class="nb"&gt;puts&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;b&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Since Ruby 2.4, native irb supports similar feature&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'irb'&lt;/span&gt;
&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="nb"&gt;binding&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;irb&lt;/span&gt; &lt;span class="c1"&gt;# open REPL&lt;/span&gt;
&lt;span class="nb"&gt;puts&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;b&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Python
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;pip install ipython&lt;/code&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="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;IPython&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;embed&lt;/span&gt;
&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="n"&gt;embed&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# open REPL
&lt;/span&gt;&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&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;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Node.js
&lt;/h2&gt;

&lt;p&gt;Style is different. &lt;code&gt;node inspect test.js&lt;/code&gt;&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;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;debugger&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// breakpoint&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At launch time, the cursor is on the head of the script. Move to the breakpoint.&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;debug&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;cont&lt;/span&gt; &lt;span class="c1"&gt;// Continue to breakpoint&lt;/span&gt;
&lt;span class="nx"&gt;debug&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;repl&lt;/span&gt; &lt;span class="c1"&gt;// Open REPL&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  PHP
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;composer require psy/psysh&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class="k"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'vendor/autoload.php'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nv"&gt;$a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;eval&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="nf"&gt;Psy\sh&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// open REPL&lt;/span&gt;
&lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$a&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nv"&gt;$b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Impression
&lt;/h2&gt;

&lt;p&gt;Node.js's style is unique.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>python</category>
      <category>ruby</category>
      <category>php</category>
    </item>
    <item>
      <title>How to enjoy competitive programming on iPad (lie-down)</title>
      <dc:creator>Hiromichi NOMATA</dc:creator>
      <pubDate>Thu, 02 Jun 2022 11:13:31 +0000</pubDate>
      <link>https://dev.to/hiromichinomata/how-to-enjoy-competitive-programming-on-ipad-lie-down-52j3</link>
      <guid>https://dev.to/hiromichinomata/how-to-enjoy-competitive-programming-on-ipad-lie-down-52j3</guid>
      <description>&lt;p&gt;Lie-down Programming&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nrJTdY4b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i5b9sm8xahp77y64u76a.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nrJTdY4b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i5b9sm8xahp77y64u76a.jpg" alt="iPad coding" width="880" height="643"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Preface
&lt;/h2&gt;

&lt;p&gt;I think &lt;strong&gt;resting your body is important for being in good shape until the end of retirement&lt;/strong&gt;.  Even if you are smart, sometimes you have to quit jobs due to the pain of the back. Lying down and resting is important because the weight of the back is sit &amp;gt;&amp;gt; stand &amp;gt;lie down.&lt;/p&gt;

&lt;p&gt;Reading articles on iPad or Kindle is easy. Speech to text may be possible for novels and blogs thanks to the improvement of speech recognition. However, programming needs symbol inputs. That's not suitable for speech recognition.&lt;/p&gt;

&lt;p&gt;The programming on tablet  sometimes stands for the tablet with Bluetooth keyboard. That's just the replacement of PC. Still need sitting. Programming while lying down is rare. Today I use AtCoder and Python as an example.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to do programming on tablet
&lt;/h2&gt;

&lt;p&gt;The choices of development environments are mainly two ways.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Use language unique development app&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Open web-based IED on web browser&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The former has the advantage on opening local files, offline availability, temporary save. The latter provides more choices of programming languages.&lt;/p&gt;

&lt;p&gt;At least on iOS, some developers publish software-engineer-oriented keyboards.  By combining those specialized keyboards, customization shines. However in this article, I focus on Python due to the number of past resources.&lt;/p&gt;

&lt;h2&gt;
  
  
  Python running environment comparison
&lt;/h2&gt;

&lt;p&gt;As Python environment on iPad, Pythonista ‪3‬ and Python3ID‪E are popular.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pythonista ‪3‬
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://apps.apple.com/us/app/pythonista-3/id1085978097"&gt;https://apps.apple.com/us/app/pythonista-3/id1085978097&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nrJTdY4b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i5b9sm8xahp77y64u76a.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nrJTdY4b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i5b9sm8xahp77y64u76a.jpg" alt="iPad coding" width="880" height="643"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pythonista is the most famous app for iOS + python. It is paid app and on sale while the season for major Python conferences.&lt;/p&gt;

&lt;p&gt;As of Feb. 2021, the latest AtCoder python version is 3.8. Pythonista supports only old 3.6.  By saving files on iCloud, the same files are editable by both iPhone and iPad if you can wait sync time.&lt;/p&gt;

&lt;p&gt;The in-app keyboard provides unique tab and symbol keys on the top line for convenience. The disadvantages are missing key for moving the cursor to the end of line and if-else indent is not smart. Not perfect for my use case, but affordable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Python3IDE
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://apps.apple.com/jp/app/python3ide/id1357215444"&gt;https://apps.apple.com/jp/app/python3ide/id1357215444&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4eUQrKn2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m9pwk61nvla6k7z27ts6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4eUQrKn2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m9pwk61nvla6k7z27ts6.jpg" alt="Python3IDE screenshot" width="880" height="645"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This one is Python 3.7 and for free. Although Pythonista supports library addition via pip with some hassles, Python3IDE has embedded UI for library install. That's much easier.&lt;/p&gt;

&lt;p&gt;Unfortunately, I faced some buggy behavior on blank line insert and new line delete. Suggest is weak too.&lt;/p&gt;

&lt;h2&gt;
  
  
  About AtCoder run environment
&lt;/h2&gt;

&lt;p&gt;AtCoder has internal code test function, but local confirmation is my preference.&lt;br&gt;
Without a terminal, the file input is need, but AtCoder only supports standard input. &lt;/p&gt;

&lt;p&gt;There's a trick for one code, run all. By using the platform difference between AtCoder and the local app, you can use local-only file input.&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="c1"&gt;# Pythonista
&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;platform&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s"&gt;'ios'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
  &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'input1.txt'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Python3IDE
&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;platform&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s"&gt;'darwin'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
  &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'input1.txt'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Finally
&lt;/h2&gt;

&lt;p&gt;Custom keyboard often stands for hardware one for PC.&lt;br&gt;
Creating a custom software keyboard for non-PC looks fun. I want to try it in the future.&lt;/p&gt;

</description>
      <category>python</category>
      <category>ios</category>
      <category>competitiveprogramming</category>
    </item>
    <item>
      <title>Go Conference 2017 Autumn Impressions &amp; Digest</title>
      <dc:creator>Hiromichi NOMATA</dc:creator>
      <pubDate>Wed, 01 Jun 2022 11:20:46 +0000</pubDate>
      <link>https://dev.to/hiromichinomata/go-conference-2017-autumn-impressions-digest-28ib</link>
      <guid>https://dev.to/hiromichinomata/go-conference-2017-autumn-impressions-digest-28ib</guid>
      <description>&lt;p&gt;I attended &lt;a href="https://gocon.connpass.com/event/66615/"&gt;Go Conference 2017 Autumn&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Special Program: Panel Discussion w/ mattn
&lt;/h2&gt;

&lt;p&gt;Normal Panel Discussion. Since the runtime update is easy with Go, the risk is low. No problem on Windows, Expectations to Go2, How to hire senior gophers etc.&lt;/p&gt;

&lt;p&gt;No bug correction due to compatibility sounds hard. I didn't know &lt;a href="https://github.com/cznic/99c"&gt;C compiler written in Go&lt;/a&gt;. Aside from the main story, I learned BigQuery accepts JSON import.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keynote: Go at DigitalOcean / fatih
&lt;/h2&gt;

&lt;p&gt;Case study of Go at DigitalOcean.  Most infrastructure code has moved to Go. Since code sharing etc had issues, the repository moved to mono. However the other issue occurred then the structure is changing little by little every year.&lt;/p&gt;

&lt;p&gt;I don't know why, but I misunderstood DigitalOcean was originally written in pure Python. Actually Chef(Ruby) was also used. Zero downtime is featured again. I feel the power of Go in infrastructure field.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sponsor session：Go + microservices at Mercari / deeeet
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://talks.godoc.org/github.com/tcnksm/talks/2017/11/gocon2017/gocon2017.slide"&gt;https://talks.godoc.org/github.com/tcnksm/talks/2017/11/gocon2017/gocon2017.slide&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Build Microservices with Go. Firstly API Gateway, then moved little by little. Since gRPC is cached connection, load balancing is hard. DNS resolver was added last August.&lt;/p&gt;

&lt;p&gt;Since the talk was based on the actual failures at work, the information was helpful. I'm motivated enough to try gRPC. I learned the middleware in HTTP is the interceptor in gRPC.&lt;/p&gt;

&lt;h2&gt;
  
  
  Story of our own Monitoring Agent in golang / huydx
&lt;/h2&gt;

 &lt;strong&gt; &lt;a href="//www.slideshare.net/dxhuy88/gocon-autumn-story-of-our-own-monitoring-agent-in-golang" title="GOCON Autumn (Story of our own Monitoring Agent in golang)"&gt;GOCON Autumn (Story of our own Monitoring Agent in golang)&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href="//www.slideshare.net/dxhuy88"&gt;Huy Do&lt;/a&gt;&lt;/strong&gt; 

&lt;p&gt;Talk about Monitoring Agent. fluentd sends log  as is, MA isn't.  Due to scalability,  to adopt to multiple environment and easy management, in-house making was chosen.  Not only making, the deploy is also difficult.&lt;/p&gt;

&lt;p&gt;I didn't know LINE considered Rust then decided not to use it. Initial instinct was due to unique syntax. Actual reason of not adopt was the integrity of the format. &lt;/p&gt;

&lt;h2&gt;
  
  
  Consideration about Go logging / Takahito YAMATOYA
&lt;/h2&gt;

 &lt;strong&gt; &lt;a href="//www.slideshare.net/ssuser88ff5b/gocon2017go" title="Gocon2017：Goのロギング周りの考察"&gt;Gocon2017：Goのロギング周りの考察&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href="//www.slideshare.net/ssuser88ff5b"&gt;貴仁 大和屋&lt;/a&gt;&lt;/strong&gt; 

&lt;p&gt;Comparison of Golang logging in OSS. Log package is simple. For example, no level feature. Prometheus is thin wrapper of go-kit, Hashicorp's log is with level etc&lt;/p&gt;

&lt;p&gt;A lot of investigation. Awsome. When I create log with another language, I will probably refer to this.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to achieve parallel compilation ig Go 1.9 / niconegoto
&lt;/h2&gt;

&lt;p&gt;Talk about complier parallelization since Go 1.9. The parallel compile is by default now. It can be turned off using flag. Internal changes are mainly the addition of mutex and unglobalization of global variables.&lt;/p&gt;

&lt;p&gt;IMHO, Go build is fast enough. Now more faster with parallelization. I hope Deep Learning library build becomes faster using Go. I note c=4 is sweet spot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Async, Persistent, Fast, and Stable "Enough" Queue/Worker Using Go and PostgreSQL / _achiku
&lt;/h2&gt;

&lt;p&gt;que-go is based on kei written in ruby. You can set different priority in the same queue. Using PostgreSQL. Advisory lock is mature. &lt;/p&gt;

&lt;p&gt;I didn't know PostgreSQL advisory lock. Although queue was the main story, I learned a lot about DB.&lt;/p&gt;

&lt;h2&gt;
  
  
  Diff algorithm in Go / cubicdaiya
&lt;/h2&gt;

&lt;p&gt;Explanation about diff algorithm.  The order of dynamic programming isn't good. Git is based on Myer's algorithm etc.&lt;/p&gt;

&lt;p&gt;Unfortunately, due to the lack of fundamental knowledge, I couldn't understand well from the middle.  Review is needed after the slide upload. I like the talk about pure algorithm. Small funnies were also good.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ebiten - Simple 2D Game Library in Go / hajimehoshi
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.google.com/presentation/d/e/2PACX-1vSSbSxPObBZcJHjvUpAt-HEJVLaux2FQBpJbvbxInJgmEhxSn-lVxTVxUMmUNQwtJtC8w6_HkhuW2hk/pub?start=false&amp;amp;loop=false&amp;amp;delayms=3000&amp;amp;slide=id.p"&gt;https://docs.google.com/presentation/d/e/2PACX-1vSSbSxPObBZcJHjvUpAt-HEJVLaux2FQBpJbvbxInJgmEhxSn-lVxTVxUMmUNQwtJtC8w6_HkhuW2hk/pub?start=false&amp;amp;loop=false&amp;amp;delayms=3000&amp;amp;slide=id.p&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Talk about Ebiten, 2D game library. The basic is depicting from rectangle to another rectangle. Although the domain is 2D, GPU is used for acceleration. With Cgo, compile time was slow. GopherJS is used on browser. Detecting distinct error reason on mobile is hard.&lt;/p&gt;

&lt;p&gt;The book I bought at Gijutushoten was mainly about how to use library. This talk was about the internal of the library. I think the audio feature of the game library is sometimes weak. This library uses proper backend for each target . It looks good.&lt;/p&gt;

&lt;h2&gt;
  
  
  reviewdog and static analysis for Go / haya14busa
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.google.com/presentation/d/1_BWQXamZvIhL3l9ziL9zb25yP9RjpgXoxkWX-48ECss/mobilepresent?slide=id.p"&gt;https://docs.google.com/presentation/d/1_BWQXamZvIhL3l9ziL9zb25yP9RjpgXoxkWX-48ECss/mobilepresent?slide=id.p&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Talk about reviewdog. Existing solution has the limitation. For example, we cannot use the analysis tools we like. Vim's errorformat feature is ported to Go. Currently only Github is supported, but adding GitLab support is also a target.&lt;/p&gt;

&lt;p&gt;Using existing Vim's errorfromat to avoid the reinvention of the wheel looks smart. Are most Gophers Vimmer? Emacs users were slightly away probably due to the effect of VimConf.&lt;/p&gt;

&lt;h2&gt;
  
  
  LT (Lightning Talks) Materials
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.slideshare.net/keigosuda/20171105-go-con2017lt-81642440"&gt;Package structure is always concern&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://speakerdeck.com/izumin5210/consider-better-error-handling-for-web-apps"&gt;Consider better error handling for web apps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Go also needs performance tuning&lt;/li&gt;
&lt;li&gt;&lt;a href="https://speakerdeck.com/otiai10/bioinformatics-meets-go"&gt;Bioinformatics meets Go&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://speakerdeck.com/knsh14/go-deintapuritawo-shu-itemiyou"&gt;Let's code interpreter using Go&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Throughout Conference
&lt;/h2&gt;

&lt;p&gt;I always lose the lotteries of Go Conference and this was the first time I attend. Although I initially thought the most of talks are about new features of Go,  actual talks were mainly how to do something using Go.&lt;/p&gt;

&lt;p&gt;The contents were wide from network, monitoring to DB and game library etc. I learned a lot  and these will be definitely helpful when I consider the architecture.&lt;/p&gt;

</description>
      <category>go</category>
      <category>gocon</category>
    </item>
  </channel>
</rss>
