The download count of Analog Book Reader a while ago was extraordinary.

Total count is about 40,000 now but the count in this term was 1600. After that, it became back to normal. I can’t found any information in Google and Twitter search. A friend of mine guesses that some organization adopts the app and all the member has installed. It is strange anyway.

By the way, Weather Typing download count is about 40,000+ that I don’t know the count of early days, though. Analog Book Reader download count is getting closer to that. The world is big. Weather Typing can be used in global after I developed current project so it will became global, I hope.

I went to Akihabara with Happa for the first time in a while. The goal this time was BEEP秋葉原店 which was on my mind for several month. Basic Magazine like paint was on road and when we entered the shop, there were many retro PC, game, books. There were MSX, x68, even Tiny-Xevious of PC 6001, and many NES games. However, I don’t have items to buy because I can’t play with them because of environment. There were Basic Magazines but I can read them in National Diet Library. Are really core people have gaming environment in their home?

The another goal was Raspberry Pi. I bought camera module I didn’t have one for Arduino. I will try it.

I bought Raspberry Pi a while ago so I played with it.

Raspberry Pi is a small computer and can be used with an OS in SD card. It has I/O pins which I can attach electric parts. In fact, I wanted to install a Wi-Fi and a camera into Arduino and grade up RC. But I can’t install other parts after installed two motors and Bluetooth so I will try Raspberry Pi which has Wi-Fi and camera I/F.

I bought Raspberry Pi and SD card, connect it to HDMI display, connected USB mouse and keyboard. I installed Raspbian (Default Linux) to SD card using PC, then ready. Launching Raspberry Pi and installed OS. After changing password, configured Wi-Fi, finally I was able to login to it with SSH from PC.

I have a problem here. When I use it, IP address will be changed because of DHCP and it is hard to use. I don’t want to connect display and execute ifconfig. Because of that, I created a first program that notify IP address to web site when launched. It was my first Python program so I don’t know details.

# coding: utf-8
import urllib2
import subprocess

url = 'http://xxxxx/cgi-bin/xxxxx.cgi?ip='
cmd = "hostname -I"
ip = subprocess.check_output(cmd,shell=True)
urllib2.urlopen(url + ip)

When Raspberry Pi launched, it seems that pi user automatically logins, so I added following code in .bashrc.

python /home/pi/ &

In Web side, I created CGI but I can’t copy & paste here because it is link to large original library. It saves given IP address and output latest IP address to standard output.

Now I don’t need display, mouse and keyboard. Super convenient.

January will end without any articles. WT3 is progressing but I have a lot of items to work with for input method plugin. I have to implement weight calculation, sandboxing, network protocol change, replay compatibility. When can I finish?

WT3。The completion is still far away but I’m working on customization. I ended up UI designing word customization and input method customization. That will be finish soon. I have to stop working on design as it take infinite time. I will upload development version.

Recently, I’m study math to understand Elliptic curve cryptography. At first I read 「数学ガール」 series by Hiroshi Yuki who is famous by C magazine and 「なっとくする虚数・複素数の物理数学」 which was in my house. In my college, I thought Japanese books are too difficult but now a days there are easy books even in Japanese so it is good for people studying as hobby.

Speaking of Elliptic curve cryptography, I should learn Fermat’s Last Theorem. I read Simon Singhの「Fermat’s Last Theorem」. The story of Andrew Wiles who research it for 7 years in secret and make a presentation on conference is interesting. The book does not include much formula so it is not satisfying. But as it is too difficult to understand full theory so maybe the book is good. As a side effect, I was able to study math terms in English because I read it in English.

Finally, I am reading 「暗号理論と楕円曲線」 which I can read somehow. I have read 1/3 and I feel I can understand overview of Elliptic curve cryptography.

Since I studied math, I want to make an application about it like the physics simulator and music score app, I want some ideas.

I went to bookshop. I bought 趣味で物理学 series as all the three books are at the bookshop.

This book is based on a site EMANの物理学 and I read a lot while I was making a physics simulator World Tester. This site explores physics during describing and it is so interesting that I was reading the site for a long time. I wish buying books helps the author.

I have to add entry before November.

WT3 is progressing but I cannot release it for a while. I am making a input method plugin but before that, I have to improve lobby design which I spent little time before.

I am reading a book which I found in a bookstore なるほどデザイン. It is very interesting. Most design book includes rules and example but I do not know how I use it. This book includes design method and write every steps to design so it is useful.

Weather Typing. The issue, occurred in summit, that input speed becomes very slow has been solved. I am using bit flags for Roman input customize and in C++, I used STL bitset and in C#, I used BitArray. That was very slow and after I changed it to simple long, it became super fast.

