Review Of ExoPC And Windows 7 Touch UI

by Jon Davis 16. November 2010 09:35

This post has been a long time coming, not that I didn’t throw the world a bone or two during the wait with my two posts of logs [1, 2] containing my initial thoughts and impressions, several of which were irrelevant or wrong (problems were fixed with updates, I misunderstood things here or there, etc). So now that I’ve had about two weeks to receive, unbox, and poke at the ExoPC as a Windows 7 touch tablet PC, this post summarizes some of my observations and conclusions about the device and about the overall touch-based computing experience with Windows 7. As such, this does not focus solely on the work that ExoPC as a company has done on their device and their UI layer, but also the work Microsoft, Intel, and others have invested into what has culminated into the many-hands-in-the-pot product that the device is.

Although the ExoPC has still not been mass produced and made available to the general public yet (pre-orders were available to those who came, hence this review, but pre-orders are now closed), the ExoPC is still the most important and most relevant touch tablet PC currently relevant to the market as competition to the Apple iPad. The others which I believe most people are paying most attention to are the HP Slate 500, the CTL 2goPad, the Tega V2—all of which are actually available for purchase now—and the as yet unannounced multiple offerings that are supposedly coming from Asus which no one knows anything about other than their anticipated sizes and the fact that the company that will be making them (Asus, duh) is pretty awesome when it comes to mobile computing.

The specifications for the ExoPC are posted here. It’s basically a very nice, large netbook without a keyboard. The 11.6 inch screen makes it a particularly large tablet computer compared to other offerings. With a resolution (1366x768) that exceeds the iPad and other similar tablets it would have been an ideal display for high definition video. And with its Broadcom Crystal HD video chipset, that’s exactly what it can be used for. I successfully synchronized it with my HDHomerun TV tuner over WiFi and hi-def television rendered beautiful at full framerate in full HD (scaled down, of course, to the resolution of the display, but it does support HDMI out). I did this with Windows Media Center (maximized to full screen, of course), which is also touch-friendly. So if you want to run ExoPC as a portable media computer, you can’t go wrong with ExoPC and its preinstalled Media Center, it’s actually an amazingly perfect experience.

The device comes with 2GB RAM which is sufficient for most typical lightweight end-user tasks today. Unfortunately, the Intel Atom processor used in the device, while it was the best option available half a year ago, is now a generation behind, as it is slower than the HP Slate 500, which is arguably ExoPC’s closest Windows 7 contender. Intel Atom processors are the Celeron reinvented for yet smaller form factors such as netbooks. They are slower and don’t support more than 2GB RAM. In my opinion, they had a lifespan that has nearly ended; quad core processors with 4GB RAM support should become minimum specs for small-but-very-functional devices in the next year or so, I feel. And to tell you the truth, being spoiled on a very nice laptop and a nice desktop workstation, I can definitely feel the processor pinch on the ExoPC. The horsepower is likely much, much greater than on the iPad, but because some popular software applications for Windows 7 are not optimized for small form factor PCs they tend to perform as though they are slightly under-powered even on the meatier ExoPC hardware.

The processor and/or the video chipset (not sure which, if not both) in the ExoPC also comes with another cost: heat. The device is not hot to the touch, but does warm up, and it does have moving parts, namely a fan that kicks on when you’re performing intensive tasks, rendering rich media or 3D video, or doing a lot of I/O such as installing software. I first noticed the fan when it was initially setting up Windows; it kicked into high gear at that point, which really surprised me, particularly since I didn’t anticipate any moving parts at all (my 2-years-old Dell Mini 9 netbook has no moving parts). Usually, however, when doing mundane tasks such as checking e-mail the fan stays quiet and won’t even be noticeable. Even so, you will need to keep the fan inlet and outlet vents clear. This is something that other tablet vendors in the future should try to eliminate if they can manage to keep the CPU performance and rich 1080p video support.

The Display

The ExoPC sports a larger 11.6-inch display, which is much larger than the ones seen in other tablets such as the iPad or HP Slate 500. It comes with a fantastic resolution of 1366x768. The extra resolution is applied only to width, however; it is not just bigger, it is specifically wider—or taller if you’re looking at it in portrait orientation instead of landscape orientation.

My own ExoPC had a pretty bad blue tint, such that white background color shows up as a light blue instead of white. However, Microsoft has a workaround for this; if you open up the “Adjust Screen Resolution” control panel and then access the Advanced settings, there is a color calibration wizard that you can use to calibrate the color tint of the display. This worked fine for me, although as I type this I still feel that the background color is light blue and perhaps the calibration did not restore correctly as the device came out of hibernation, I don’t know, but I assume that I just didn’t calibrate correctly the first time around.

Unfortunately, while the display does have a decent resolution for its size (i.e. dots per inch), the brilliance and clarity are fairly average. Looking closely at the display, the screen looks “glittery”; this is a “feature” of cheap older LCDs with fluorescent lighting and might be made worse here with the built-in capacitive touch interface overlay.

The viewing angle is also fairly mediocre. It was my understanding that the display’s viewing angle was “much improved” from earlier test models, but if this is true then the earlier test models must have been really bad. The problem is that the slate form factor really requires an extremely wide viewing angle threshold, more so than on a laptop or netbook, because the display will often lay down flat on your lap or on a desk, and the ExoPC simply cannot be viewed flat on a table. It’s also just barely large and heavy enough that it’s cumbersome to hold it at a direct angle to your eyesight. So you really need to plan on carrying a stand with you wherever the ExoPC goes. This is really unfortunate. It doesn’t cripple the ExoPC but it does eliminate a great deal of versatility for its target consumer base.

The Graphics Hardware

A discrete accelerated graphics chipset from Broadcom is built into the ExoPC enabling full high definition video rendering such as with Windows Media Center. As I described earlier, I was able to stream live 1080p TV from HDHomerun without any hiccups. The CPU, however, is squeezed quite a bit when viewing under-accelerated, heavily compressed video such as Hulu. Video from Hulu is watchable but noticeably laggy. The video chipset also has good but not great 3D acceleration support; I got roughly (I’m guesstimating here) 10 fps from the game Torchlight after running all updates from Windows Updates including video driver updates. Overall: good enough for native Aero support and accelerated WPF touch interfaces, not so great for the PC gamer or for hi-def web videos, but definitely adequate.

There is also a mini-HDMI out port. So although you can’t use a standard HDMI cable, you can get a mini-HDMI-to-HDMI cable and hook this device up straight to an HDMI-ready monitor or TV. I haven’t tried to use it yet, but I give it the benefit of a doubt that 1080p video will work fine as it HD content renders fine on the ExoPC’s own display quite well.

Touch UI and Touch Screen Issues

