Entries in ‘Analog Book Reader’

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.

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 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.

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.

2016042901

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.

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.

Recently, I experienced deletion of Windows Store reviews one day after I received them. There are no way to delete reviews from developers or users so I looked into the MS forum then found “Reviews/ratings disappearing” thread. Several people have the same trouble. They are guessing the reviews from Insider Preview will be deleted, but seeing in my log I don’t think that’s the case. The forum members sent the question directly but MS doesn’t answer for half a year. That makes me feel sad because of depopulation of Windows Store.

The download count of Analog Book Reader exceeds 20,000. In the download graph below, most of downloads are not from Japan. Especially I received great comments from US. The downloads from Windows 10 is over 90% so maybe it’s about time I can move to UWP. As a user, I want drag & drop feature.

2016031101

After typing summit, I didn’t programmed because I was too busy and studied English and Math. But I will not so busy not so at first, I updated Analog Book Reader. I got some comments of displaying one page so I implemented this time. Other than that, I supported the feature I wanted when I use the app.

I’m using Analog Book Reader in daily life so I can updated the app naturally. But I don’t use Weather Typing in daily life so it is difficult to update it. Practicing typing might be the good way to implement Weather Typing.

Analog Book Reader download count has been increasing. In the annalistic, the download from Windows 10 in US is increasing. But I know the app have an issue that is the button color will be wrong when Flyout (pop-ups) appears in Windows 10.  Today, I stopped Weather Typing development for one day and supported Windows 10. I already submitted to Windows Store, it will be released in a few days.

2015082301

In detail, when the app display Flyout in Windows 10, theme color will be changed unexpectedly. It may Windows 10 bug. It may be fixed in a minute but because the color is strange, I changed the all colors fixed in spite of the theme. If the theme is high-contrast, it will be hard to see so I will rollback if Windows 10 has fixed this.

I want to support drag and drop files because the Windows Store app in Windows 10 can be Window mode. But it seems the drag and drop is supported only in Universal Windows App. I will do it after releasing Weather Typing.

I’m creating Weather Typing 3 battle part. C# socket API has synchronous and asynchronous version. I don’t want to block UI while processing so I have to use asynchronous version like BeginConnect and EndConnect. It’s complicated. Basically I have to use callback function because the process does not end immediately. Like this. Actually I can’t use lambda expression because I have to re-accept and re-receive though.

class Server
{
	Callback OnLogin;
	Callback OnError;

	void Start()
	{
		try
		{
			BeginAccept(() =>
			{
				try
				{
					BeginReceive(() =>
					{
						try
						{
							if("login")
							{
								OnLogin();
							}
						}
						catch(Exception)
						{
							OnError();
						}
					});
				}
				catch(Exception)
				{
					OnError();
				}
			});
		}
		catch(Exception)
		{
			OnError();
		}
	}
}

I had the same trouble in Analog Book Reader but the most WindowsRT API has await version so it’s better. Like this.

class Server
{
	Callback OnLogin;
	Callback OnError;

	async Task Start()
	{
		try
		{
			await Accept();
			await Receive();
			if("login")
			{
				OnLogin();
			}
		}
		catch(Exception)
		{
			OnError();
		}
	}
}

I went to America on business trip. In the plain, I read Chikirin’sマーケット感覚を身につけよう” which is popular in Twitter.

This book’s topic is marketing (how to find value) but it says marketing is not only for money and it is applicable to free software in my point of view. And I considered about free software marketing. The people who doesn’t watch movie in a plain think hard in a plane.

The free software is to publish a software which the authors made it for themselves and let other people who want to use it use. More uses makes much feedback so users and authors will be happy. As free software’s characteristics, it is not applicable to all the people. It is important to think spreading to the target users.

The value of the free software

What is the value of the free software? I was thinking as follows:

Software made by a company:

  • They have to make applicable to all the people so can’t make one for specific users
  • Maker is not user so they are far away from the users

Free software:

  • Cost is not important so easy to make for specific users
  • Maker is a user so understand user’s need

Maybe games are different. Personally, the software by company is good to use lightly but hard to use heavily. And free software is easy to use by the professional users. For example, TV/DVD viewer and digital book readers are an appendix software of the contents so the UI is not for read users.

One years ago, I made Analog Book Reader to show the makers that the users want the reader app like this. That is written in earlier diary. It has download count and also has some feedback but it is still not in good loop of feedback and release.

Successful example

I made Weather Typing 14 years ago when I was a student. I made it without thinking market. It happen to reach to typing community people and got a lot of feedback and grew together. Let’s analyzing it.

