Southbound Travelogue — Red Star Over Singapore (Part 1)
This post was translated from Chinese by AI. The original post is
available here.
From January 28 to 30, 2008, I participated in Microsoft's Windows Mobile training in Singapore. The training was for Microsoft employees in the Asia-Pacific region, along with some MVPs. About a dozen people attended. Most were Microsoft internal staff in a role called "evangelist" — an English term, Chinese translation "big忽悠." There was also a Korean MVP. I participated as a Chinese MVP, the only domestic MVP, which was quite an honor. It was also my first time leaving China. Let me write about the experience — random thoughts, both technical and non-technical.
Let's start with the visa. Two years ago, I tried to go to the US for MEDC, but my visa interview was秒杀 — wasted 1K in application fees and left with psychological scars. This time I needed a personal tourist visa for Singapore. To my surprise, it was incredibly easy — just household registration, ID, and a stamped letter from my employer (basically a formality). No appointment, no interview. Submitted in the morning, got the visa in the afternoon. Easier than getting a fake ID from a street vendor.
Got the visa, bought a plane ticket, exchanged 100 Singapore dollars (1:5 rate — five Chairman Mao bills for one bill with some unknown person's head), and I was ready to leave the country. The day before leaving for Singapore, the南方 snow disaster was at its peak. Shanghai was covered in flying snow — even I, who grew up in the north, had never seen such heavy snow. I thought I wouldn't make it. Fortunately, although ground transportation was paralyzed, Pudong Airport was still operating. Afternoon flight, delayed an hour. Five hours later, around 9 PM, I arrived in Singapore. First impression: hot — 30 degrees, summer! In just a few hours, I went from flying snow to blazing sun. Luckily I was prepared — immediately stripped down to a vest and shorts. Poor me, with a huge suitcase full of sweaters, long johns, cotton jackets, and gloves.
Had to wait for three Microsoft employees from Beijing, so I wandered through the airport duty-free shops. In one electronics store, I found "homeland version" Wii accessories (tennis rackets, etc.). Patriotic feelings surged — knock-off accessories are already exporting! Singapore's airport is luxuriously decorated — not surprising since it's the country's only airport. Many areas have free internet terminals, but only 10 minutes at a time. Westerners are presumably disciplined — after 10 minutes, you can just log in again and keep using it indefinitely. Without phone signal, I successfully met up with the others and took a taxi to the hotel. Singapore cars are right-hand drive, people keep left — took some getting used to. But the taxis were impressive — many could swipe VISA or MasterCard directly. I learned that most Singaporeans speak Chinese, and simplified Chinese at that — no chance to show off my English. The hotel was called Meritus Mandarin — clearly related to China. Very well equipped, as befits MS's contracted hotel. At night, I got curry noodles from a roadside stall across the street — terribly awful. Walked around and noticed that McDonald's, KFC, Haagen-Dazs, and Starbucks were all roadside stalls without actual storefronts — just umbrellas. Prices were reasonable, on par with domestic street barbecue, Lanzhou拉面, or Shaxian snacks. They claim tap water is directly drinkable, but I got diarrhea after drinking it — not sure why.
The next day, training began. Our instructors were two Spaniards. Spanish-accented English is hard to understand — listening to it reminded me of the狂暴 villagers in Resident Evil 4...
Since the target audience hadn't signed NDAs, both the instructors' comments and the training content were cautious. For example, everyone was very interested in the next version of Windows Mobile, but the instructors called it "Windows Mobile six plus one" — wouldn't even reveal whether the version number was 6.1 or 7.0. But it's certain the next version will have significant UI changes and might require accelerometers in WM phones (all thanks to the Nintendo Wii craze — I love playing Wii too!). With accelerometers, you could shake the phone to perform many actions. For example, to unlock the phone after keylock, you could raise the phone above your head and shout "Give me the power, Windows Mobile!" — and the phone would auto-unlock :-)
The lecture content focused on Windows Mobile 6 and Visual Studio 2008. WM6 has been out for a while — nothing new. VS2008 was relatively novel. There were seven topics:
- Track 1 All About Windows Mobile
- Track 2 LOB Mobile Applications
- Track 3 The Tools
- Track 4 Managed development and devices
- Track 5 Mobile Data
- Track 6 Optimization and guidance
- Track 7 Whole new level
Let me critique the content a bit.
About WM6:
WM6 isn't new. I feel version 6 was a hasty release to compete with the iPhone — not many upgrades. The biggest change was unifying the naming. Pocket PC and Smartphone technically no longer exist — now they're all Windows Mobile: Classic, Standard, and Professional. But if you use the API to get the OS description, you can still get Pocket PC and Smartphone names. So the name unification was just marketing — the codebase wasn't merged.
Cellular Emulator is an improvement — you can simulate SMS and calling in the emulator, which is very convenient for developers. But I feel the architecture is a bit off. The Cellular Emulator simulates two things: the phone's communication module (which communicates with the CPU via serial AT commands) and the mobile service provider's services (SMS replies, etc.). Putting these two together很容易 confuse people. I think a better approach would be to make the communication module simulation a Device Emulator plugin (to simulate multiple vendors' modules, since AT commands vary slightly between vendors), and keep Cellular Emulator as a separate simulator. They'd communicate through inter-process communication using Microsoft's standardized interface, made public so third parties can extend it easily. Then enhance the Cellular Emulator's functionality — for example, currently when you make a call, you can't do anything after connecting. If I want to write call recording software, I still can't debug with the emulator. It would be better to route the voice channel to an MP3 or WAV file, or even better, to an MSN Messenger voice chat, or to another Cellular Emulator running on another machine, so two phone emulators could have real-time conversations. That would be fun.
Other tools: FakeGPS is too fake — it just reads NEMA format data from a text file. If done well, it could integrate with Google Earth or Live Map, letting you drag a route anywhere on Earth, set a speed, and automatically feed corresponding data to the emulator. And Hopper is even less useful — it狂发 click events without any logging. Often the program crashes from Hopper without you knowing why. Random testing is useful, but the current tool needs enhancements.
About VS2008:
VS2008 doesn't have major improvements for Mobile and Embedded development. The main update is Device Emulator 3. I've always been very interested in Device Emulator. I basically read through the 1.0 source code when it was open-sourced. But later versions' source code isn't公开. The 3.0 device emulator was developed by someone else, so changes from 2.0 aren't huge. The main update is adding programmatic control of the device emulator. For example, they showed an example where a program reduced the emulated battery by 1% per second, making it easy to test your program's behavior under low battery. This is useful for developing automated test programs. I think Device Emulator has more potential for future versions. Currently it basically模拟 the Samsung 2410 processor. I think it could follow ARM CPU practices, simulating Core and SoC separately. For example, with the same ARM 9 core, SoC peripheral access and interrupt controllers could be pluggable. This way, the device emulator could simulate processors from Samsung, TI, and others. Even more flexible — make all peripherals as plugins. If my device has a camera, I could add a camera plugin and map it to a certain IO address...
About .NET CF 3.5:
.NET CF 3.5 now matches the desktop .NET version number. New additions also mirror the desktop: WCF and LINQ (they say to pronounce it "Lin Qiu," not "Link") are the main updates. Since it's basically a stripped-down desktop version, I won't go into detail. Other updates are minor: Logging, Delegate, SoundPlayer, etc. My feeling is that on Mobile, after years of development, .NET CF has basically become the first choice for application development. Its fast-and-simple approach is easily accepted, and with improving hardware performance, performance and resource issues are gradually easing. Today's phones are basically as powerful as computers from 15 years ago.
Lunch was a buffet at Microsoft's office. Several days of mostly meat, few vegetables — I later learned that meat and vegetables cost about the same here... Microsoft Singapore has a nice view, near Marina Bay, with the iconic Merlion just downstairs.
<img id=img20080228135134.jpg alt=merlion-中国博客网 src="http://images.blogcn.com/2008/2/28/7/omale,20080228143213.jpg" align=baseline border=0>
That's it for part one. Next part covers travel notes...
This post is licensed under
CC BY 4.0
by the author.