The touch screen is quite good in that it is very responsive and sensitive and seems to be pretty precise—that is, when it works. But there appears to be a design flaw between the hardware and Windows here. If the OS is busy, such as if it still trying to reorient itself after coming out of hibernation and slowly return to an optimized experience, the touch screen signals will be outright ignored. I cannot express how annoying this is, to be sitting here at Starbucks and constantly poking at buttons on my tablet and absolutely nothing happens, neither when I tap nor a few seconds later when it might finally “catch up”, because it seems there is no “signal buffering”. By “signal buffering” what I mean is that, with a computer keyboard and sometimes with a computer mouse usually the hardware will buffer the signals so that when Windows catches up with whatever it’s doing it can pull this data out sequentially and everything “just works”, if late. With the touch screen, there doesn’t seem to be such buffering. I don’t know who is responsible for this buffering, the OS or the hardware vendor, but either way it’s a nuisance if you’ve just pulled out the ExoPC from hibernation or rebooted, or if you’ve run low on RAM. When tap-dragging to scroll and nothing happens, or tapping the Wireless Networks icon in the System Notification Area to bring up the local router to select it and then nothing happens when you choose the router because your finger tap is ignored, these are problems that need to be solved if Microsoft and the hardware community want to compete with the likes of iPad.

There’s another problem that I can’t keep from complaining about. Here in Windows Live Writer, which internally uses the Internet Explorer component for its WYSIWYG editor, there is a built-in feature (really, it’s a feature) that is, frankly, a just horrible idea and should never have seen the light of day. If you tap where you want the caret to move to, the touch interfacing in Windows will, quite literally, second-guess your tap location. The caret will move after half a second to an adjacent character location, depending on .. well, honestly I don’t know what data it’s depending on for this second-guessing behavior. So if you, like me, were to tap where you want the caret to go, and the caret goes there, and then you look away immediately to start typing, you could very well be typing in the wrong spot because the caret moved again while you were looking away.

Live Writer caret occasionally shifts one character when moving the caret with touch

Stylus Support

In my ignorance, I was unaware that capacitive touch interface hardware requires an extremely large physical footprint for correctly identifying touch input. Traditional tablet PCs used styluses with pointed tips which required pressure but were great for inputting exact, pixel-perfect data such as hand signatures, etc. With capacitive touch screens, the only styluses available have huge, 1/2 cm or so wide rubber tips, making pixel-perfect input rather awkward and clumsy. When I tried using one of these on an iPad I had to push the rubber tip down so hard that I was worried that the the rubber tip might come off. And this stylus was actually the highest rated iPad stylus on

The ExoPC stylus support is expected to be no different. I have not yet been provided a stylus (I believe they shipped my stylus separately yesterday), but after some communications on the ExoPC forums I discovered that HP Slate 500, as an example, has more than just a capacitive touch screen, it is also “an active N-Trig digitizer panel”. Ugh. So I guess “capacitive touch plus digitizer panel” is the next nice thing in touch UI hardware now, something ExoPC lacks?

Other Accessories

Because the ExoPC supports USB, Bluetooth, and removable flash drives, and because the slate form factor is not unique to the ExoPC, it’s pretty easy to find accessories that work well for the ExoPC. I’m typing this with an Apple Mini Wireless keyboard, and my ExoPC is sitting on this stand while I’m here at a coffee shop.

My one complaint, though, is that the slate form factor mandates two types of accessories that must be custom tailored to the model, and neither of them are available to the ExoPC: a clear screen cover (to keep scratches from ending up on the screen) and a skin/case for the bezel and back. It was easy to snag an iPad knowing you could cover it up and protect it with a screen cover and some rubberized casing. But with the ExoPC the options are a little more trivial: there are no options. In my opinion, these accessories should come bundled with the unit. In fact, I consider this to be the second biggest flaw of the ExoPC, after the screen viewing angle issue, the fact that you simply cannot protect it.

Touch-Ready Software

The most fundamental computing tasks for any consumer slate, as opposed to business slates like the HP Slate 500 are media playback (music and videos), web browsing, and e-mail. For these, these software products work perfectly or else quite well on the ExoPC, so much so that they are actually quite a joy to use:

  • Internet Explorer 9 (web browser, duh)
  • Windows Live Mail (e-mail client from Windows Live Essentials 2011)
  • Windows Media Center and Windows Media Player (together)

Media Center and Media Player come built into Windows. Media Center is not great for more advanced management of music, but for what it does do, it does well, and Media Player fills in the gap with CD rip support, etc. Sadly, neither IE9 nor Windows Live Mail are bundled with the unit. Internet Explorer 9 is still not available to the OEM for preinstallation as it is still in beta, and it won’t be available by the time ExoPC is open to the public for general orders. But it is downloadable in its beta form, and it works great for touch. As for Live Mail, while it does need to be downloaded as part of Windows Live Essentials 2011, it is worth it, and it functions as though it was native to Windows 7 in much the same way as the mail app in iOS “just works” like it was native to its OS. It has the look and feel of Office / Outlook 2010, but it is even more streamlined for a basic, consumer use of e-mail services. And yes, Live Mail works just fine with POP and IMAP accounts. Speaking of which, Office 2010 is supposed to work very well with touch interfaces. But I don’t have a license for Office 2010 at this time so I was not able to sample that on the ExoPC.

You can also install Zune. Zune is a beautiful media manager app, but unfortunately it runs a little slow on the ExoPC and it isn’t as touch-ready as, say, Media Center. Scrolling often requires using the scrollbar, for example. But the advantage of Zune is that, like iTunes, it offers a marketplace where you can buy and download music and videos for your ExoPC. I believe and expect that marketplace purchases from Zune would appear in Media Center, as well.

Let’s not forget the ExoPC UI Layer itself. It extends the Windows 7 user experience with a touch-only, highly innovative user interface experience where you can download apps and extensions from its own marketplace, etc. I thought the “sidebar buttons” (whatever you’re supposed to call them) approach to managing the tablet software was quite innovative and even perhaps ingenious. Unfortunately, during my week or two with the ExoPC I have hardly had the chance to use the ExoPC UI Layer, and when I did use it I found myself fighting with it more than I expected; sometimes Alt+Tab does not cause it to hide, for example. And I also found some built-in apps and interfaces to be confusing. Can someone tell me what the “ExoClean” app does? Is the lever a way of authorizing the clean-up of something? Or is it just a “clean” demonstration for developers to see what they can do? ExoPC’s marketplace also does not seem to work; tapping the Download button for an app didn’t do anything, so I gave that up.

Also, I must mention:

  • WordPad (preinstalled with Windows)
  • Office 2010 (separate purchase)

