• I am happy to bring you our interview with No2Chem… the man behind some of the most groundbreaking programs and discoveries ever made for Windows Mobile devices. No2Chem stays very busy, coding tools for PocketPCs and BlogEngine.net, building ROMs for the HTC Touch Pro, Diamond and Titan, posting very in-depth articles on his site, and responding to impromptu interviews with inquisitive bloggers (thanks!). As always, I’m adding some questions from PPCGeeks members to the interview, but this time, I’m going to sprinkle them throughout. No2Chem was gracious enough to take some time out for us, and I hope everyone enjoys learning a bit more about the man behind the nue.

    EricJ: Hi, thanks for agreeing to talk to us! First, I’m sure people would love to know something about you. Who the heck is No2Chem?

    No2Chem: I’m currently a student at the University of California, Irvine (UCI), scheduled to graduate mid-June with a B.S. in Biological Sciences, B.S in Computer Science and a B.A. in Philosophy. I do research with the UCI Center for Embedded Computer Systems (CECS) and the UCI Cognitive Robotics Laboratory, doing large-scale simulations of brain-models on GPU clusters. We hope to have these models eventually working on robots. As I don’t have time, I currently don’t have a job – however, I plan to do consulting and contract work upon graduation.

    Wow! Anyone remember the robot Johnny 5? No2Chem is not working on that robot. Or this one.

    EricJ: What PPCs have you owned?

    No2Chem: Compaq iPaq H3650, HP hx4705, Sprint Mogul (HTC Titan), Sprint Diamond, and Sprint Touch Pro.

    EricJ: Did you brick a few of those?

    No2Chem: A few times – more so on my Titan when I was exploring SPL and radios. One time, my USB Hub was outputting +12V instead of +5V, which bricked my Titan then as well. Insurance has been good on replacing the few bricked phones I’ve had, but I think I haven’t bricked any phones in the last year.

    From Coz Boogie: “Discuss the persistent mystery of a Crown Victoria in the passing lane. Cops? Or old people?”

    No2Chem: Hmm, probably cops. Although I’ve noticed they’re starting to get new cars that look like Toyotas or something recently. Old people… well.. unlikely to be in the passing lane.

    EricJ: Old cops would be my guess. Could you tell us a bit about PPCGeeks and XDA? How did you get involved with these communities?

    No2Chem: I think I’ve known PPCGeeks and XDA early on, but I didn’t become a member until I picked up my Sprint Mogul (HTC Titan). I joined in search of a solution to Bluetooth and the abysmal memory problems on that device. I got into ROM building early on, and I was intrigued by the capabilities of the device – which were there in hardware, but just not enabled in software. After releasing several ROMs and a few small programs, I eventually ended up with moderator status at PPCGeeks. I’ve only had to use it a few times, though something tells me I probably should be more active…

    From hibby50: “What programming languages are you fluent in? How long and how did you learn them?”

    No2Chem: Generally, after you’ve learned a number of languages, you can pick new ones (unless they’re based on a radically new paradigm) rather quickly. I work with ARM/x86 assembler, C, C++, C# and JAVA on a regular basis – I can work with PHP, Perl, VB.NET just fine, and although I haven’t had a use for it recently, Verilog HDL. Obviously not an exhaustive listing though.

    EricJ: How long have you been coding? What got you started?

    No2Chem: I think I’ve been coding for… well, most of my life that I can remember anyway. I started with QBASIC early on, and my father bought me a copy of Microsoft Visual Basic 4.0 while I was still in elementary school. I learned the basics of event-driven, GUI programming, and basically coded small programs to help me finish small tasks. After awhile, I realized that Visual Basic was probably best left to prototype programs – in high school, I picked up a variety of “web” programming languages on my own, such as ASP.NET C#, PHP and Perl – C# is definitely the one I ended up sticking with, PHP’s syntax was just too bizarre, and, I pretty much felt the same way about Perl. Before I picked up computer science as a major, I wrote several web applications in C#, including an inventory application with barcode scanning support and a Microsoft SQL Server backend. When I declared computer science as a second major in the middle of my third year at college, I was able to test out of some lower division classes easily. I won’t deny, however, that study computer science academically has taught me much about syntax, software engineering, and a lot of object-oriented structure. The x86 and MIPS assembler that I did pick up while studying computer architecture probably did help me get up to speed on ARM assembler quickly.

    EricJ: People are chomping at the bit wondering when the latest nueROM will be released. Any updates for us? What’s new and exciting in the next release?

    No2Chem: Well, I can’t really give an ETA, though I can say that I do have a kitchen, (for the Diamond anyway, where I do most of my testing). My current plan is to build a high performance “reference” or “core” ROM that other ROMs may be eventually based off of. I found that previously, I spend a lot of time trying to fix Manila or other third party applications that many people would rather live without. Anyway, about the only things I can hint at are better performance and a new version of the battery driver, as well as some small nueROM support tools.

    EricJ: What inspired you to start making programs for PPCs?

    No2Chem: I think that I started with nueMinutes, which was originally just a “toy” program to see how I would fare on PocketPC programming. Once I began my work with reverse engineering, I quickly realized that users would need a way to alter settings quickly, so I wrote a few control panel applets to help users control settings that were otherwise inaccessible or required registry hacks. At one point in time, this project sought to rewrite all the Windows Mobile applets, but I think that proved to be too ambitious. The simple goal remains, however – to give users the power to control functionality that Microsoft or HTC, for whatever reason, decided the user was better off not being able to control. I think that’s the unifying premise behind nearly all the nueTools today, and to be honest, I wish it was a task that Microsoft or HTC would actually spend time undertaking so I could have time to write some real programs.

    EricJ: It’s great that you release all of your programs as donationware when others would probably choose to charge for such useful applications. What made you decide to release everything for free?

    No2Chem: Well, at the very beginning, I released all nueTools as freeware because I felt that it was to everyone’s benefit, and I wasn’t really expecting to get anything out of it. I was eventually approached by several people who were wondering where to donate, and after a bit of convincing, I converted all nueTools to donationware.  I don’t charge for anything, mainly because this means mandatory support, and I simply don’t have time at the present moment to support the software yet – there are simply way too many releases and not enough time. Besides, I think the community in general benefits from development of free software, and I would have to say that I’ve used many free pieces of software provided by the community, so it’s only natural for me to want to give back.

    From Shaggylive: “I want to know what takes up all his non-geek time, and what we can do to help so he can devote more to dev. lol I’m sure hibby is good at washing dishs and laundry.” and 6700Yuma: “I’d also be interested in what he does when not geeking.”

    No2Chem: Mostly school-related or research-related work, or living a life. You know, the kind where you have to pay for dinner and listen to whining about why her phone sucks because it runs Windows Mobile, and if she had any other phone she’d be happy. I also am trying to finish a CarPC project on my car, though I never seem to have time for that .. and I suppose that is “Geek”-time as well.

    From shadowfender42: “What would he do for a klondike bar?”

    No2Chem: I decided that I actually don’t like Klondike bars. It’s actually pretty disappointing when I get one, because I always think it’s a ice cream sandwich, until I open the wrapper…

    EricJ: Are you excited about the Touch Pro 2? How about the Palm Pre?

    No2Chem: Somewhat on the Touch Pro 2, though what I am really excited about is a departure from the MSM 75xx series. I haven’t really looked at the Palm Pre. I think there is enough potential in the current series of phones if only HTC bothered maintaining/supporting them.

    EricJ: What is your opinion of WinMo 6.5 so far?

    No2Chem: Well, I don’t think you can deny that it is a step up, but it might be a step up too late. I’m not really sure how Marketplace and MyPhone will pan out, but they definitely did a lot of work to the UI, finally. What I need to make my judgment is the release of the WM 6.5 SDK, which is supposedly more developer friendly. I do think that it is about time that we move to CE 6.0, which will solve many of our present problems (and of course, bring plenty of new ones).

    If you take a look at the iPhone SDK, for example, designing a touch-ui based interface is a matter of drag-drop, even for native code. On Windows Mobile, you’ll probably have to have an extensive background with the Windows SDK, among other things, and probably an experienced graphic designer to back you up. Granted, Windows Mobile was not designed for touch from the ground up, you’d think they would have thought about upgrading the standard controls, but I guess not. I think the core problem with Windows Mobile is Microsoft’s design policy – Microsoft wants to simplify the user interface as much as possible, but completely ignores usability issues after. Just look at the Windows Mobile OpenFileDialog (which prevents you from browsing folders). While the simplification itself is fine, what use is an OpenFileDialog that is simple but not usable for most tasks? The result is that most applications come with their own version of OpenFileDialog. On top of this, the market that Windows Mobile targets is certainly not (and never was) users that need simple UIs. I’ll be doing an article about the differences between the iPhone and WM from both a development and user standpoint soon.

    If Microsoft wants Windows Mobile to last, Microsoft will need to have more stringent control of OEMS. I think it would do Microsoft well to require device vendors to release firmware updates for at least two years, updating otherwise obsolete devices with the latest firmware. I think Windows Mobile has a competitive edge over both the iPhone and BlackBerry in that it is more of a “full-service” operating system than the iPhone or the BlackBerry, and that it is not an entire platform, so hardware vendors can come out with devices that have specs which match individual needs (keyboard/no keyboard, VGA vs WVGA, etc.)

    A final note on the subject: Taking WM development support out of VS2010 is a BAD idea. Its really the only thing going for the platform – even Apple uses XCode for both iPhone and OS X development, and MS is going to force developers to learn a new tool? I hope you’re reading Microsoft, as you might be sentencing WM to its grave… Don’t get me wrong, WM is more open than iPhone/BlackBerry/Andorid, and I’m all for more open… but if you’re not going to maintain it and keep it up to date.. and at least give the developers the tools they need to help your platform succeed, then why bother?

    EricJ: How about the future of Windows Mobile hardware? What possibilities haven’t been explored yet?

    No2Chem: One of the big issues with WM hardware is the lack of a floating-point unit (FPU). This is really due to the popular Qualcomm MSM7xxx chip that lacks a FPU. Even the iPhone has the VFP (Vector Floating Point) processor, which probably accounts for why it performs so well on 3D applications.

    EricJ: Do you have a standard group of people that beta test for you, or do you do most of the testing yourself?

    No2Chem: I usually do most of the testing myself. With the limited time I have, I usually can’t coordinate any testing team. Of course, this means any real testing is done by the users (you), which is the reason for the number of disclaimers when you download the software.

    EricJ: How much time typically goes into creating these programs from start to finish?

    No2Chem: Well, a lot of time goes into coding an app, but I would say that a good amount of time gets lost in dead-ends. I guess in reverse engineering, the path you take is never direct, as it is with simple programming. You never know if what you want to achieve is even possible, and of course you might discover other things along the way which gets you sidetracked. In general, I usually spend at least 2 hours a day working on PocketPC related stuff, and when I have the time and find something very promising, it might jump to 12 plus hours – usually late at night. I think I have the hardest time maintaining apps, because I always seem to find new things that pull me off track, and then I have a hard time returning to coding…

    EricJ: Is there anything new that you’re working on that you’d like to tell us about?

    No2Chem: Well, there was a new version of nueTVOut, a bunch of small performance tweaks to kernel code, and some special tools to support nueROM. In the long run, I’m also working on a project to rewrite several HTC drivers into C and a “from-scratch” SPL. Too many things to list, really.

    EricJ: Finally, any advice for coders out there that are just starting out?

    No2Chem: A question I’m always asked is how to get started with diving into Windows Mobile internals. Often, I’m approached by people who seem to just have a basic understanding of Visual Basic.NET … but have a lot of enthusiasm. Working in the embedded space is more challenging than the desktop world because it is multi-faceted – you don’t have the hardware abstraction layers that you usually deal with, and there are hardly any standards. You need to have a good grasp of both hardware and software. My suggestion is typically to learn and master at least one assembly language – preferably one for a 32-bit architecture. Learning assembler teaches you both how the underlying hardware works, and how software can make use of that underlying hardware. Without this basic knowledge, you can’t even begin to follow a disassembly, let alone understand it. After you pickup assembly, you probably want to pick up the Windows SDK – it’s a mystical SDK, but being able to recognize the functions that are called will help immensely when you are trying to figure out what a code block is doing. Of course, help from those that are experts already know what they’re doing helps – I am greatly indebted to cmonex for helping me get into working with Windows Mobile internals. However, you can’t expect people to hold your hand – you need to dive in and become familiar with working with this stuff first.

    I would like to again thank No2Chem for taking the time to talk with me. He is doing groundbreaking work that in the long run benefits everyone in the community. Check out his updates at nueROM.com. If you enjoy No2Chem’s apps, consider donating to him to show your appreciation!

    Any thoughts on this interview? Comment below!

    Posted by Eric J. @ 8:29 pm

    Tags: , , , ,

3 Responses

WP_Blue_Mist
  • Rothgar Says:

    Well I would just like to say thank you to No2Chem and I am quite surprised there were no comments on this interview. My Titan would have never lasted as long as it has without your hard work.

  • sos4ever Says:

    Thank you for such an insightful interview. Learning about the man who has done so much for the community has proved to be quite rewarding. Thank you for your time No2Chem and without people like you my Titan would be a paperweight.

    Regards,
    sos4ever

  • No2Chem Posts nueCPL-Power 0.1 Build 132 - pimpmyhtc Says:

    [...] some of you read the interview I did with No2Chem over @ TheStumblebum, and if you didn’t… read it now. He works very hard to provide us with tools that make [...]

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.