Author Archives: danieru

Overview of my 2013 Microsoft Internship

To summarize the internship: It was fun!

More details to be found the in the posts below.

Interviews

Application: T-Shirt and a Soda

First interview rounds: My Microsoft internship university campus interview experience

Second interview rounds: My Microsoft internship interviews in Redmond

Internship

Flight to Redmond: Flight to Microsoft

Day 0: Invasion of Nintendo America’s campus

Day 1: Intern at Microsoft day #1

Days 2 to 12: Microsoft Internship days 2 to 12

Days 13 to 19: Microsoft Internship days 13 to 19

Days 20 to 33: Microsoft Internship days 20 to 33

Days 34 to 40: Microsoft Internship days 34 to 40

Days 41 to 47: Microsoft Internship days 41 to 47

Days 48 to 54: Microsoft Internship days 48 to 54

Days 55 to 62: Microsoft Internship days 55 to 62

Days 63 to 70: Microsoft Internship days 63 to 70

Days 71 to 77: Microsoft Internship Final Week

I must apologise, I am sure there is at least one off by one error in my day counting.

Also in case you’ve noticed the url, somehow I confused my internship for being in 2012 when I first wrote the post. Just to confirm: my internhsip took place during summer 2013.

Ubuntu 13.10 Blackberry OS 10 Cordova plugin development setup

After upgrading to Ubuntu 13.10 the QDE setup for 13.04 needs new dependencies. The change itself is small, just install the following libraries before you run qde:

sudo apt-get install libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 gstreamer0.10-pulseaudio:i386 gstreamer0.10-plugins-base:i386 gstreamer0.10-plugins-good:i386 gstreamer0.10-ffmpeg:i386libcanberra-gtk-module:i386 libcanberra-gtk0:i386 libcanberra-gtk3-0:i386 libcanberra-gtk3-module:i386 libxtst6:i386

If you do not install those you will get errors like:

After upgrading to Ubuntu 13.10 the QDE setup for 13.04 needs new dependencies. The change itself is small, just install the following libraries before you run qde:

If you do not install those you will get errors like:

java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
	/home/danieru/.bbndk/configuration/org.eclipse.osgi/bundles/364/1/.cp/libswt-pi-gtk-4236.so: libgtk-x11-2.0.so.0: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません
	no swt-pi-gtk in java.library.path

 

 

What happened to Priceonomics?

I wanted to check the going rate used Nintendo Wii consoles. Sifting through Kijiji was slow and only showed me the price of things which not sold. So I turned to Priceonomics, a site which is supposed to monitor the market price based on sold items. This would solve my pain point.

Going to priceonomics.com brought up this:

2013-10-21-230016_5520x1080_scrot

The thing I knew priceonomics had which I wanted, a product search bar, is gone! In its place we find a standard blog layout.

Priceonomics started blogging as a form of promotion. They used the Priceonomics engine  pricing data and wrote interesting articles. Yet I do not understand how those efforts have supplemented the main pricing engine as the website’s focus!

We can still find the pricing engine but it shall take us some digging. First scroll all the way down to the footer:

2013-10-21-230732_5520x1080_scrot

There we find a tiny link to “Price Guides”. This brings up a large list of categories. I’ll save us some time and jump to the video game console guide:

2013-10-21-230915_5520x1080_scrot

This looks like generic search engine targeted “content”, this does not solve my pain point. We are not at the pricing engine after going two links and two large scrolls from the homepage. We still must use the sidebar links bringing us to one more list until we arrive at the real Nintendo Wii pricing page:

2013-10-21-230948_5520x1080_scrot

This page leaves me worried about Priceonomic’s direction. We find the missing search bar where it belongs in the header, which is good. Bad is how much of the page has been filled with SEO things. There are product reviews which let users generate content for the search engines to pick up. There are two social media buttons. There is a large unrelated ad at top. Even the product image is auto-generated.

A complete product database is complex and finding images manually is lots of work. Yet of compared to anything else consoles are fantastic for selling used. They are a known standard, homogenious, and unlock considerable enjoyment for younger, cash strapped, players. If the image finding algorithmn cannot perform an acceptable job I can only suggest spending the effort on finding proper images.

The data I need to solve my pain point still exists. I now know I can ask ~$50 and undercut the market for a quick sale. Priceonomics solved my pain point, my life is better for their effort. I just hope they will be useful the next time I need them.

Unboxing the Firefox OS ZTE Open, + setup