These are well-tailored for touch, and although I haven’t tried Office 2010 I loved WordPad’s touch responsiveness and its native scrolling behavior, etc.

What else is touch-ready? Frankly, not a lot [here are some supported games, more (lots more), and other apps], and since the marketplace in the ExoPC didn’t actually work for me the only other approach I know of to finding touch-ready Windows software is to run Google searches. Some people have mentioned Scott Hanselman’s Baby Smash. To this I say, you’ve got to be kidding me. If I wanted an actual toy for toy’s sake I’d just settle for the iPad. There are plenty of touch-to-make-noise-and-cool-visuals apps available for the iPad. So I go to and I’m asked the most stupid question that can be asked on the Web: “What country are you in?” (This is stupid because my IP address is known; it can be geo-traced.) I choose U.S. and I get the stupid standard options of “Explore Windows”, “Xbox 360 games”, “Microsoft Office”, etc. Migrating from iPad’s App Store, this is a total joke. Microsoft really blew it here, they just don’t get it, how absolutely important it is to have a rich UI built into Windows for browsing a Windows 7 software app marketplace, with touch UI as a faceted search filter, and with just showing some good third party apps, i.e. Top 20, as the first thing the user sees.

Ultimately I bought the ExoPC because I want to be equipped for software development with touch UI. Software that targets the ExoPC must target either Windows 7 generically, in which case I can write with any development tools I like but I’ll be outside the sandbox of ExoPC’s UI layer, or I can write software that targets ExoPC’s UI layer in which case I’m limited to Flash or Silverlight. .NET support is coming “soon” but with no anticipated date and no specifications given. I’ve made my rants known that I am quite disappointed that they’re not using WPF for the ExoPC UI Layer which will have better hardware acceleration and should enable fewer seams from one interface to the next, but they are apparently a small team of developers, and perhaps there are limitations I’m not aware of.

The Accelerometer

The built-in accelerometer is, .. well, it’s present. It’s there and it works in that if I rotate the computer the screen resolution will adjust accordingly, rotating the whole desktop to keep everything upright. And that’s fine. But is the accelerometer available to other applications? Sure it is; on the other hand, I posted this question asking whether the custom software that triggers the rotation of the desktop can be “turned off” programmatically so that, say, an accelerometer-driven PC game, such as a car racing game that uses tilt as the steering method, will work without the screen resolution being adjusted and rotated. I didn’t get a reply. I chalk that up to the ExoPC guys being busy, but the harsh reality is that Microsoft should have been the ones to implement the auto-orientation feature, and they should have implemented a standard API for software that works in all of these scenarios. I haven’t delved into this yet, so I don’t know for certain, but it seems to be that this is just another detail that fell through the cracks. In the mean time, other devs are reporting that the drivers for the accelerometer from Pegatron (the company that designed and built the actual hardware) doesn’t support anything in the accelerometer accurately except for tilt/orientation notifications.

And regarding the orientation notifications, I have found that if I simply pick up the tablet, split-second inertial forces will cause these notifications to trigger. This is another design flaw; iPad and iPhone will “buffer” shakes and sudden orientation changes such that simply shaking the unit will not cause re-orientation. And unfortunately that feature does not seem to be implemented here, or at least perhaps not very well, as I have frequently seen the orientation adjust when just picking the unit up and setting it back down again in the same orientation.

The Webcam

The built-in webcam is functional. It’s not great, it’s not horrible. It works. It looks like it’s roughly VGA-esque resolution and the color saturation is a bit low but the quality is otherwise quite good, albeit not great.

Quick little peek:

A few seconds of webcam recording at the coffee shop

The Battery Life

The battery life isn’t particularly good. It’s between fair and just good. Poor would be two hours or less. Quite good would be five hours. Extremely good, or great, would be eight hours. ExoPC runs at about 3 1/2 hours—that is, it runs a bit longer (to about 3 3/4 to 4 hours) but push it beyond 3 1/2 hours and you’ll be at risk for losing your work; I started to get notified that the battery was very low and that I should stop and plug in or hibernate at about 3 1/2 hours into it.

This again is something that ExoPC can’t do much about themselves; having a full-blown OS, which requires a full-blown CPU, imposes a workload on battery life, and the goal here is to keep the unit thin and lightweight. The iPad gets away with ten hours of battery life partly because it’s not a full-blown OS, it’s a stripped-down one that isn’t running as many background user services at all times.

So I think Microsoft will have to be the ones to address this, perhaps in Windows 8. As Windows has evolved towards many-core, now it needs to evolve to be lighter weight. The transition from Windows Vista to Windows 7 was huge in this area; had this not been done so well I wouldn’t have this ExoPC sitting in front of me at all. However, there is still opportunity for improvements here.

Touch Computing for Windows – Is It Ready?

Touch computing with Windows 7 in itself is a somewhat experimental experience. It works, but not perfectly, not when compared to, say, the iPad. This is often neither the fault of Windows nor of the hardware but of the harsh reality that most software just plain wasn’t built for finger tips, it was built for the computer mouse. If you’re waiting for Microsoft or anyone else to proclaim that “Windows is ready for mass adoption of touch computing”, you should both stop waiting and plan on being disappointed, because Windows couldn’t be much readier, but the software that runs on Windows, and the touch hardware that Windows runs on, will have to evolve for a few years getting used to this new form factor. And how will these software apps evolve to this new form factor if we don’t all start buying touch devices in the first place? I’d admit that this would be the difficult chicken-or-egg scenario, but the reality is that even with software not being built for touch, you can totally get by with a touch tablet PC without a mouse with most software, it will just be a somewhat less optimized experience until the software adapts to this new form of input. It is usually not a broken experience because the workarounds usually work fine.

Living without a keyboard, on the other hand, is really no fun. Part of the problem is that the Windows on-screen keyboard prioritizes function over form when compared to the iPad keyboard. But the biggest issue is that that you’re usually forced to use only one hand/finger. The viewing angle limitations turn out not to be an issue just with showing the screen to friends (hardly a concern for me) so much as being unable to see what you’re doing when the device is sitting down flat on a desk, or on your lap while you’re reclined. In my opinion this is the greatest limitation of the ExoPC model—you really have to hold the unit with one hand if you want to interact with it, or else have a stand. When you do have a workable viewing angle, the Windows 7 keyboard is quite functional and is very nice and useful, but it doesn’t have some of the usability features seen on both iOS and on Android such as the shift key being auto-pressed when you type a space after a period. Granted, with the iPad I do not spend a lot of time typing, but it’s hard not to do a lot of typing in Windows, especially being the blogger that I am. (I’m writing this up on my ExoPC.) Because of this I would strongly recommend getting a Bluetooth mini-keyboard. There are several listed here. I also strongly recommend a good stand. Having a keyboard and a stand, you have essentially a touch-based netbook, and this is exactly how I’m set up at the coffee shop right now as I type this.