About Weather Typing, I played and played SEGA The Typing of the Dead everyday and thought I wanted a typing software specifically to battling. But the value might not be battling feature.

After that, the app was introduced by GANGAS and used by people of typing community and grew discussing in BBS. If analyzed in like SWOT,

  • Different from company, the author is near the user so easy to get real feedback
  • The author is a user so I understand the requirement and priority
  • Being a student and have time, I was able to chat with other users in lobby server

would be the strength.

  • Community has been build those days
  • TV focused on typing software and it became polular

would be the opportunity.

  • The users can request to the author directly
  • The author implement the feature correctly

would be the value. During implementing feedback, the user trusted the author like that this author will create their ideal software. Then the good loop is built.
The Weather Typing 3 I’m making now is based on Typing Summit so it is not wrong but I have to release little by little, otherwise it will be away from the user. I publish information in this diary but it is better to release multiple times.

In the future

What about Analog Book Reader. I thought the user is little because the target user is bookworm and Windows store app user is not so much.

But after reading this book, for example,

  • Now, digital book reader is a software to see the each vendor’s contents so is not free competition.
  • The user thinks the digital book reader is hard to use so not notice the value of the digital.

That is before break through. I want to contribute to it.

Ultimately, I want to make the digital book reader as the application to experience the reading which can not be done in the analog book. To do that, the community activity is needed and move the Amazon. Maybe there are not that kind of community so what do I do?

One year passed since releasing Windows Store App Analog Book Reader. Download count has reached 10,000 so I will summarize here.

2015032101

There are constant downloads in the graph. I thought there are little people using Windows Store so I’m curious about download count not decreasing. When I released Weather Typing, the download count in the first year was about 2,000 so except Flash game, it has high download rate in my downloading app.

The category rank in Japanese has been within 10 during the whole year. It represents how few apps are in Windows Store?

I’ve been received 67 ratings in the world. Average is 3.8 it seems good. I have received rating in countries which uses language other than Japanese and English but I wonder they really can use my App? Because I didn’t tested my app in those languages.

I want to release new version supporting the comments but it is difficult before releasing new Weather Typing.

I’m receiving some evaluations and comments to Analog Book Reader recently. In those comments, there are some requests to support 1 page view. I will implement it after making an end to developing Weather Typing so wait a while.

The Amazon Kindle for PC is a trend topic these days. I downloaded it and read Arduino book but the usability is not so good. Flipping page is slow but that’s OK because it is loading content from internet. But the small point is bad, for example, after zooming and then go to next page, the zooming factor will go back. I wish Kindle had an API, then I could support Kindle contents on Analog Book Reader.

I got a comment in Windows store, he/she want to split two-sided page to two pages. I have wanted to support this feature but it is difficult to split automatically so I didn’t. I don’t want to add menus but I don’t have choice.

I have released Analog Book Reader 1.4. I supported image rotation to read rotated books responds to a request by e-mail and scrolling when dragging a book responds to a request in my BBS. And I implemented some UI improvements.

I investigated several ways to support image rotation but I ended up making rotation buttons. Rotating image by two fingers is a way to support rotation but it conflicts with zooming operation. The use case is to read rotated books so the users want to rotate each book only once. Using rotation is less frequent than zooming so I think menu is preferable.

I implemented direction change by user operation in UI improvement. For example, when the user opens a Japanese book, the book might be left-to-right direction as default. But the user will click left button. In that case, the new version will change read direction automatically and move to the next page. It is one of the Analog Book Reader’s policy, not make the users obey the specification, the app have to estimate the user’s thought and change the behavior.

In fact, I want to auto-detect the Japanese book and change the direction and auto-detect the rotated book and rotate automatically but I don’t have that level technology.

I looked over some crush report in Windows Store to make Analog Book Reader 1.4. It is difficult to specify crush address but I have fixed 2 crush causes.

I already wrote debug method before, but will update it.

  1. Install Windows 8.1 SDK’s windbg
  2. Copy Defrag Tools’ PDE.dll x86/x64 to the same folder as windbg
  3. Copy the pdb file in appxsym as zip in project\AppPackages folder and the exe file in appx as zip in appxbundle as zip to somewhere\x64\symbols\exe folder and somewhere\x86\symbols\exe folder
  4. Open dmp with windbg
  5. Set symbol to SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols; somewhere\x64\; somewhere\x86
  6. Reload symbol with the command .reload /f xxx.exe. Double check with lm command
  7. Display stack trace with !pde.dse command
  8. If stack trace includes exe, you can find the offset in some function in disassemble list with Visual Studio native debug, otherwise, I can’t debug so far.