I had similar report from some users but I didn’t find the cause because I couldn’t reproduce. But in summit, I got hint that WT will be slow when 5 people battle with long word so that helped a lot.

I’m changing WT input method so publishing new version will be later.

I couldn’t go to it but I write a report of annual Typing Summit.

This year, I assumed I have to go to work this time of year so I didn’t entry. But as a result, Only I was free so I was able to see NikoNama.

WT team battle. Thanks to have a great event. Broadcasting is improved. In the last year, I saw NikoNama after the summit but I couldn’t see the words in screen. In this year, because of tahe lighting and layout, I could see words clearly. Other than that, the team name which was hard to see, was changed to color name that was easy to understand.

I was worrying about connection and spec change but it seems no bit problems. Maybe the facility team was tested carefully. The following things are the software issues. I have to handle it.

  • The user can’t see all the information
  • Too much lag
  • The result graphs are complicated
  • Roman and Kana scope doesn’t match

I have to resolve the issues. Also I will develop the new concept, and I will propose new WT next year. But the new concept doesn’t contribute to the summit battle. I think it is good to support team battle which I’m not sure I can develop by next year.


The user can’t see all the information

I fixed “change information panel size” this time but I forgot the real request was to show the screen on the lowest size. I thought increase the resolution will solve but it maybe difficult with projector.

Too much lag

I don’t know the cause. In my environment, 5 people battle has no problem. Long words seems to cause the lag so .NET WPF can’t draw such a many object, if it is so, I have to change the framework to such as Unity.

The result graphs are complicated

I have to improve graphs. Maybe zooming and highlight one line. I will think of it in the new analyzing feature.

Roman and Kana scope doesn’t match

In variety words, I concerned the difference between Roman and Kana scope and someone can’t type some character but the facility team already considered. But in the new concept, I have to do something to that issue.

Morse code. I am developing the Input Method Plugin and I think I will add Morse code as a sample. That will enable true Morse code input.

Analog Book Reader。I got a report from a user that ABR shows an error when 1000+ books were import. This spec itself comes from a limitation of StorageApplicationPermissions.FutureAccessList (StorageItemAccessList). The files user selected can be loaded later if a program remember the token of the file but it can remember only 1000 files.

That is a specification but after investigating, I found a bug. I forgot to remove from the list when the file was removed from bookshelf or deleted. Because of that, after registering 1000 files, users cannot add files anymore. I fixed only that bug and registered to store.

But, that version doesn’t solve the issue of 1000 files limitation. The limitation is about files or folders so if I used folders, maybe it will be resolved.

I was creating official package of Analog Book Reader for Windows store, but I struggled a lot.

At first, I couldn’t build the app because my store certificate was expired. I created new test certificate but Package Family Name was changed so it seems new product. At last I found the Package Family Name restored when I associate the app to Store again.

Next. I tried to test version up from previous version but the certificate was expired so I can’t install previous version. I back-dated the system time and I was able to install it.

Next. English UI is showed in Japanese OS. This is an issue from V1.7. V1.7 is a UWP app so it supports only Windows 10. Japanese people hate Windows 10 so it was no problem I think. I don’t know the real cause. If I have _language-ja.appx in the package, it is good. But sometimes I don’t have that file in package. I should test Japanese OS before release from next version. I don’t know whether I should support Japanese which has low download count.

So far, I submitted Analog Book Reader V1.8 to store so it will be released soon.

I got a Kindle Paperwhite and used it for a while. A competitor analysis?

Display is great!. As it has no back light, I see it with front light and reflection of environment. My eyes recognize it as paper. For example, when I move my hand over it, it makes shadow on display. I get tired as seeing paper after using it several hours.

But, UX is not as paper. Frame rate is too low to improve it. If e-ink can count 30 fps, it will be a great e-reader with Analog Book Reader.

Kindle has a browser so I tried to read Safari Books Online. If I set the browser mode to Article Mode, I can read it comfortably. But the operation to read it like sign in was tedious.

I went to Maker Faire Tokyo 2016 with Happa.

It was our first time to join it so we went the 2nd day PM to avoid crowdedness. Not so crowded and not so hot. We skipped event and saw almost all the exhibition. It was so huge and tired. My image was comiket that circles or individuals sell something. Actually, there are university labs, it was like the university festival? So professional.

In electrics, I knew only Arduino,Rapsbery Pi,IchigojJam, but there are many types, extensions, and other frameworks and digital blocks. VR all over the place. Other than electrics, Pitagora devices, keyboard shooter were interesting.

This time, I went there to just a take a look at it, but I got much motivation to make something there.

Weather Typing 3.1.1 released. I fix the bug that was reported in Twitter a while ago. I want to develop next feature but I wonder which project will I proceed, ABR,electronic project, new app?

