Sunday, June 29, 2014

Testing OCR Program for Japanese Text

History 

For around 2 decades I have JDict, a Japanese dictionary application. Until now I still think this is the best (and free) Japanese dictionary.
Yet two decades is a long time for stagnation, thus I tried to find a better variant. From what I could gather, the dictionary data is based on EDict, maintained by Jim Breen, Monash University. While trying to find free applications that rely on EDict, I found these:
  • Word Processor - JWPce 
  • OCR Programs - KanjiTomo (Java - Windows, Linux, Mac) 
  • OCR Programs - Capture2Text (AutoHotKey - Windows) 
The word processor works well with decent functionality while the OCR programs...

Testing OCR Program for Japanese Text 

Armed with "OCR Japanese" keyword I tried to find other alternatives; my search yielded another: SmartOCR Lite.

Capture2Text 

Under the hood it relies on NHocr and Tesseract as the OCR engine. The developer has added another layer: binarization (aka thresholding) to sharpen a smudge character (see how awesome it is).
Steps to Test:
  1. Download -- the latest is v3.3, I tried v3.1. 
  2. Extract to any folder 
  3. Execute 
  4. Select a section of Japanese characters 
Result
I tried several times in Windows XP; never worked. Since I have no idea how to troubleshoot I put this one aside

KanjiTomo

Wow, the engine is developer's own creation.
Steps to Test: 
  1. Download 
  2. Extract to any folder 
  3. Install JDK/JRE (the developer recommends JDK over JRE) 
  4. Execute, wait until the loading process is finished 
  5. I need to do these (ymmv) 
    1. Un-check Automatic OCR 
    2. Settings > Text Orientation > Vertical 
    3. Settings > Text Colors > Black on White 
  6. Open an image 
  7. Select 1 or 2 Japanese characters 
Result
でもこの年になって ==> becomes
で|この年仁ケつて ==> correct detection: 5/9
I make no assumption that OCR quality is bad; the application highlight "the best match" yet provided us with an opportunity to select another from the list of similar characters. Alas, my XP had no support for East Asian language then - thus I never change from default.
One obvious drawback is the incapability to process multiple columns. As shown in the second image, 6 characters are considered as single character. This drawback is confounded by fit to screen image loading implementation. The drawback means I have to select little by little. Zoom feature has been provided to address this issue; but! How to zoom to the top 20% of the image? I can't drag beyond the top screen.
Edit: 4-Jul-2014 70:20 GMT+7
KanjiTomo creator has kindly advised to use middle mouse button to drag the zoom window. Coincidently I stumbled upon Joel's article on UI design - a nice piece; though he took his sweet time to deliver his message across.

SmartOCR Lite

Test Data
Since this application is a product - instead of individual effort - I have higher expectation; hence a more thorough test.
Test data consists of 3 strips of 4koma manga; removing all pictures and realigning the characters. This tedious extra step is required because:
  • Feeding a whole page causes false detection (ex: a picture of mouth is detected as a character)
  • Fragments ordering is a mess. It's easier to order the source once rather than to re-order the result as many times as the number of tests.
Test data was created by basic copy-n-paste operations; there was no extra effort to sharpen the characters or to clean the surrounding (from light gray spots).


Steps to Test: 
  1. Install Microsoft .Net Framework 1.1 
  2. Install Microsoft .NET framework japanese language pack
  3. Install SmartOCR Lite (The original download link is down and I got my copy from a server that is inaccessible from other countries)
  4. Restart PC
  5. Open an image (Ctrl+O)
  6. On the result window - to the left of image window - change display mode (表示モード) to horizontal (横書き).
  7. (Ignoring the fact that result window is dominated with ? - instead of proper characters) Save the result into html.
    1. If you save it to txt, it would be unreadable in Notepad. To read it you'll need Notepad++ and select Encoding > Character Sets > Japanese > Shift-JS. 
    2. Html has different problem - some characters might be detected but not displayed due to css bug. I need to check the source in Notepad++.
  8. Compare the result against original.