I released Analog Book Reader 1.3.1. In response to a comment of Windows store, I improved image quality when opened high-resolution book.

In previous diary, I wrote winrt’s image interporation algorithms are no different but actually Fant algorithm was good to some extent. However in my app, the image was blurred after ScrollViewer shrunk it. So I optimized by setting ZoomFactor to 1.0 to the screen size. The behavior will be changed so if it became worse in some situation, please report me.

Analog Book Reader is showing image in ScrollViewer, but the image will be degraded when scaling so I show image in ScrollViewer after scaling ZoomFactor. In default algorithm, increasing is OK but shrinking is worse and this is the problem. I tried Fant algorithm but the ScrollViewer will shrink by ZoomFactor and increase to the size of ScrollViewer so the image will be blurred. I searched and investigated some ideas but no good one. I wish I could use RenderOptions but winrt don’t have it. I thought changing ZoomFactor to 1.0 after the ZoomFactor was changed ScrollViewer but the ScrollViewer’s behavior was odd so it was no good. So I changed the idea and define the ZoomFactor to 1.0 to screen size. In this idea, the user can see optimized image when the image was the same size as screen. If the user scaled the image, it will be better. In previous version, high-resolution image can’t be shrink to very small but that problem will also be resolved. But I fear about degrading images which can be displayed well in previous version.

For the first time in several month, Analog Book Reader has a comment. “It is quite bad quarity when displaying high resolution image” These comments are very good for application. Before, I wrote a diary Comic viewer has so many requests but I didn’t know what features must be the first.

In other comic viewer application, uses can select algorithms and when the user select good one, image reduction will be good. Analog Book Reader is using WindowsRT default one. But as I’m using high resolution display so I didn’t care about that. I can choose NearestNeighbor/Linear/Cubic/Fant algorithms but they are similar with reduction. I have to implement algorithms for myself or NuGet.

I’m reading The Gamification Revolution these days. This book is about using game thinking to various concept and increase the motivation. Twitter introduces gamification by followers and Twitter Analytics‘s Impressions which we were able to use recently. I want to use that idea as a hint to create free software.

In Weather Typing, the ranking, lobby or tournament will increase motivation, but I wonder there are something else. TOD2 introduces evaluating the user and Type Well introduces something like achievement. I can come up with some idea like recording key type counts or practice time, or award the user who recorded high score with every key array.

During development of Analog Book Reader, I wanted to introduce game like feature so I recorded reading time. Is there anything else to make user fun reading books? If I were distributor of books, there might some way.

I’m ready to port Analog Book Reader to iOS. Now, I have MacBook Pro, Xcode 6 beta,Windows Mac share cable, iOS 8 iPad Mini Retina. And I can read Swift book. Other than that, I need only time.

Actually, I’m developing EPUB feature and remaking Weather Typing in parallel so I don’t have enough time. What do I do if I have another idea of new app.

I saw a report that said the readers of e-books can recognize the timing of events worse than the paper books (“Reading Literature on Screen: A Price for Convenience?”). Can Analog Book Reader get better result?

There are many opinions about the report:

  • It may because the reader can feel the reading position by the thickness of pages in left and right hands
  • It may because the reader can read the previous page easily

But it is because the e-book reader is bad, not because it is e-book, right?

In Analog Book Reader, I always showed the progress bar to be able to feel the position. And I made bookmark to be able to see previous page easily. I made it to solve those issues so it may get better result from that experiment I think.

I’ve came back to my house so resumed implementing E-PUB reader. Vertical book is difficult to implement. I have to split each characters to each objects. I thought I may be able to use Flyweight pattern but because they are not the same objects, I can not apply it. How do I implement it?

About Analog Book Reader. I have no progress implementing E-PUB these days. When I can’t concentrate, I start studying English so I can study English well but developing is not good.

I have studied DTP 15 years ago so I have knowledge in a general way. But implementing is too hard than I thought. When I created Purentro, I studied music theory for one year to create music sheet from MIDI programatically. I’m recalling those days.

I released Analog Book Reader Ver 1.3. User interface has been improved. I changed page sort algorithms so if there are any problems, please report me.

And Sonomama Tohge Vol. 2 has also updated.

I submitted Analog Book Reader Ver. 1.3 to Windows store. It includes improving UI and fixing bugs in 2 months. Supporting E-PUB is still under developing.

I want to release 64 bit version now so I implemented some feature for the new version. I have written before that the app is lack of the feature to read comics. I have implemented one of those which is the file sorting and folders. I supported filename with numbering and split the pages of the different folders. It will be good for most of the books now.