I used Buffalo DT-H70/U2 to see TV. It is old but worked with Windows 10.

But suddenly, the capture software PCastTV3 stopped working this week. There are some people with the same problem in Twitter. It is old capture so maybe Buffalo won’t support it. OK, I will quit seeing TV. The only program I want to see is NHK English learning program.

I had stomachache in last week so I have been stopping development. During that, I slept in strange form to protect stomach then I had a dry eye next.

I have 2 releases pending, WT3 improved connection problem I was requested in Twitter and next version of Analog Book Reader. After I recovered, I will release it.

Now I’m reading “Make: Electronics” and in this book, the author says that you can’t cross wires on both surfaces because they will short through hole. I got it. My shield which I made in previous article has the problem. Actually the wires are not attached to board but it is not good.

In the normal books say “do so.” So they say just use wrapper wires to cross the wires so I thought put wires on both surfaces. This book writes about “do not” so it is good to read.

I monitored the view of RC.

The video output is sent from an iPod Touch on Arduino RC via Wi-Fi. And Windows 10 Mobile show the video real time. RC is also controlled by Windows 10 Mobile via Bluetooth.

I finished RC part so next I will move RC automatically by the video.

In the previous diary, I have made a rc car. But I controlled it in a Windows PC. I think controlling in a smart phone is much smarter so I was planning to make Android App. But wait a minute, I have Windows 10 Mobile so that I can make UWP app on Windows and I can run it on mobile.

In Windows, I was able to use SPP and connect to Bluetooth device by COM port serial. But I don’t see COM port number on my phone… I found that I can’t use SPP on Windows 10 Mobile. OK. I referred to here and change it to use RFCOMM. I only have to change serial connection to socket.

Here is the latest screenshot. I can debug it in Windows as well so it is very easy to develop Windows 10 Mobile app.



I contracted Hulu to learn English some time ago. Recently I am watching American drama Silicon Valley and it’s fun. A programmer in Silicon Valley battle with people using one algorithm. There are a lot of trouble to work in Silicon Valley and he will be a CEO from a programmer. I have only watched 4 episodes.

There are a lot of web site that writes about it so I will write how it is interesting from developer’s point of view.
– “Why development team is composed as such?” Yes, I have that image too,
– “Steve? Of course Jobs.” “Ah, Wozniak…”
– Standard Test Image is on the wall in the main character.
There might be a lot more I didn’t recognize.

The algorithm in the story is loss-less compression algorithm. For example, music file will be only 1.2 MB. What about Shannon’s theorem? But in the episode 4, some people says why does the main character uses DCT to loss-less compression so the staff will explain the detail of the algorithm I believe. I think that uses AI to recognize object or phrases and compress data to text because it can be searched while compressed. But that would not be loss-less. I want to know the algorithm.

With new soldering iron, I have finished making Arduino RC shield.

Following is the design of the shield. It is hard to understand but Drv1 and Drv2 are motor drivers and U5 and U6 are Bluetooth module RN42 converted by XBEE and 2.54mm pitch board. It was my first time to make circuit board so I remake it several times. Even I thought it was perfect, there was a bug that something like parts collide with each other.


Note: The circuit includes important problem so refer to the later article.

This is the component side of the shield. Wires of motors and battery can be attached to pin sockets. I attached jumper wire pins to wires and used heat shrinkable tube.


This is the solder side of the shield. Even with new soldering iron, this is the limit. I have to practice more. It may be common to use coating wires to cross the wire but I avoided that by put the wire via component side or using register which is on component side.


This is RC. In previous work, the parts on head side and tail side are conflicting so there was a limit how to place parts. This time I used two universal place so that I can use bolt anywhere and put parts freely. In the picture, the metal bar is for putting iPod Touch to record movie.


This is the head side.

This is the tail side.

Arduino。I implemented motor and Bluetooth in breadboard in previous work, so this time, I tried to implement them on Shield. After designing , I soldered some of wires. But socket melted and soldering iron get oxidized. In web searching, I found how to select soldering iron in WEBはんだ付け講座. I used Good’s beginner set but the site says beginner has to buy good one so I bought Hakko. It is easier to use than old one. When I used the old one, it caused damage to land but the new one is OK.

Analog Book Reader 1.7 has been released. Starting this version, the app is UWP so only Windows 10 is supported. In Windows 8.1, you can use only ver 1.6. I can see most users uses Windows 10 so it will not be a big problem.

The new feature is only drag & drop from Explorer. The main point of version up is the improvement of image and fix crashes. The next version up may be supporting epub, I hope Edge API supports rendering HTML.