Overall Stability

The ExoPC is surprisingly, if not shockingly, stable. For all its quirks and strange behaviors in touch responsiveness and slightly wacky accelerometer sensor support, I have never seen the ExoPC suffer a blue screen of death. In my opinion, this is huge! The debate about Microsoft Windows being a suitable operating system for any discussed platform has usually revolved around system stability. Stability is not at issue here! Now the discussion has moved on to battery life, touch responsiveness, and overall performance, for which Windows 7 really does quite fine. Contrasting against the iPad isn’t entirely fair in this matter; the iPad sets the bar a bit higher than people should expect, in my opinion, when Windows is trying to hard to fit on so many kinds of hardware platforms.


Unfortunately, I do not anticipate profound success in this first-model ExoPC’s short term future. Part of this is theirs and Pegatron’s fault; with so many delays that the ExoPC community has suffered from, and with a half-baked UI layer that still needs a ton of work (this was supposed to be the big differentiator for the ExoPC), the device is quickly becoming too little, too late. ExoPC will begin accepting orders in early December (technically, starting November 30). And if you must have a touch tablet, the ExoPC is not a bad model, and its availability comes just in time for the holidays. It is, however, inexcusably under-prepared and late to the market, as are all the other tablets being promised by HP, Asus, et al. And in ExoPC’s case, the value-per-dollar here I feel is not in the consumer’s favor, not when there are more powerful (and bulkier) touch-ready tablet PCs that convert to keyboard-equipped laptops that can be had this Christmas season for just a couple hundred dollars more from HP, Lenovo, et al.

I am still having an internal debate as to whether I should retain my ExoPC or sell it off. Were I to keep it, since I already have both a netbook and a large, heavy-duty laptop as well as an iPad, not to mention a hefty desktop workstation PC and a Mac Mini, my use of the ExoPC would be mainly to develop software for touch UI on Windows using WPF. But with unanswered questions regarding the accelerometer, etc., as well as the lack of confidence in any touch UI targeted software marketplaces, my confidence in the predictability this platform is quickly waning, and Objective-C / Cocoa Touch is looking more and more interesting to me. I still have my re-purchased iPad, and I still have my Mac Mini, so I’m still technically in the game for iOS development. Overall, compared to Apple’s approach to developer support for the Cocoa Touch platform, Microsoft’s developer support and guidance so far for Windows as a touch platform has been laughable at best. Microsoft is focusing not on Windows but on Windows Phone 7 and Silverlight (and their crappy Azure cloud server platform), which is a disaster move on their part because there will always be businesses depending on the full Windows platform, while consumers are losing confidence in it, and we need Microsoft’s attention when it comes to WPF and touch development. By this I mean not just developer features but also “hype machine support” and up-front guidance so that devs don’t have to dig around to see if the platform is a viable market in the first place.

I give ExoPC’s first model, and Windows 7 as a touch platform, my own personal rating of 3 1/2-to-4 out of 5. It’s fantastic that I finally have a full-blown Windows 7 experience in the slate form factor—now I can run anything I want. The ExoPC is stable and it’s solid. But the absence of the availability of a protective skin/case (which is an absolute must for slate hardware) and the poor viewing angle are among the worst problems with the unit, and issues also exist with moving parts (an audible cooling fan with vents that must be kept clear) and occasional unresponsiveness to touch input particularly for about five minutes after waking from hibernation. And I give the ExoPC UI Layer software 2 out of 5, simply because despite its genius ideas and concepts it is simply not ready for public consumption and it is a software disaster if applied to general use. The ExoPC overall with Windows 7 is neither ubertastically wonderful, nor is it an unusable waste. It is a practical solution filled with [perhaps necessary] compromises, all of them rather disappointing, to keep cost and physical weight down.

I don’t see a revolution towards touch computing happening this Christmas season, but perhaps everything is ready enough for us technologists and developers to get started now so that, should Microsoft figure out how to target the Windows platform for a touch marketplace in Windows 8, we can be prepared for that day. I do see slate computing overtaking laptop computing in the near future, but it does remain the future. In the mean time, to consumers I have to suggest the iPad over a Windows slate of any branding, but by a very small margin—Windows 7 is ready for touch, if not quite excessively, but software that runs on it is not, nor is there a marketplace. However, an ExoPC is a decent (but not exclusive) option if a consumer needs a Windows slate.


  • A real Windows 7 slate PC that does what it advertises (at least as far as its hardware and Windows are concerned)
  • Large, high resolution, capacitive touch display
  • Full support for USB, Bluetooth, and SD cards
  • ExoPC UI Layer has a remarkable if not genius approach to launching apps and managing running apps.
  • Fantastic support for HD video if the video data is not heavily compressed.
  • Strong accelerated graphics support for the likes of Media Center UI.
  • Great for Windows Live Mail, Media Center, and (manually upgraded) Internet Explorer 9
  • Incredibly stable; no BSODs!!


  • Limited viewing angle mandates the use of a stand
  • No protection accessories available at all
  • Touch interface sometimes becomes unresponsive, particularly after waking from hibernation (for about five minutes)
  • There are moving parts, namely one or more fans
  • CPU easily reaches its threshold even with the basic Hulu test.
  • Accelerometer device platform specifications are vague; drivers seem to be half-baked
  • Battery life is not very good
  • The ExoPC UI Layer is still unfinished; cannot manually add apps/shortcuts to launcher, for example, and other features are missing; graphic aesthetics need work
  • .NET or unmanaged code development support for the ExoPC UI Layer is still not spec’d and this is inexcusable at this point
  • The ExoPC marketplace didn’t work for me, perhaps it’s not really implemented yet at all?
  • Speaker(s) sound tiny and tinny.

Currently rated 4.1 by 7 people

  • Currently 4.142857/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


ExoPC Notes and Journal, Part 2

by Jon Davis 6. November 2010 04:35