Result
On the same phrase (でもこの年になって) used to test KanjiTomo, SmartOCR managed to read them flawlessly. The overall performance, however, is a different story. As shown in the following table, the success rate is merely 60%.
RecapitulationTotalKanji KanaOthers
Total chars2998018237
Not Detected103176026
Wrong Detection15645
Recognized181571186
Success Rate60%71%65%16%
The biggest miss came from different fonts. Observing the ん character in 2nd 4koma reveals there are at least 3 different fonts. SmartOCR failed completely on the thick fonts in 2nd 4koma.
Another flaw: SmartOCR always failed to detect double punctuation marks (!! and !?) - granted, some are quite close to the marks.
List of invalid detection, with the format actual (wrong)
Kanji
(ロ)

(助)

(口)

(凄)

(渠)

(」」)
Kana
(乳)

(桝)

(靖)

(ば)
Others!!
(11日)
!!
(岬)
!!
(11H)
!?
(17)
!?
(盟)
I don't expect 100% success rate from this data - there are 2 characters too smudged beyond recognition. Nevertheless, the low rate came as a surprise. In particular, these misses were unexpected:
  • Title of 2nd 4koma is big and clear; how could it read 懐(凄) wrongly?
  • Repeated phrase (動物園) in 1st 4koma. It was correct the 1st time, yet on the next recurrences it failed: 動(助) and 園(口). 
Another Drawback
Prior to language pack installation, JWPce (in WinXP) works with UTF-8. I can type here, save it as txt file and open it in another box (Windows 7). After installation, everything work with Shift-JIS. No matter what I do newer txt file is unreadable in Windows 7.

KanjiTomo Redux

Previously, I accepted all the 口 from KanjiTomo, save them as txt file and open them in Windows 7. This method produced 5/9 detection rate.
After  language pack installation I can see the default selection as well as other alternatives in the list.
Steps to Test:
Using the same test data as SmartOCR Lite
  1. Read all that detected incorrectly by SmartOCR
  2. Read (random picks) those unreadable by SmartOCR
  3. Read (random picks) those detected correctly by SmartOCR.
Result
From 15 invalid detection, お always got 七 as "best fit" even though お was listed as an alternative. Kanjimoto  always failed to detect double punctuation marks (!! and !?) as well; but the other 9 were detected correctly.
Those unreadable by SmartOCR were detected correctly by KanjiMoto.
Those detected correctly by SmartOCR were detected correctly by KanjiMoto as well.
KanjiMoto OCR engine has better detection capability - considering caveats below.

