Browsed by
Month: April 2013

Anime and Yashigani

Anime and Yashigani

Have you ever messed up so bad that someone named the foul-up after you?  Well, it certainly happened in anime.

Anime started picking up in Japan in the 90’s.  The quality had been going up and up; and many considered the 90’s the ‘golden age’ of anime.  However, with so many studios opening something of a bubble started to form in which it was difficult to find good animators.  Schedules were as tight as the fiercely fought for advertising dollars.

Now say you are an anime studio in this competitive environment and you’re spinning off a new series called Lost Universe after working on a very successful series called Slayers.  Good right?  You have plenty of work now that you’re right at the beginning of airing and creating this regular TV show.  But now, right around episode 3 – in the middle of crunch mode – a fire breaks out and destroys most of your work. The show must go on – so what happens?  You contract off the work to anyone with a spare pencil and ink.  In this case, a Korean company. But you don’t even have enough character sketches or time to really educate the company about what is supposed to happen in the episode.  In fact, they mix up the characters from one scene to another.  Still images stay onscreen for up to 15 seconds because you didn’t have enough time to make the moving versions.   It was so bad that the company actually had to pull the episode and re-do it for the DVD version after the one and only airing of the episode.  Unfortunately, the rest of the series never really recovers and wallows in a low-quality quagmire that dooms the series to infamy.

Here’s Lost Universe’s episode 4 – titled Yashigani – which demonstrates just how bad things can get (see especially the amazing smooth motion at 3:20 for example).  This clip shows the original along with the re-done version side by side so you can see how bad it got.

This wasn’t the only fumble in the anime world, but the episode 4 of Lost Universe episode became so infamous that drops of quality like this were simply called Yashigani’s from then on.  Ouch.

See this link for more examples of them.


Google and Microsoft-esk questions

Google and Microsoft-esk questions

Read an interesting book How Would You Move Mount Fuji.  The author does a little critique of the modern approach of puzzle interviews.  His take-away – since an employer can legally no longer ask questions about age/gender/orientation/etc – we have moved to a new realm of interviewing.  This method of interviewing attempts to ascertain the raw ability and behavior of the candidate devoid of these contexts.  This is both for good and ill – as it can have a very dehumanizing effect.  Interestingly enough, while this method of interviewing is still popular (and was the RAGE in the late 90’s early 2000’s) there have been more recent articles written about the problems of this style and possibly better ways of hiring.

For instance, Atari founder Nolan Bushnell says this method would likely not find the next Steve Jobs – and that he would not likely be hired by anyone today using similar methods.  For creative jobs, he believes in finding the person’s passion is more important.  Others have suggested that we actually get more narrow and hire by their knowledge of an important algorithm a company needs vs more general principles.

Either way, the fun part for me were the questions themselves.  There was a list of Google interview puzzles that I liked too.  Here’s a collection of some of the more interesting ones in his book, and from other sources.  I find they break down into three categories – Fermi problems, hypothetical problem solving, and deducible problems:

Deducible problems:  These are designed to see how good your raw deductive skills are:

  1. A country that only wants boys, every family continues to have children until they have a boy. If they have a girl, they have another child. If they have a boy, they stop. What is the proportion of boys to girls in the country?
  2. How many times in a day do a clock’s hands overlap?
  3. Explain the meaning and relevance of the term ‘dead beef’ as it relates to programming/debugging.
  4. You need to check that your friend, Bob, has your correct phone number but you cannot ask him directly. You must write the question on a card which and give it to Eve who will take the card to Bob and return the answer to you. What must you write on the card, besides the question, to ensure Bob can encode the message so that Eve cannot read your phone number?
  5. How many places on the earth can you walk 1 mile north, 1 mile west, and 1 mile south and end up at the same place? (hint, its far more than just 1 place)

Problem solving:  These are designed to see how you would attack a problem and your thought process:

  1. Design an evacuation plan for San Francisco
  2. You’re the captain of a pirate ship and your crew gets to vote on how the gold is divided up. If fewer than half of the pirates agree with you, you die. How do you recommend apportioning the gold in such a way that you get a good share of the booty, but still survive?
  3. You have eight balls all of the same size 7 of them weigh the same, and one of them weighs slightly more. How can you find the ball that is heavier by using a balance and only two weighings?
  4. You are given 2 identical eggs. You have access to a 100-story building. The eggs can be very hard or very fragile means it may break if dropped from the first floor or may not even break if dropped from 100th floor. You need to figure out the highest floor of a 100-story building an egg can be dropped without breaking. The question is how many drops you need to make. You are allowed to break 2 eggs in the process.
Core Parking and You

Core Parking and You

So, Windows added a little feature a while back to help save power.  Unfortunately, it can have serious side effects for gaming and other high-performance computing.

Windows 7 / Server 2008  machines running on multi-core CPU’s have an obscure feature enabled by default called CPU core parking. While usually benign – some people have experienced serious issues that seem completely unrelated to this feature.  The symptoms are a decrease in performance with unstable and jittery in-game FPS, or noticeably laggy/jittery and unresponsive game play.  All this despite a high-end graphics card and CPU that should be more than capable of running the game. People have often seen this problem or described it as micro-stuttering – random fractional frame pauses that are hard to pin down precisely but are definitely noticeable and detrimental to game play.

Core parking comes in at this point.  Modern multi-threaded games often can leave a core idle for micro-portions of the frame after it has completed it’s processing and other cores are still finishing their work up.  Windows sees this idling, and decides to put the idle core in low-power mode.  Normally, threads go idle for long periods of time (often hundreds to thousands of milliseconds), so putting them to sleep is fine and can save power.  But in a game, the core goes idle only to be woken up only microseconds later for the next frame.  Unfortunately, parking and unparking has a time cost associated with the operation of a couple of micro/milliseconds – which when rendering 60+fps – actually creates noticeable tiny ‘hitches’.  It often appears randomly because it requires just the right set of conditions to cause the parking/wakeup to be visible.

So, what to do?  You can actually disable this ‘feature’ – which on a gaming rig – is probably the right action since it’s unlikely that power saving is your highest concern.  How do you do it?  Just like this:

  • Open Regedit
  • Find this key:  ” 0cc5b647-c1df-4637-891a-dec35c318583 “
  • Within this key, there is a value called:  ” ValueMax ” This value represents the % number of cores the system will park – the default is 64(hex) or 100%  ie:  all Cores are potentially park-able.
  • Change the value from 0x64 to 0 so the ” ValueMin ”  and  ” ValueMax ” are both zero
  • You will have to find the key a few times and repeat the process for each time it is found – the number of instances will depend on the number of power profiles in your system  [  for me, it was only found twice ]D
  • Do a full shutdown, power-off, and cold-re-start

Here’s a good description of the problem and how it manifests itself.