I’m starting this off sitting at Coffee Plantation while listening to a live band play, although I’ll be moving about, e.g. back home, before I’m done.

  • I’m typing at a snail’s pace using the on-screen keyboard into Live Writer with my two index fingers. I just realized something else that spoiled me about the iPad/iPhone is that with the ubiquity of controls/components used for keyboard input it was relatively easy to not just offer up a keyboard, but to actually move/scroll the whole window to make room for the text area and the keyboard. Here with Live Writer I have to manually add some line breaks to the bottom of my text so that I can (manually) scroll down enough to get the input caret to stay above the on-screen keyboard. Or I can move the keyboard to the top of the window but then I need invisible hands/arms, and I can’t afford that at the moment.
  • The erratic responsiveness of the touch interface drivers has been nightmarish, but it’s a problem that may have already been fixed. There is a firmware update that is required of all of us ‘first 100’ early adopters (but not for everyone else) and I haven’t installed it yet because it requires a mouse. (If everyone had to do this I’d say this is ridiculous. I thought the whole point of a touch tablet was to eliminate mouse dependency. Even if it’s for the touch drivers to enable that mouse independence, it should be fully automated and installed in a rollback-able hands-free transaction, no?)
  • Another feature I sorely miss about iOS and Android: shifting for caps after typing a period and a space! Maybe the ExoPC’s proprietary on-screen keyboard, which has yet to reveal itself, will fix this. Then again, I’m not really using the ExoPC software.
  • I’m finding the tablet form factor in a public table-and-chair setting to be extremely awkward without a stand. The ExoPC’s display is just too difficult to see at the angle created if I set it flat down on the table unless I hover my face over it, and its shape is too short to stand it on my lap leaning against the table in landscape orientation without making its angle going the other way, pointing at my belly button, and in portrait mode it’s way too horizontally narrow to use the system naturally because the dpi which was necessarily increased by the factory for touch suitability (makes buttons bigger) also makes the taskbar and ribbon interfaces “overflow” and get cut off. The on-screen keyboard also doesn’t help, if you’re typing something lengthy up you need a wireless keyboard, or use a notebook/netbook instead. The tablet form factor is no good for any serious word processing.
  • So far with all this ranting it has taken me a whole hour to get this far just typing! Moving on…
  • Microsoft: the Quick Access bar is not the suitable place to put such critical ribbon buttons as Save. Both WordPad for Windows 7 and Live Writer are guilty of this. Very, very bad for fat (adult) fingers.
  • Strange annoyance: in Live Writer, when I tap where I want the caret to be, it goes there, but then a second later it shifts over one character. Doesn’t always happen, but maybe half the time. Might be fixed in that yet-to-be-installed firmware update for touch, I dunno. Nope.
    Caret moves over by a character after a second or so
  • Went back home to run the mandatory firmware update. The erratic loss of touch support became too much to handle while maintaining sanity.
  • Orientation detection should reexecute upon waking from hibernation or sleep mode. It doesn’t. Waking it from hibernation after having plugged it in and put it on a stand, I have to pick up the unit, rotate it, then rotate it again and put it back down before it will pick up the change of orientation.
  • Firmware installed. So far so good! Light years better! As I described in the forums, “It’s like going from anger and resentment and hatred and tears to basking in a bed filled with feathers.
  • Just fired up Torchlight again, since I hadn’t tried it since I installed all those 55 Windows updates. Sure enough, performance is better, playable even, although barely so, and I completed the first level before exiting out to log the good news. Frame rate is now something like 10 fps instead of more like 5 fps before the updates.
  • This is the fifth time, and the last time, this has happened to me. I'll leave the ExoPC running, sitting on a stand, with the A/C adapter plugged in, come back half an hour later to find it seemingly turned off (noisy fan is not running, screen is blank), and I'll pick it up and immediately reach for the power button. Nothing happens so I'll hold the power button down for 5 seconds. Whammo! I just reset a sleeping Windows, all I had to do was tap the screen but instead I frickin KILLED Windows. I consider this a bug, and the bug is in the unresponsiveness to a single tap of the power button when sleeping. Desktop machines will respond appropriately to this. However, I'm going to fix this by going into the Power settings control panel and turning off the automatic go-to-sleep-after-no-activity feature when plugged in. If it's plugged in, it doesn't need sleep. Then again, there's that annoying fan .. and I'm here in dusty Arizona with two dander-licking cats .. *sigh* ..
  • Just downloaded and installed FL Studio for music production. Buffer underruns galore, but does run and seems to be a decent DAW for touch. W00 h00! I’ll try out an external E-mu 0404 USB for outboard audio later to see if it improves the buffer underruns.
  • Downloaded and installed Oracle VM VirtualBox and ran the Android x86 LiveCD to see if I could run Android on ExoPC in a VM. It runs (after a 3 1/2 minute boot), and it responds to the keyboard, but it doesn’t respond to touch and the mouse doesn’t seem to work. So, no-go.
  • Installed EnergyXT (another music production DAW like FL Studio but lighter weight), runs great, but did hiccup a bit after a minute of looping the demo, some background task must’ve fired up. This can be tuned, I’m sure.
  • Installed Finale Reader for reading and playing sheet music. Works great.
    Finale Reader on ExoPC
  • Installed Zune. Microsoft is still not putting any marketplace software in Windows as a native browse and purchase interface; there’s an “Apps” section but it’s strictly for Windows Phone 7.
  • Really not liking the fan. If I shake or even gently rock the ExoPC, the fan groans. UPDATE: It appears I may have a bad unit. Others in the forums are stating that the fan is hardly noticeable.
  • Back at the coffee shop (now on Sunday).
  • Having a bit of difficulty Alt+Tabbing between the ExoPC interface and Live Writer. I usually close out of it entirely if I don’t need it but I wanted to look something up from the Forums quick link. The difficulty I’m having is ExoPC refusing to hide itself.
  • I’m just surfing the web and logging here. And I’ve only been using it for about 25-30 minutes. The Battery indicator in Windows says that I have 3 hours left. I feel slightly shortchanged on battery life.
  • There is a half-second delay between Bluetooth keyboard input and Live Writer. I suspect that having pulled it out of hibernation might have something to do with it. Perhaps I should reboot.
  • Didn’t log this earlier, thought I should get this in here now. When I downloaded CamFrog to try out the webcam I was pretty unimpressed with the front-facing camera. At least it has one. But it doesn’t compare to, say, a Dell XPS laptop webcam, or for that matter my HTC EVO 4G rear camera. Todo: compare the HTC EVO 4G front-facing camera with the ExoPC’s front-facing camera. (I suspect HTC’s will be better.)
  • Earlier I installed Microsoft WebMatrix to see if this thing would be suitable for lightweight web development tasks. I just fired it up for the first time and am waiting for the WordPress dependencies to download and install so I can poke at it with a real-world scenario loaded. Mind you, I don’t expect it to be very useful without a Bluetooth keyboard because even HTML and ASP.NET/PHP “programming” is a kind of word processing. However, WebMatrix has that whole “web 2.0 interface” feel with the big “touch me” buttons, so it’s very touch-friendly, or so I expect. Trying it now. So far the dependencies installation has taken about 5 minutes (takes a few mere seconds on my desktop machine) …
  • Turns out WebMatrix isn’t anything special touch-wise. But I couldn’t open site files for editing by tapping nor by double-tapping them. Even tried triple-tapping, and tried changing my tap speeds. To successfully open a site file I had to bring up the context menu on the file (hold down my finger over the file for a couple seconds, then lift) and then choose to “Open” the file. Not sure where the bug is on this. In the Database editor, I am unable to enter edit mode in the table definition grid; were it not for the Properties window I would have been unable to define column names, for example. This is a fairly significant glitch in Microsoft software readiness for touch.
  • At this point I’m really feeling like there is a strong theme here, the reinforcement that Microsoft and the overall Windows-based software industry is still pretty green to touch UI, and progress has been made (and has been truly remarkable) but still has a long way to go. It isn’t that overall Windows 7 “isn’t ready” for touch. It is. The touch-oriented interfacing just doesn’t have the spit and polish and perfection that we get in, say, the iPad or the Android. You get a mixed bag of really good touch UI and really bad touch UI all mushed together. And you stay thankful that it supports Bluetooth and USB for workarounds while you file petitions to the software vendors to ask them to clean stuff up, but really, that’s rare. Surprisingly so. Windows 7 has so many workaround mechanisms built in that it’s quite survivable.
  • It is also my impression that the Windows-based touch tablet PC (e.g. slate), especially when contrasted with the iPad, is still somewhat of a niche form factor when used as a touch tablet in that there’s only so much software you can write that is built for fingers. On this detail, the notion that there’s more software written for Windows and hence for slates than for iOS and hence iPad, I must painfully acknowledge, is not really true, or rather while it is true it is not really relevant. The relevant observation is that more touch-ready software has been written on the iOS than on Windows. Fortunately, I have an ExoPC on which one of the better touch-ready platform interfaces and marketplaces has been built, so if someone must have a Windows-based slate PC, and touch is intended to be used over, say, keyboard or pen, then ExoPC is definitely a good bet. However, as it is still beta software I am still waiting for some spit and polish. Their choice not to use WPF is pretty painful, as it feels clunky compared to what it could have been. But it is at least a quite useful and functional proof of concept, and I feel the interface concepts are world-class, if simple.
  • I still need Office 2010 with OneNote on here before I can wrap up this log. I also haven’t tried inking with my finger yet.
  • This log entry is my attempt to use the ink feature of Windows 7, rather than the on-screen keyboard. It's something to get used to, for sure. As the tech is new, I'm sure I look kinda silly poking and drawing on my tablet here at the coffee shop, but I'll definitely give it to Microsoft that they have put a TON of money and effort into hand recognition! I write with chicken scratches, and with my fat finger even I can't read the crap I'm drawing on the screen, yet Windows is doing an *amazing* job at figuring me out! In terms of productivity it's as fast as using the on-screen keyboard, if not faster. 
    Microsoft Ink on the ExoPC–Writing With A Finger
  • not responding to touch (video not playing) within Chrome with the touch add-in. Works in IE9.
  • Performance is getting really clunky for some reason. Chrome was locking up on Flash, and this Live Writer window scrolls at like 2 frames per second. Again, I need to reboot, but I keep hibernating. Rebooting didn’t fix.
  • Battery’s dead. Been about 3 1/2 hrs. Heading home to plug in.
  • I still have yet to install Office 2011 w/ OneNote, but right now I’m just going to wrap this up. At issue is having an Office license; I seem to have misplaced my old MSDN keys from my job from before I quit. Oh well; for now I can get by without it, and others will also be reviewing ExoPC and some of them are reviewing OneNote on it, I’m sure.

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