Caveats
Character selection in KanjiMoto is fragile. Precision in click-n-drag is paramount.
Sometimes single character can be detected as 2 characters. Other times (and this is the worst) different boxing yields different character. Refer to the image on the side. Observe how the 2nd attempt (with tight boxing) produces correct character while  the first attempt (with almost equal spacing on all sides; box doesn't intersect neighboring character) produces wrong character.
To clarify: it's not about tightness. Simply that different boxing may yield different characters. In fact for this particular character getting the wrong result is harder than getting the correct one. 

I got the impression this application relies on dictionary to guess some characters. If I box 3 characters that form a phrase/meaning I'd got that phrase. On the other hand, if I box 2 characters that doesn't form any, the default for 1st &/ 2nd characters may be wrong or blank.

Conclusion

For quick and dirty processing, SmartOCR Lite is the clear winner among 3 participants; however, considering its weakness, it is better fit to process a textbook with plain font. Applying binarization (aka thresholding) from Capture2Text may increase success rate a bit, but I doubt the underlying OCR engine can properly process thick-rounded fonts as per test data above.
For accuracy KanjiMoto is the clear winner.
Considering the hassle of KanjiMoto, the recommended way is to use SmartOCR first followed by KanjiMoto to fill in the blanks.

Thursday, April 10, 2014

Hinamatsuri Volume 3 - Extra 6

Just tried to translate a manga that I love to read: ヒナまつり (HINAMATSURI).
The page came from vol 3; a single page chapter that is not relevant to the story.

The original texts:
ヒナまつり 3 - EXTRA 6 芦川村の新田衛門

昔々ある所に新田衛門という百姓がおりました
暮らしはとても貧しく

娘は痩せ衰えていました
新田衛門は不憫に思い

娘を少でも喜ばそうと
木彫りのひな人形を作りました

しかし娘は細かくきざんで
煮て食べようとしたので

新田衛門は木は皮しか食べられないとやさしく諭すのでした

A brief info about this manga at mangaupdate.
How to get the manga:  ヒナまつり 3 at amazon jp.

Thursday, February 20, 2014

Playing Android Games in Emulator - Review #01

Emulator: Genymotion v2.1.1 powered by Oracle VirtualBox v4.3.6
Virtual Device: Galaxy S2 - 4.1.1 - API 16 - 480x800

I can't imagine any persistent (read: long running) activities performed in android device other than gaming. Lame excuse? anyway... I'll separate the review in 2 sections; the first focuses on game-play while the 2nd on the more technical side.

Game Play

Guardian Cross - installed, doesn't work.
Clash of Three Kingdoms - installed, doesn't work; more on Technical Side below.Tower of Chaos - Game designers definitely think in different wavelength / channel. I don't even know how to play the game.
Castle Clash - Hang early on. Since the beginning of the game is weird, I don't have the urge to try it for the 2nd time (weird: I was forced to watch a raid for few minutes, and I was lost; I didn't even know whether I was the attacker or the defender). In the world with abundant options, if my interest is not piqued in the 1st minute, bye bye.
Hero Dream - It's a fun RPG game. The generous gifts and item drops easily rank first in any platforms. This factor should be able to retain beginners attention for 30 minutes, raising the probability of players' attachment.
Unfortunately, it hangs very frequently, beyond my level of tolerance.
Pet Alliance - A typical monster breeding game: fight, capture, train, evolve, arena, all the usual stuffs.
The smoothest game I tried thus far.
Devil Maker: Tokyo - A typical card battle game. The concept of level ups, evolution and equipment are not unique yet nicely refined here with strong emphasis on sacrifices; to enhance a card one would be forced to sacrifice lots and lots of other cards.
By the way, it hangs frequently. I can't put the entire blame to the game though. Simply getting the virtual device to run under Genymotion is quite a challenge.
Valkyrie Crusader - Another card battle game. No login required, account binding to device hardware. Once I realized another has played this game I decided not to mess with his/her save game.

Technical Side

Memory Leak

Pet Alliance - No noticeable problem - the game runs smoothly without noticeable degradation after extended play.
Devil Maker: Tokyo - Huge memory leak. The game slows down to a crawl after playing 3-15 minutes; especially after performing actions that require lots of scrolling/swiping. As the game becomes less responsive, swiping speed must be calibrated down to match the degradation. Once the slowness becomes unbearable, simply quit and re-run the game - it should run normally. Well, at least it seems to indicate that Java's garbage collector works.
The fact that swiping speed must be calibrated down led me to believe that Genymotion plays a role in slowdown symptoms. I drew a parallel to the game Myst. When my friend 1st played it from Windows 3.1, game speed would slowdown after some time. (Re-)run-quit cycle was a necessity. Once he tried it under Windows 95, however, the game ran smoothly. My conclusion: Myst developers made a mess that overwhelms Win3.1 yet manageable by Win95.

Network Requirement

Pet Alliance - light. Works even when persistent ping to google reveals gaping connection (Request timed out.) However, when network connection is lost halfway, it can't recover.
Devil Maker: Tokyo - heavy, not sure whether it's bandwidth or latency or both (though I suspect latency is the bigger issue here).
On the up-side, it handles network disruption. After certain (attempt) window is breached, it would prompt users about network issue. This exception handling is not perfect though, there were some occasions when the loading cursor kept on spinning even when network connection has been fully restored (solid responses from persistent ping, retrieving google page was instantaneous). It seems this issue is not exclusive to emulator. Someone gives affectionate nick "loading wheel of death".
Valkyrie Crusader - Every time there is network disruption, I would be kicked to the welcome screen. Better handling than Pet Alliance, but still annoying.
Granted, this issue is application specific rather than emulator's issue. Is there a way for the emulator to simulate network disruption? This would simplify developers effort to replicate the problem.