My Firefox phone arrived today! The ZTE Open is an interesting device. ZTE is selling it on ebay for ~$80. By no means is it a high end device. In theory I like the idea that developers are not running devices 7 times more powerful than their users. Targeting the emerging market only pushes down the average device’s horsepower. As a bonus this dev phone is cheap and does not require subsidization or give aways like the earlier androids or blackberry dev phones. The price itself puts it in impulse buy territory.

First I must admit to being struct by the box’s slipcover. The cardboard look is utilitarian and sparse.
IMG_20131021_161027

The box under the slipcover is more typical for a smartphone. I can imagine seeing this box on a retail shelf.IMG_20131021_161127 IMG_20131021_161226

Included with the phone is a micro usb cable, headphones, and a usb charger. Without listening to them I suspect the headphones are not going to sound good.  The battery is pre-inserted in the phone.IMG_20131021_161349 IMG_20131021_161514

We must insert the battery which requires finding the latch in the the lower right corner. I’ve photographed the location since it was harder to find than expected. You will not feel the latch during normal usage.IMG_20131021_161615

Upper left is the microSD card slot, the right is the fullsized sim slot. IMG_20131021_161702

First bootup splash screen. IMG_20131021_162055

Second bootup splash screen. IMG_20131021_162059

Once booted we enter the setup process. There are things I think should be changed. Please do not that this as criticism but instead as justifications for my suggestions which will find their way into bug reports.IMG_20131021_162130 IMG_20131021_162154 IMG_20131021_162333

Once we’ve entered the wifi password and joined the network we’re sent back to the network select screen as shown below. This was not what I expected. I thought we’d go on to the contacts screen since we’ve done everything we can do with the wifi. IMG_20131021_162405 IMG_20131021_162406

This screen is what I do not understand. We already have network access, and we’ve had minutes to initiate the GPS. I should not have to tell the phone anything of what it is asking. Notice how the time has defaulted to the epoch, unix timestamp zero. Now assuming we need this screen only as a fallback I wish we were not expected to guess what those buttons will change. It should tell me we are looking at:

  1. Region
  2. Nearest City in timezone
  3. Date
  4. Time

I bring this up because I got confused. I thought #2 meant province / state. I do not know what or where “Pago Pago” is. I thought #3 is date format. Similar to how golang defines date formatting. Instead it was the date selector.

IMG_20131021_162407

Considering the emerging market nature of FxOS’s target market I think this risks confusion. I know that when selecting a timezone I must pick Edmonton. I know this only from installing linux several times. We cannot expect regular people to know they must select a city, which they may not live in, which must be close, but which must not be in the next timezone. To make matters worse the list is ordered alphabetically. Without knowing the exact city to select we must search through a list containing every city on our continent.

Good would be to order by location. Better would be to have them select their location on a world map. Best would would be to use our GPS if we have a signal.IMG_20131021_162520

Now onto the time selector widget. This is what said time selector looks like right after we hit “change”. Notice how it knows the current date. Remember how the screen prior defaulted to timestamp zero. The phone already knows the current time!

Better would be to preset the setup screen’s time to whatever time this time selector widget thinks it is. Best would be to send off an NTP packet and get the real time over the network. Remember, we already setup the wifi connection.IMG_20131021_162617

This title is too long.  I had to change my app’s title to fit the app screen, this screen needs the same treatment.IMG_20131021_162850

I wish something in bigger letters told me this is a newsletter signup screen. Instead I thought it was a registration screen. IMG_20131021_162900

The following tutorial is good and does the job. I’m sure they would prefer a tutorial which used the real homescreen instead of the abstract images. I understand that feature is extra work on a level beyond the other suggestions. I just hope it is on someone’s todo list. IMG_20131021_162920 IMG_20131021_162930

Note how it asks us to find new apps to the homescreen’s left, we will have a problem with this later. IMG_20131021_162938 IMG_20131021_162947

Also note how it asks us to swipe down. IMG_20131021_162957 IMG_20131021_163009 IMG_20131021_163023

Keeping in mind the instructions we saw earlier I wanted to install the app i made a few days ago. This screen is supposed to be where one finds new apps. Yet these search results do not look like the “IP Address” apps I saw in the Firefox Market. Instead these look like website bookmarks.IMG_20131021_163340

Rather we must go to the homescreen’s right where we find the Firefox appstore. And it is here we find my app. IMG_20131021_163523 IMG_20131021_163621 IMG_20131021_163640 IMG_20131021_163650 IMG_20131021_163737

As we noted earlier one should be able to bring down the notification screen by swiping down from the top. Instead we must press, hold, then pull down. Swiping down without holding is interpreted as swiping left or right.

IMG_20131021_163812