First impressions of ExoPC and of Windows 7 as a tablet PC OS (Part One)

by Jon Davis 3. November 2010 18:52

Welp, I'm writing this on my brand spanking new ExoPC with a paired-up Apple Wireless Keyboard (the mini one that works well with the iPad). The ExoPC just arrived and I've used it for a while now.

These were my thoughts and journal as I pulled it out of the box and fired it up and made use of it. FYI this is neither a review nor a fanboy unboxing, this has all the ugly bits of what I DON’T like and what DOESN’T work along with what does. It’s not just ExoPC I’m looking at here, either, it’s Windows 7 as a slate OS.

  1. Good, no fingerprints nor smudges on the back by the ExoPC staff upon arrival. I was worried about that. Unfortunately, the material is the same as what I thought it was; scratches and smudges will show, so this will definitely need a case/skin.
  2. Strange shape, the corners. Nothing I didn't already observe from YouTube, etc., but holding it in my hands and calling it mine, after using an iPad, .. kind of an odd shape. Viewed in landscape mode, the top bezel is narrower than the bottom bezel.
  3. Hm. It's not turning on. Is it a dud? Where's the plug, maybe the battery's drained ...
  4. Plugged in, still not turning on. Oh. Just hold the power button down for like 5 seconds. Hrm. Shoulda read that Quick Start Guide. Wait, no.. the Quick Start Guide doesn't mention it.
  6. Hm. This screen. It's not Apple. Don't get me wrong, it's not a bad screen. It's just .. well, it's not Apple. Apple is the shiznat when it comes to beautiful screens. They only use the most beautiful, most brilliant affordable screens man can produce. ExoPC is not Apple. Hence, this screen. It's like a cheap netbook screen. Have you ever bought a new cheap laptop and the screen looked kinda .. well, glittery and flourescent? This screen is kinda glittery and florescent. And it still has some problems being viewed at an angle. It's like a low-end laptop screen in terms of appearance. Sorry ExoPC, I have to be honest here. EDIT: Despite colors issue (it has a painfully blue tint, and is really not very brilliant), at least it’s pretty high-resolution, and that matters a great deal to me. I still like it.
  7. OK, this is something I think Microsoft needs to fix. When tapping on something, a fat finger will go down on one area, then come up on a slightly different area. iOS and Android are truly amazing at figuring out where I really intended to tap, in fact I can usually get my fat finger to tap within about two three pixels of my target. But with Windows 7, as the finger comes back up and the tap becomes a mouse click, the mouse moves during the up-stroke. Let me say that again: the mouse moves down while the finger comes off the screen when tapping, causing mouse "clicks" (taps) to miss. It's horrible, and requires an extreme amount of care when tapping. Fortunately, this is a vertical problem and not a horizontal problem; I've made a number of edits to this very paragraph by tapping next to the word I want the caret to edit, and it has worked flawlessly with each tap. My frustration was with, for example, drop-down menus and dialog buttons.
  8. First thing I saw after initial setup: Windows 7 desktop. ExoPC software must be launched.
  9. First thing that happened when launching ExoPC software: Got a dialog message saying that I must download and install a mandatory update. Tapping OK did nothing. Tapping OK again brought up full-blown Internet Explorer, which in turn brought up the security dialog for allowing for a file download. (ExoPC: Guys, this needs to be changed to an automatic download and install, don't use the web browser for this. Think Xbox 360 experience.)
  10. Prior observations of the ExoPC software based on watching YouTube videos: I sense a lot of love. I think there is a lot of Apple-like brilliance in the way tasks are exited on the right side. I don't like the sideways roll-in; were this built in WPF it could have been a lot cleaner. I absolutely hate the aesthetic of the "W" "W" "W" button-like graphics for the web browser!! Yuck!! .. and completely unnecessary / non-functional.
  11. First observation of the ExoPC software after update: ExoPC's designers need to use WPF, not Silverlight. WPF is more tailored for hardware acceleration. Also, as I am hearing the "Navigate Complete" sound from Internet Explorer when tapping into sections, unless they invoke this system sound manually I can tell that the ExoPC screens are HTML4-based using WebBrowser objects. Slate tablets are much more suited for WPF-based software and software developers need to stop using clunky technologies when creating slates.
  12. Second observation of the ExoPC software after update: ExoPC's designers need to watch this video which I just watched yesterday:
    Case in point: The software is artful and useful, but a bit chaotic and not very structured and organized. Everything seems to be laid out somewhat randomly.
  13. Third observation of the ExoPC software: Those circle images for "W" "W" "W" in the web browser that's launched by the ExoPC software .. still yuck. Now that I've seen the other app icons, those are kind of yuck, too. The graphic design by ExoPC is good but not very good and definitely not world-class like Apple is.
  14. First thing I manually downloaded: Google Chrome (made it default).
  15. Second thing I manually downloaded: SiliconDust HD Homerun drivers so I can test watching HD television over WiFi.
  16. First adjustment I rushed to make: Windows Explorer; Alt+T,O (Tools --> Folder Options); Click items as follows: Single-click to open an item (point to select).
    This makes Windows 7 behave like iPad and Android as far as launching apps goes.
  17. Second adjustment I rushed to make: Control Panel -> Sounds -> Theme: Characters
    That "Navigate Complete" bump sound in both Internet Explorer and (AAACCK!!) in the ExoPC software drives me absolutely bonkers as it reminds me of Windows 98. "Characters" is a nice hi-tech sound scheme, and its "Navigate Complete" sound mapping, which I might still turn off, is less Windows 98-ish.
  18. Next task I performed: Set up Live TV on Media Center with HD Homerun, while starting these notes.
  19. Bummer. The HDMI out is the mini-HDMI sort so I can't test the HDMI out yet.
  20. Next observation about Windows 7 and touch interface: You know those little drop-down menu buttons next to toolbar icons, like for example the narrow down-arrow button next to the bullets toolbar/ribbon button in WordPad that lets you choose what type of bullets or numbering you want to use? Yeah. It's rough having fat fingers. Amazingly, the horizontal accuracy of the screen is really not bad, though. Thank goodness they're just narrow and not also short!
  21. Ooo. Confirmed, Media Center not only looks like it's surely touch-ready, it is touch-ready! Yaay! Also, live HD television works fine on the ExoPC over WiFi, so the graphics card is indeed able to handle that. There was some bandwidth garbling at first (for about five or ten seconds) but it eventually evened out and I watched the next 30 seconds or so flicker-free in 24 fps @ high resolution.
  22. Bummer. Google Chrome is not touch-scrolling, and apparently doesn't support multi-touch, at least not at any self-detecting default behavior. I have to use the scrollbar. Oops, scratch that, I do have to still use the scrollbar, but pinching will adjust the font size. *sigh*
  23. Hulu test @ 360p: Functional, but pretty low FPS (like, 5-10 fps). Live TV in HD from HDHomerun will look good because real TV from HDHomerun is not heavily compressed, but the heavy compression in Flash video at Hulu is a burden on the CPU that just doesn't look very good on ExoPC. I ran the same show (The Office: "Costume Contest") in split-second-precise parallel, on my first-generation Mac Mini which is running at 1080p resolution, and the FPS on the Mac Mini is much, much higher (like, maybe, 15-20, which is perhaps the source stream FPS). I'm not running FPS diagnostics here so I don't have the real numbers, but anything below 60 fps is visible to the human eye so it's reasonable guesswork.
  24. (Stepped out for an errand) Returned and noticed that the screen compared to my desktop screen is extremely blue. The white background for this text editor is light blue, not white.
  25. Next observation: Not pressure-sensitive at all, as I tried poking at it with the back of a pen and nothing happened. (I guess this is a feature, not an issue.)
  26. Sometimes the on-screen keyboard doesn't "take" pressing the enter key or dragging a window. The previous line item (and this one) was entered with the on-screen display, but after shifting focus or somesuch activity nothing happened when I tapped the Enter key until I tapped some letters or something. Strange. And the keyboard window would not drag just now until I shifted focus to Wordpad, then back to the keyboard, or something. It's one of those difficult-to-reproduce things, but I think it might have something to do with the fact that I had stepped away from the unit overnight, and we all know how Windows has to reorient itself to the presence of a user for a few seconds if the user was away for a long time, as Windows likes to hunt for mice at night, etc. Otherwise, I'm sure this behavior won't happen while typing or doing just one thing, it would only happen if you fake out the UI, .. hey, what's that over there?!
  27. Off topic.. hey Microsoft, when you gonna put the user's picture in the Personalization control panel (instead of the User Accounts control panel)? Can't get more personalized than setting up your picture.
  28. Downloading Steam.
  29. Rotate detection / auto-rotate is not working. Millennium is running, option is checked.
  30. Ugh, Steam login doesn't show on-screen keyboard button. Using Bluetooth keyboard.
  31. Installing Torchlight (from Steam) to see what happens. Torchlight is like Diablo, and it should be touch-friendly because so much of the game is just mousing over the monsters or friendly dialog characters and then left-clicking the mouse.
  32. Oops, just noticed that there are 55 Windows updates waiting for me. (Holding off for a bit.)
  33. I love the iOS-like touch behavior of WordPad. It scrolls with a flick and the whole window border moves like a spring when you reach the end.
  34. Sometimes buttons just don't press the first time. I know the tap itself "took" because I see the water ripples effect, and I know the pointer didn't miss because the arrow and the touch location indicator (a little tiny square) is right smack on the button, but only a second tap will sometimes "take". This could be a real, genuine problem; in games, it could ruin the game, and on a medical software interface it could mean someone's life. Just sayin'!
  35. Alright, I just got Torchlight installed. Loading Torchlight was very slow. There's a problem with the touch interfacing here; what seemed initially like random buttons getting pushed, it turns out that, at least in the Torchlight menu UI, screen taps do not invoke a mouse-move first, so wherever the mouse was last dragged, that's where the screen tap will *click*. This is an issue; screen taps should invoke a mouse-move event first before mouse-clicking, rather than just mouse clicking. Knowing this, I found it much easier to navigate the menus and set the screen resolution in Torchlight and set up a new character. Unfortunately, while I did manage to get the game to load, and the game does load and it's even (more or less) playable, the FPS rate is so low (feels like 5 fps) that I knew I wouldn't be playing this game on this device.
  36. Next up is World of Goo. WoG works great, it's very touch-and-drag friendly.
  37. I noticed an issue while playing WoG. If you tap in three different places on the screen very fast, tap-tap-tap, suddenly all touch functionality will cease. You have to stop touching the device altogether for a few seconds before it will start responding to touch again. I guess it's a safety mechanism for pressure-sensitive tablet PCs to keep them from tapping everywhere when carring such a device, but that safety mechanism isn't appropriate here (on the ExoPC which is strictly capacititve). I hoped this might explain my on-screen keyboard problems earlier, but it didn't seem to affect Wordpad nor the on-screen keyboard, as of course it shouldn't since an on-screen keyboard would have lots of keys to tap all over the screen.
  38. Aaand after editing something above I seem to have lost my Bluetooth connection to my keyboard again. It was hell getting it to sync in the first place. DON'T RECOMMEND THE APPLE WIRELESS KEYBOARD! (Crossed-out, see below.) Even after re-syncing it won't work.
  39. Gonna try running all those 55 Windows Updates, see if that fixes the Bluetooth issue etc.   … Nope.
  40. Ohh LOL.. figured out the Apple Wireless Keyboard problem! I had previously sync'd with my iPad which was all the way in the other room. I had to go in there and turn Bluetooth off on the iPad. Now the keyboard works fine with the ExoPC. Ha!
  41. Nice. Auto-rotate works now after installing updates and rebooting.
  42. Time to test WPF readiness for touch. I sought out some WPF sample apps and found this: .. but unfortunately when viewing details of a person I had added, the "Done" button was below the viewing threshold, and there was neither a scrollbar nor automatic scrolling behavior while attempting to drag the details panel. Rotating to portrait mode, I was able to reach the 'Done' button.
  43. .. but having switched to portrait mode, I realized how ridiculously tall and narrow the ExoPC is. On one hand it'd surely be no good for 8.5"x11" type of document reading (too tall and narrow), but then I realized that, say, Acrobat Reader, will always have a title bar and toolbar, unless viewing in full-screen mode, so really it all balances out.
  44. At this point I have become accustomed to using touch as my mouse pointer, when it works, so long as I am using the Apple Wireless Keyboard.
  45. Looking for Silverlight multitouch demos. is crap. Bad demo. is the place to go. Ugh, Silverlight is slow in Chrome on ExoPC, scratch that. WPF demos. in Internet Explorer is the place to go. Wait. I tapped "Enterprise". Where's the download button? Oh good grief, forget this...
  46. Alright let's download and install Windows Live Essentials and post all this up on my blog ...
  47. (Rebooted for Windows Live Essentials just to get Live Writer .. *facepalm*)
  48. Pasted here into Live Writer, yay. Hey .. nice, the Live Writer default font size, which is relatively small compared to WordPad, looks really good being so small. This display really is pretty high-resolution. Very good detail here.
  49. Live Writer is forcing me to invoke the taskbar launcher button to get at the on-screen keyboard to make edits. No handy keyboard button as I tap. Also, coming back to the on-screen keyboard again I’m again seeing the keyboard have difficulty maintaining touch responsiveness. It’s as though it’s daydreaming and forgetting about me altogether for as long as 10 seconds. If I focus back into the app and back into the keyboard it usually comes back, or I can wait a bit. Still, on-screen keyboard buttons erratically just decide not to respond even as I add this.

Alright, that’s enough this round.

Currently rated 4.2 by 5 people

  • Currently 4.2/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


ASP.NET: Converting X-Forwarded-For To REMOTE_HOST

by Jon Davis 3. November 2010 03:18

Just keeping notes here. If you’re using IIS Mod Rewrite or if you’re running a reverse proxy or a non-transparent load balancer, you may find the request URL server variable mismatching and the REMOTE_ADDR server variable coming back as the IP address of the proxy server or as the load balancer IP. This is no good, because all of the user’s IP address information is lost. Well, almost lost. What should happen is the the reverse proxy is supposed to add an X-Forwarded-For HTTP header in the request headers containing the user’s IP address, as well as X-Original-URL. This can then be read back by the web server.

The problem is, even with X-Forwarded-For being passed in to the web server, REMOTE_ADDR is still wrong.

I’m looking for the easiest path to just fix this once and for all without delving into web application code. So I’m playing with this simple global.asax tweak to fix this. I haven’t fully tested this yet so, again, just taking notes here ..

void Application_BeginRequest(object sender, EventArgs e)
var ss = Request.ServerVariables["SERVER_SOFTWARE"];
if (!string.IsNullOrEmpty(ss) && ss.Contains("Microsoft-IIS")) // doesn't work w/ Cassini
string SourceIP = String.IsNullOrEmpty(Request.ServerVariables["HTTP_X_FORWARDED_FOR"])
? Request.ServerVariables["REMOTE_ADDR"]
: Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
Request.ServerVariables.Set("REMOTE_ADDR", SourceIP);
Request.ServerVariables.Set("REMOTE_HOST", SourceIP);
string OrigUrl = Request.ServerVariables["HTTP_X_ORIGINAL_URL"];
if (!string.IsNullOrEmpty(OrigUrl))
var url = new Uri(Request.Url, OrigUrl);
Request.ServerVariables.Set("SERVER_NAME", url.Host);
Request.ServerVariables.Set("SERVER_PORT", url.Port.ToString());



Powered by BlogEngine.NET
Theme by Mads Kristensen

About the author

Jon Davis (aka "stimpy77") has been a programmer, developer, and consultant for web and Windows software solutions professionally since 1997, with experience ranging from OS and hardware support to DHTML programming to IIS/ASP web apps to Java network programming to Visual Basic applications to C# desktop apps.
Software in all forms is also his sole hobby, whether playing PC games or tinkering with programming them. "I was playing Defender on the Commodore 64," he reminisces, "when I decided at the age of 12 or so that I want to be a computer programmer when I grow up."

Jon was previously employed as a senior .NET developer at a very well-known Internet services company whom you're more likely than not to have directly done business with. However, this blog and all of have no affiliation with, and are not representative of, his former employer in any way.

Contact Me 

Tag cloud


<<  May 2021  >>

View posts in large calendar