Screen Refresh Issue

This problem should be attributed to Genymotion; though I don't know how/why this 'feature' exists.
To replicate: simply start the virtual device and keep it in the background (obscured) while working on something else. After enough time (10 minutes?), come back to emulation window. The screen would be outdated. Tapping a button would yield no visible effect. Screen refresh can be forced by either moving the emulation window or by switching to another window then switch back.
A (much) faster way to replicate: lock window (Windows-L) then re-enter.

Lack of Support for Adobe AIR

Tried Clash of Three Kingdoms and was prompted with context3D not available! Possible reason: wrong renderMode or missing device support. Search results consistently points to Adobe AIR.

Account Binding to Device Hardware

Observation on Valkyrie Crusade let me to believe this application uses device hardware (mac address?) to identify client. There was no login and I saw some mail correspondences days before I installed this game.

Fail to Start Virtual Device

I can't see any pattern that leads to this problem, but I've experienced it often enough.
I've tried to check the logs but couldn't find anything that helps. Not that I expect much; this problem is unhandled exception and Qt (that used by Genymotion) doesn't rely on exception mechanism.
I also find no reliable pattern to recover from this problem; simply that it would work eventually if I persistently tried to play it.

Abrupt Closure

Similar to above, Genymotioin may close its virtual device window unexpectedly. In both cases virtual device would still be running under Oracle VirtualBox. I would have to go to VirtualBox to force its closure.

Conclusions

For Casual Users

If you have low tolerance to abrupt hangs (and possibly quit - re-run cycles - refers to Memory Leak above), this is not for you. You may want to check bluestack, though here and here mention that Guardian Cross doesn't work (yet).

For (would be) Developers

The Ups

  • Genymotion is faster than the official emulator provided in Android SDK. Much faster when compared to the SDK that I briefly tried 2 years ago.
  • Memory leak issue above can be considered as a 'feature'; if the circumstance manages to force developers to implement proper memory management.
  • Despite its shortcomings, it's definitely cheaper than investing in actual devices.
The Downs

  • Some (most?) may argue this is the nature of pure emulation rather than a flaw: It's not the ideal environment to test an application using Device Hardware Account Binding mechanism.
  • Lack of (out of the box) support to Adobe AIR limits its usage.
  • Reliability issues (memory leak and abrupt closure)  may lead to finger pointing / denial of responsibilities. When a problem occurs, the root may lay in the application or Genymotion or Oracle VirtualBox or combination of them.

Monday, February 10, 2014

Playing Android Games Through Emulator

Hmm, suddenly got the urge to try playing android game(s) through emulator.
Currently trying 2 games: Guardian Cross and Devil Maker: Tokyo.

First try with AndroVM Although both games could be downloaded smoothly from Play Store, I couldn't play any of them.
Second try: Genymotion - the successor of AndroVM. Immediate problem: Play Store is not bundled in for Genymotion v2.0. Genymotion is currently working to address this issue, but until then...

How To

  1. Get Oracle Virtual Box v4.2 or above (at the time of writing the latest is v4.3.6). 
  2. Get Genymotion v2.0.1 - Windows has 2 versions of installer; one bundled with Virtual Box, the other without. 
    Registration is required before download is enabled.
  3. Run Genymotion, click on Add button - select your emulated/virtual device (I chose Galaxy S2 4.1.1)
    To download a virtual device, you need to login within Genymotion using your Geny account.
  4. Download necessary stuffs based on this
    In my case I got ARM Translation Installer v1.1 and Google Apps for Android 4.1
    Don't bother extracting the zip files.
  5. Click on Play button in Genymotion
  6. Drag ARM_Translation.zip and drop it into the emulator window.
  7. It should say "File transfer in progress", once it asks you to flash it click 'OK'
  8. Reboot your device (power off - directly closing emulator window is not recommended)
  9. Do the same for gapps-...-signed.zip.
  10. Try to install your game(s).
  11. Try to play your game(s).