What I thought I should have read before releasing UWP app was UWP UX guideline(PDF version) and finished reading, There are not so many new topic but icons and Segoe MDL 2 were useful information.

Not related to guideline but I read the crash count is one of the KPI of Windows Store somewhere so I fixed bugs in long term holidays. I don’t know 600 crashes in one month is too much but I fixed almost all of them and most of the crashes are caused by operation during loading. Will it improve the ranking of the store?

I’m working on Analog Book Reader UWP version and I wanted to try Windows 10 Mobile. So I got Freetel Katana 02. I set it to developer mode and connected to PC by USB. Then I launched my app with Visual Studio… and it worked. Excellent. But UI is not good so I can’t support mobile in next release.


I used Katana a little and realized it is better than I thought. I can use Outlook so Docomo mail might work, I can use services in Edge. GPS is not good as my Android so I can’t use as main smartphone yet.

Porting Analog Book Reader to UWP has finished. I will test it in next week and upload it.

I had some homework in previous blog. About GridView selection, I will support right click selection. About version dialog, I used Popup as in UI basic Sample of UWP sample.

I have to improve something other than supporting UWP so I improve the image quality which I have been wanted to fix. In current version, the image is zoomed by canvas feature so the quality was low. If I could re-size canvas, the quality will be higher but as Winrrt doesn’t support LayoutTransform, it was difficult. It is the same in UWP, but some people port Silverlight toolkit LayoutTransformer class to UWP so I did the same thing. The image quality will be much better next version.

The day of National Examination for Information Processing Technicians. In the last year I passed the embedded exam and the only exams remains require essay so I was not tend to take any exams this year. But IPA added new exam which called Information Security Management Examination and it doesn’t require essay so I took it. It is not a subset of security specialist exam but it is for security administrators.

The questions in AM inquires knowledge of security. I didn’t know some of the terms but was able to answer them. I finished the questions in 40 minutes and bored for a while so I thought about the Weather Typing. The question in PM was for Japanese language. With no calculation and no deep knowledge, it was easy for security specialist. If it was not OMR sheet, the difficulty might be good for us.

The official answers were announced in the same day. I mistook one question and AM 49/50, PM 32/32. So close. Overall, it was good opportunity to study recent security because I took security specialist exam 10 years ago.

As I finished to develop Weather Typing 3 update, I started to port Analog Book Reader to Universal Windows Platform. Creating UWP project and adding existing source was easy but it runs incorrectly in following ways.

  • Back button doesn’t work
  • Incorrect dialog layout
  • Mouse doesn’t fire Semantic Zoom
  • ScrollViewer doesn’t zoom with mouse
  • In GridView, items can’t selected with right click
  • Can’t drag and drop anything
  • No charm

Back button. It is changed to be attached to title bar. Windows 10 application surely does so.

var view = SystemNavigationManager.GetForCurrentView();
view.AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
view.BackRequested += OnBackRequested;

Layout. I have to fix it one by one.

Semantic zoom. MS sample also don’t zoom with mouse, Windows standard clock doesn’t have semantic zoom. Will it be abandoned?

Added: I found that the following code enables Semantic Zoom. It is as same as ScrollViewer, I need to set ZoomMode to use wheel zoom.

ScrollViewer zoom. After setting ScrollViewer.ZoomMode, I was able to zoom items. The property was there in Windows 8. Is the default value changed?

GridView selection with right click. It is the most important change. In Windows 8.1, right click was for selection and left click was for open. But Windows 10 enables only one of them.

Really? So I tried Windows 10 Start Menu and found that the menu can’t select multiply. I have to drag menus one by one to move them all. Is it fixed spec? Swipe selection is also seem to be removed from tablet.

Drag and drop. I have to set DragEventArgs.AcceptedOperation which was added from Windows 10 in DragOver. And following code enables file drag and drop.

if (e.DataView.Contains(StandardDataFormats.StorageItems))
    var storage = await e.DataView.GetStorageItemsAsync();

That is the reason I wanted to port the app to UWP.

Charm. What is the correct design? Where can I show version information? I’m investigating.

I updated Weather Typing 3.1. So far, the remake of Weather Typing based on WT2 was finished. UI is still difficult to and I have to write a manual, though.

The main point of version up is the requirement of the last typing summit. Especially lobby UI improvement and replay bug fix.

From now on, I will make a new feature I wanted to implement. But there are a lot of things to make other than WT so it will be later.

Hmm, desktop application is hard to execute now. Browser warning me, OS warning me and security software warning me, I have to ignore all of them to execute the application.

I asked to MS support about Windows Store Review Disappear. The answer was account maybe blocked because of some reason such as bad reviewing. The reviews were positive and good one so I don’t think that’s the case. But OK, at least I was able to write this article.