Now just for interests’ sake let us analyse the ZTE Open’s box in relation to the other dev phones I have. The Nexus 4 aims to look premium. The box is trying to convey that a $300 phone can be no less premium than the $600 competitors. The Blackberry 10 box aims to feel exclusive through the mission statement on the box. All the Blackberry dev phones are given as gifts to developers. They want you to feel honoured and inspired to develop an application.

The exact mission statement is:

Exclusive for the Blackberry Developer
Community. Not a production modal.
Evaluation unit -- not for resale.

Millions of possibilities..

By my guess the ZTE Open aims to look grassroots or atleast non-intimidating. The Blackberry mission statement is the opposite. Blackberry wants to look established and confident. ZTE Open wants to look new and promising.

IMG_20131021_172233

To be honest I think the box achieves the goal. I do not expect FxOS to be complete. I expect it to have room for improvement and to be welcoming of my contributions. That is what FxOS needs right now, the luxury boxes can come later.

The Rebuild of Evangelion movies are incredible!

The Evangelion, aka Neo Genesis Evangelion, aka Eva, aired as a TV series in the late nineties and already then received critical acclaim. Now for the past many years the original creators have been redoing the series in a movie series.

The Rebuild series is peerless. Every action movie I’ve seen since has left me thinking about Evangelion. It does not matter if the action film is Western of Japanese, they cannot compare.

Take destruction and power, abstract terms that get *defined* by Evangelion. You never see a dieing person in Eva. The scale is uninterested in singular people. Fleets of ships, walls of tanks, that is Eva’s scale of destruction.

I wish other films paid the same focus. Last summer we had the blockbuster Avengers. At said film’s climax the superheros resorted to saving a bus of people. One bus, regular people. The world is being invaded by aliens and the most dramatic scene the film will provide is one bus load of people being escorted into a building.

2013-10-19-231739_5520x1080_scrot

Ship to ship cargo transporting. From Film 3. Not individual scale.

My wish is for the action to match the scenario’s scale. Eva fulfils this condition. Saving a bus is individual scale. You do not get to invade the earth on an individual scale. When invading the earth you must work on planet scale.

Planet scale means you have no time to watch a random person die. You have no time because the destruction of a battle fleet is not your climax and so said destruction needs to get off the screen fast.

Evangelion will evacuate the city in seconds. What inspires me is how powerful the evacuation feels. As like an entire nation’s will and effort was put forth. Highways of buses and railines packed. Yet not a person to be seen. In any other film we would see the panic, the disorder. Any other film would spend tens of minutes building suspense over the evacuation’s success. Yet Evangelion has no time to waste on such small issues.

Three of the planned four Rebuild movies are out. The third has made complete departure from the tv series and each film has outdone the last in power.

Power is the key flaw in the whole concept of giant robot suits. Internalize the power, the momentum, a tank has when moving. No engine we can create has the power to size ratio needed to make building sized robots move. So some anime invent new power sources to justify their robot’s movement. Eva does not. Or at least Eva does not waste time explaining their existence.

Instead Evangelion shows you the result. Eva never compromises scale. In the case of robots this means weight and momentum. So when Eva shows a robot changing direction, accelerating, or falling we see the result of the mythical power source. We see the ground cracking. We see the jet blast. We see the weight and Newtonian force.

Still frames or animated gifs cannot do Evangelion justice. I wish they could. Once I pause the film the magic disappears. Evangelion is an animated experience and it is meant to be seen moving. Keep that in mind when you see beautiful still frames. Those frames have been pulled from a scene that magnifies them many times over.

2013-10-20-000227_5520x1080_scrot

The computer interfaces are something to behold. Alarms give jolt you awake. Notices fill your screen. The pilot can neither miss nor ignore any important information.

2013-10-20-000519_5520x1080_scrot

This delta wing receives less than ten seconds of exposure and at no point is the element of interest. Eva has no time to waste.

2013-10-20-000731_5520x1080_scrot

This still frame does the scene no justice. Those jets are powerful , and you feel it, yet Eva spends mere seconds using them. Seconds later we’ll see that robot impact the ground, cracking pavement, compacting tanks, and walking away.

If you can understand japanese and you have not seen Rebuild then I implore you to watch the films. I am less enthusiastic over the prospect of relying on distracting subtitles. As a  fundamental issue English is not Japanese and impact can only be lost in translation. If you do not yet understand japanese then you are still fortunate. The Rebuild series is taking a very long time to reach completion. Seeing the fourth film in the next two years would surprise me. So this should make a fine opportunity to learn the language.

Or just watch Neo Genesis Evangelion anyway, it is that incredible.