Troubleshooting

Disclaimer: It's far for comprehensive and it won't be comprehensive - just marking the holes that I stumbled upon.

Validating Play Store Installation

  1. Try to find Netflix and Google Drive and try to install them.
Well, I managed to see Google Drive but I still got the problem as below.

"Your device isn't compatible with this version"

In my case I got above message.
I recalled seeing a brief pop-up message that obscured by "File transfer in progress" window and tried to capture it by repeating gapps-...-signed.zip flashing. On my 3rd try I managed to get 2 messages: "unfortunately google search has stopped" followed by "unfortunately google play store has stopped".
Searching on the latter message brought me here.
After performing  step #1, #2, #3 and #5 laid out by GSDer,
  1. go to Settings -> Application manager -> ALL, find 'Google Play Store' and select it - Clear cache, if that doesn't work Clear data, if that doesn't work Force stop; if that doesn't work Uninstall updates (restart the phone between each intermediate step)
  2. go to Settings -> Application manager -> ALL, find 'Google Services Framework' and select it - Clear data, if that doesn't work Force stop
  3. go to Settings -> Application manager -> press the Menu button -> select 'Reset app preferences'
  4. go to Settings -> Application manager -> ALL; scroll to the very bottom of the list and see if 'Downloads' is disabled - if it is, Enable it; also see if 'Google Account Manager' is disabled and if it is Enable it
  5. go to Settings, find the Accounts group, select Google, select your Gmail address then select the 'Remove account' button. Restart the phone then add your Google account back.
I managed to install both Guardian Cross and Devil Maker: Tokyo.

System Not Responding

The title doesn't represent the actual message prompted to users. Even after "successful installation" the emulator hangs quite frequently.
Note that even though the Genymotion emulator window is closed, it may still run behind the screen. To verify, go to Virtual Box and check the status of said virtual device.
If it still running, just send the kill message: Right click --> Close --> Power Off.
Afterwards you can try to play the virtual device from Genymotion again.


Other Problems

Search &/ ask in stackoverflow or elsewhere.


Trial Run

Guardian Cross - Failed to Run

If I have the time I may try a virtual device with tablet - landscape form-factor. It seems like rotate screen feature in Genymotion is not perfectly emulated. When I set the screen to landscape and turn off auto-rotate, it would immediately switch back to portrait.
Emphasis on may: Guardian Cross' hunt requires simultaneous control of both hands. Replacing the functionality with single mouse would be challenging.
Only issue is, with a Computer Emulator is you got to right click to unlock ur mouse, then click fire, then left click to relock your mouse, right click to unlock it and click on fire... Unless Blue stacks has some way around this when they add in GC. Can't remember which one I tried using like 6 weeks ago, but it was garbage. - source.

Devil Maker: Tokyo 

Went through the tutorial - up to killing the first boss devil. The game-play is quite nice so far; but the loading time is definitely a big turn-off.

Thursday, February 6, 2014

Minmei Publishing Company Excerpt #01

The Hare of Inaba

As the name suggests, it had its origins with the old legend of a crafty hare who tricked the sharks into helping him cross the ocean by offering to count them, but at the last minute his true colors came out and the sharks tore his skin off.
It received this name from the danger of hopping between cars. It has a low survival rate, and every time it is done, many are reported dead or injured.
* Please do not try this at home, wise reader.
From "The Otokojuku White Book 2000" by The Minmei Publishing Company.

The Great Chime

In the Warring States period, during Takeda Shingen's battle with Uesugi Kenshin, Shingen wanted to encourage his soldiers fighting far away though he could not send reinforcements. He had a thousand soldiers lined up in his camp, and had them all shout at once. The shout could be heard from 25, or 100 kilo meters, away... On a similar note, during the National University Baseball tournament of Showa Year 15, W University's cheering squad was said to be heard all the way from Kamiya Stadium to Ikebukuro.
From "An Inquiry of The Warlords of The Warring States Period" by Minmei Publishing Company.

Household Items as Weapons

Long ago in our land, the leader at the time strictly forbade the people to carry weapons.
It was only natural that the people would develop fighting styles using household items around them as weapons. Common items included clogs, khsiers, and umbrellas. As a digression the phrase "I won't even need to take my clogs off" said during battles is an indication of the usefulness of clogs as weapons.
From "The Encyclopedia of Ancient Japanese Martial Arts" by Minmei Publishing Company.

Ki

Ki refers to the energy of life that all humans are born with. According to theory, its power holds limitless possibilities, and has potential applications in medicine, sports, and countless other fields. Example of its power is seen in the martial artists' story of the saint of the sword, Tsukahara Bokuden, who was said to be able to cut a stalk of bamboo with a slice of paper injected with his ki.
From "Biographies of the Japanese Swordsmasters and Sexmasters" by Minmei Publishing Company.

Master of Crocodile 

In South Asia, there are regions heavily populated by various killer crocodiles. In the 18th century, a technique for controlling these crocodiles was developed by a secret tribe of beastmasters. Using this technique, the tribes defended their territory from outsiders. For this reason, crocodiles are considered sacred and their religion worships a crocodile god. Even now, in certain South Asian countries, the killing of a crocodile is a capital offense. Last year, a Japanese tourist caught unwittingly carrying a crocodile-skin handbag was hanged. - Crocodile Dandy.

Thursday, January 30, 2014

To a Man With Only a Hammer In His Toolkit Every Problem IS a Nail

Prelude:
Years ago my father read a magazine and stumbled upon a title that he couldn't comprehend. He passed it to my mother that remarked that although she recognized some characters, the whole things are incomprehensible. Then my mother passed it to my sister who immediately read it aloud. That brought laughter from both my parents.
The title was of Latin alphabets, stylized to make it looks like Chinese characters. Due to the presentation, my parents try to read it in Chinese. On the other hand my sister, lacking the skill in Chinese, read in the only way she knows.
There are 2 things I learned from that episode:
  1. KISS Principle.
  2. As the title said.
In above episode, the one with single tool won the round. But as problem complexity escalate, can the hammer wielder maintains the lead?
To contemplate: One who makes swift decisions is often admired / appreciated. However, how many people try to consider how each decision was made? Was it after careful contemplation; considering alternatives, implications, feasibility, oppositions|supports, cost|benefit of each alternative? Or was it simply because he only saw a nail and whacked at it as usual?

The Key to Good Humor is Knowledge

First a disclaimer: I'm using the word knowledge very loosely here. I'm not limiting the definition to text book stuff, but also local slang, culture (name of food, peculiarity of dialect / accent, etc) and so on -- every useless bits you can memorize. Info may be a better term, but I prefer knowledge.

My brother doesn't like to socialize with the bookworms because "they tell lame jokes". True, to have someone explaining every joke is kinda lame. However, if one's level of knowledge / exposure is on par with the surroundings,  jokes would have more hits than misses. Either learn or leave.
Why do crude-jokes (especially sex-related) have the highest rate of delivery? Because the knowledge are inherent (well, unless one has very strict parents and is a very obedient  child). That's also the reason why slapstick works like a charm. No brainer.
As jokes become more subtle, more background knowledge would be demanded. For example, to appreciate a joke in a series, the audience had to watched the previous episode, understand the character and so on ... read more here - I can't put it in better words.
Straying from the topic for a bit - while looking for the link above, I stumbled upon this. Published over a year later but has a Copyright?

Final Words

I'm not advocating the hyper-active knowledge gathering. Sometimes extra knowledge would only serve as hindrance rather than helpful. It may gets in the way of applying KISS principle, or worse. A partial knowledge may be misleading when one doesn't know the context of its application: when, where, how, under what condition &/ who has the capability to apply.
The wealth of knowledge certainly help as foundation, but foundation is the basic, not the goal in itself. The value of a person should then be decided on how one can apply, adapt/re-purpose or enhance an existing knowledge or create new ones.

Absorb knowledge in moderation, don't be a hammer specialist, but don't be a tool collector for the sake of collecting. It would be silly to own a tool that one doesn't know its name, much less its usage.
Humbly admit that we're ignorant to some topics and stay hungry on the topics that held our interest.
Never underestimate one who has less knowledge; he/she is not lesser, merely different.
Swing your hammer proudly, but learn to use other tool(s) as well.

The most difficult to apply:
Don't judge by the speaker, but  by the content. It's in human nature to pass judgement; and once a label is pasted, it sticks, even when further revelations should shed light that initial labeling was wrong.

Wednesday, January 29, 2014

The Heroes, The Bards and The Audiences

The Heroes, The Bards and The Audiences

I forgot where I heard/read about this: was it Xena the Warrior Princess or Violinist of Hameln? Anyway, the saying goes:
There are 3 types of people:
  1. The Heroes - the main characters, the object of praises, the ones under the spotlights.
  2. The Bards - the singers of praises, the ones putting the first group into the pedestal.
  3. The Audiences - this is where most people fit in. I'm here all my life.
Back then I thought "Heroes are the greatest. while Bards are not significant. Such is the greatness of a hero, even if a bard didn't pick up the story, another would."
But after I entered the working environment, my view was reversed. No matter how good a product is, if the owner can't sell it, it would be gone in obscurity. On the other hand, no matter how shitty a product is, if The Bard sings all the right tunes to the right ears, even flaws become strong points.
That, and I've come to realization that heroes are human too, they have flaws, they pee when dumping the big ones (an ex-colleague proved that he could un-load without peeing, but that was not pleasant - so there you have it).

Romance of Three Kingdoms - Glory of Shu

This story never gets old; new writers would picked up the old story and re-told it, but most depict Liu and gang as the good guys. I beg to differ, though to be honest I never read the authoritative, only the dramatization Sānguó yǎnyì.
  1. Ma Chao was a terrible person, causing the death of not just his father, but his (almost) whole family.
  2. There was an episode in Sānguó yǎnyì where Liu Bei and Cao Cao visit a farmer. The farmer has no meat to serve and decides to butcher his wife to get some. Upon knowing it, Cao Cao wants to kill him, but he refrains and waits for Liu Bei's respond. Liu Bei praises the farmer's kindness (Boy, am I glad for not living then and there when such moral compass was in place.).
  3. Zhuge Liang was a revolting man. During the exodus to Xiakou, Cao Cao's ruthless butchering of civilians are infamous. But when I think from different perspective, rousing civilians as living obstacles certainly help to stall pursuers' progress (in a heated stand-off, slip a guy in to throw the first stone, slip out, sit back, enjoy the chaos, eat pop corn, piece of cake.)
For people unfamiliar with (any variant of) the story, above statements may not mean much, but for those who do, I'm just trying to be a Bard there, singing different tune.

The Horse and The Rider

In Silver Spoon, of the same fact: "A rider who can tell a horse where he wants to go and let it figure out how to get there on its own", Hachiken and Mikage come to different conclusion; the former considers the rider is amazing, while the latter considers the horse is the amazing one.
Which camp are you on? The Horse or The Rider?
Both are heroes in this story: Arthur and the knights of the round table, Robin Hood and his band of outlaws. Hachiken and Mikage play the bards, each imbues his/her own subjectivity. While we (as usual) are The Audiences.

This is the kind of story I like to hear/read. Rather than being force-fed by The Bard's judgement on right or wrong, give the facts give competing opinions keep it open let the audiences expand their imagination.
In the real world the rider would be the manager and the horse the worker. But for the worker to be able to find his/her own way, that's one competent worker. On the other hand, isn't that what managers do? bark orders then go home on the dot, leaving the workers doing overtime day in and day out? Well, that's one big over-simplification. Consider the context: equestrianism. Certainly The Rider's job is not that trivial; steering The Horse in line with the trajectory, reaching the goal as fast as possible, with no/minimum mistakes along the way.
That's my expansion from 2 panels of manga. Leaving an inconclusive situation may entices The Audiences to wear The Bard's hat. Maybe the tunes are all over the place; maybe no one would ever hear the tunes; maybe... maybe...; but surely there is satisfaction - however fleeting - of wearing different hat.