Showing posts with label Tech. Show all posts
Showing posts with label Tech. Show all posts

Tuesday, March 12, 2013

Chromebook Pixel: Another follow up

I rarely buy something I can't touch first but after I saw the Pixel announced I knew exactly what they did. They made the perfect developer laptop, and that's what their intention was.
I think most people are like me, and what I am looking for is:
  • Full size, fully functional keyboard. I was skeptical at first- after I ordered the machine I realized I hadn't even looked at the keyboard layout. THen I looked online before it shipped and saw things like a power button, a search key, no function keys. That was off-putting but nothing was really missing. Search key instead of caps-lock. That's better. The keys that I thought "weren't" function keys, actual are. They just have actual functions now.
  • Bright big display. With 4:3 aspect ratio you can get more screen by going vertical. Other manufacturers with full size keyboards that have 16:10 or 16:9 won't get as many vertical pixels. This display is actually quite huge considering the amount of pixels it has- making it 'bigger' than my 30" monitor at 2600x1700. But not only is it huge, I can use it well too. The problem I've had with the 30" is having to move my head to see all those pixels on the screen. I end up using that display at a very crisp 1280x800 instead. On the pixel I can use all those pixels, and see them all. The display is small, but huge.
  • Thin, yet sturdy. It's not made of plastic, this thing is pretty solid. Some laptop screens are way too thin and seem like they would bend or flex. This one is thin but solid. I threw the thing off my bed last night at 3am after I fell asleep watching a documentary on North Korea- the thing SLAM on the floor probably scare the crap out of the guy living below me. Not a scratch. I thought the hinges would have bent or something, because this thing hit really hard, but nothing. No scratch.
  • Expansion, ports: Pixel has SD card reader to expand memory. I would have been happy to get USB 3 but to be honest I don't really transfer files too much any more. They are saved on the network.
So far I'm loving my Pixel, even though to be honest it's not my primary because it just stays home for now. I do some work on it from home but I am tempted daily to bring this to work to start using there because the feel of this machine is just great. My only dislike for the machine and probably the main reason I wouldn't use it at work is the glare. I hate screens with a reflection. This one is great to work at home but at work I'll have other light sources to ruin the experience.

Tuesday, March 5, 2013

Chromebook Pixel Follow up: Linux chroot, Steam

Since my last post I tinkered a bit with setting up Linux on this machine using Crouton. This is far better than installing a separate OS and booting into it. With Crouton all I have to do is pop open a terminal (ctrl-alt-t), type shell, then sudo startxfce4. The X display pops open in a seconds and I'm up and ready. To toggle between this environment and chrome is simple too- ctrl-alt-back is chrome, ctrl-alt-forward is developer console,  ctrl-alt-refresh is the X window. It is also easy to access ubuntu from the shell without X, this way I have access to all those great CLI software packages from the terminal just by entering the chroot.  Enter:  'enter-chroot'.  Crouton also can be configured to install more than just xfce4 environment,  however xfce happens to be my favorite of the ones included with crouton. The steps I took to get this up and running were found in this brief article at lilputing.com.  I then took the steps necessary to set up my development environment for work stuff; got my build of my software going after quickly configuring and installing its dependencies. Next I went about tweaking some of the environment configuration so the texts were more readable. I tried several DPI configurations and font sizes. It seems that not all the fonts scale according to the DPI setting, and unfortunately the containers that hold the texts don't stretch in most applications. Eventually I  just settled for something in the middle. Not scaled as nicely as in ChromeOS but not too small that I can't use it without eye strain.

After finishing with dpi tweaks I took the time to check out Steam for Linux.  I hadn't tried this yet so I didn't know how far I would get. Apparently there are very few titles ready for Linux from the games library I have. I wasn't really looking to sit down and seriously play any titles, although it would have been nice if that were an option for counter-strike source.  I ran through a bit of half-life and it was quite strange running it at 2600x1700. From far away (in game distance) the textures look intricately detailed, but moving closer they just start to blur; pixels grow. It is strange to see at the same time very detail where i can hardly see the lines of tiny pixels along side a large scaled up and stretched texture over a crate.

After all the tweaking, reconfiguring, etc- I am finally settled and I'm starting to really like the configuration I am left with. I am still not at the point where I can honestly say I wouldn't be happier with a MacBook - but at least now it is comparable.

Thursday, February 28, 2013

PIXEL

Today I received my Google Pixel. So far, it is fantastic. I have a few comments about some of the features that struck out to me:

First of all- it's just chrome:
I saw chromebooks in Best Buy stores and read about them briefly online but always assumed that the Chrome OS had to be at least a little bit more than just chrome- it is but it isn't All you get is a task bar and system tray and a way to tile your chrome windows. Absolutely nothing else runs outside of chrome, and what I found more surprising is that all your configuration for the system is through chrome. I guess I missed this part when I had read about them earlier- at first I was OK with this but now I'm a bit scared. I'm feeling a little trapped but I just got to let go of it all and embrace the chrome.

Keyboard & Track Pad:
Great to type on- great size and arrangement- keys feel very natural but the travel on them is quite minimal, feels like some of the keys may not depress straight down, but at angles- but upon inspection this isn't the case. All the buttons are great- the big track pad works just like my old MacBook except some of the gestures I was used to aren't here such as 2 or 3 finger swipes.

Battery:
For some reason the battery life was not that great the first day- I tried charging at the office all day and when I got home it was still at about 50% charge- I'm assuming there is some smart charging technology involved trying not to over charge? Maybe it needs to discharge first? On day 2 I got a full charge after an all night plug-in and found the battery life to be mildly satisfactory.

Display:
Can get plenty bright and it has a wide range to choose for brightness.  I never cared for glossy displays because of glare. The touch screen is quick and accurate but I doubt I'll use it much. Actually, it is kinda annoying because I'm always brushing away dust that lands on the screen- now when I do that I may accidentally change my cursor position or click something.

Netflix:
Playing video sounds amazing. I thought that the way the speakers are configured on the machine that the sound would be obstructed if I the laptop were sunk into a blanked when I'm laying in bed but the sound is amazingly clear.

PROBLEMS:
Aside from the ones that I expected prior to the arrival of my pixel, I was surprised to discover the following issues:

Netflix:
After setting up my pixel to go to Developer mode I had a feeling Netflix would be blocked, considering it is not allowed in Linux on Chrome. I was correct, no Netflix for Dev mode.

Speed:
Even though this is the top of the line chromebook and comparable in cost to macbook (almost 1500 after taxes) performance is kinda crappy. I've noticed performance issues running youtube video and other slowness hickups are apparent compared to other machines I use.

No Java:
Java support is non-existant on Chromebook. I went to install Minecraft from chrome, installed, but the plugin could not load. Later found out that Java is not on chromebook.

Poor printing support:
I have a network printer. Unfortunately the only way to print from chromebook is through cloud printing service requires the printer to somehow connect to the cloud service independently of the chromebook. My printer does multi function, scan and fax, so obviously I can't have these either.




Wednesday, April 25, 2012

Microsoft FUD: in plain sight

Microsoft is notorious for playing a little dirty in the PR department.  They do it all the time by having technology news and bloggers write about their competitors (mostly Google).  These articles don't outline how the competitors product is inferior, instead they focus on more political issues like social impact, security, privacy, or freedom.  The latest article shines a light on file ownership under Google drive. The adulteration by Microsoft is palpable. You can usually spot this type of behavior from Microsoft since it always follows a formula which causes all of these types of articles to read similarly.

  •  Immediately outline conclusions.  This will be as early as the description for the link that brought you to the article.  Not the headline itself, but how it was described from the source that you were linked from.  This type of trick is now becoming less noticeable since descriptions based on headlines are becoming more mainstream since websites like Reddit became popular.  The effect of this step sets the tone and allows readers with limited attention span to stop reading.
  •  A positive mention of a Microsoft product.  In most critical articles when the author is about to lambast the subject there is little or no mention of competitor products.  When there is mention it is usually because that competing product defines that market, E.g mentioning Ebay when discussing online auction houses.  Microsoft on the other hand will mention their products regardless.  An example could be an exposition about Java's license agreement.  The article may be trying to throw a FUD hammer because the contents have changed which when interpreted in a certain way may expose Java as a being evil in some way. You can tell if the article was written by Microsoft if there are suddenly miscellaneous mentions of Silverlight.
  • Back pedaling. The article will have some sort of backpedal at the end that either completely extinguishes the initial flame or a redaction or article update stating that some fact or source was updated. This will not only contradict the initial fud feeling that brought you to continue reading but will also make you feel like you wasted time.
I welcome anyone else who read some suspicious articles in the past to post links to them in the comments section here so I can refine my search for Microsoft fud speech.

Tuesday, June 21, 2011

Entropy Key to work with Fedora

If you don't know what this device is, it is a small USB key that is inexpensive TRNG (True Random Number Generator) device. If you decide to get one of these things and you are not computer, programmer, linux savvy you may have a little trouble getting it up and running without some clear guidance, so I have put together some reproducible steps for installing:


1) I didn't bother trying the provided RPM packages since none were packages specific to fedora

2) Lua is already installed on most systems but you will also need lua-socket, an add on for lua that provides sockets support. You can't just install the lua-socket from yum- you have to make small changes to lua-socket and install manually. The changes required will (a) install lua to the correct place for fedora, (b) add configuration for UNIX domain sockets for lua, which are not enabled in the fedora package.

I did a google search to find the changes I needed (google: lua socket unix diff). The result I found was for FreeBSD but it works the same:
[1] on freebsd-8 (CURRENT):
/src/localcode/lua/luasocket-2.0.2
0  # hg diff
diff --git a/config b/config
--- a/config
+++ b/config
@@ -51,7 +51,7 @@
# Compiler and linker settings
# for Linux
CC=gcc
-DEF=-DLUASOCKET_DEBUG
+DEF=-DLUASOCKET_DEBUG -DUNIX_HAS_SUN_LEN
CFLAGS= $(LUAINC) $(DEF) -pedantic -Wall -O2 -fpic
LDFLAGS=-O -shared -fpic
LD=gcc
diff --git a/makefile b/makefile
--- a/makefile
+++ b/makefile
@@ -10,6 +10,8 @@
INSTALL_SOCKET_LIB=$(INSTALL_TOP_LIB)/socket
INSTALL_MIME_SHARE=$(INSTALL_TOP_SHARE)/mime
INSTALL_MIME_LIB=$(INSTALL_TOP_LIB)/mime
+#
+INSTALL_UNIX_LIB=$(INSTALL_SOCKET_LIB)

all clean:
      cd src; $(MAKE) $@
@@ -45,6 +47,8 @@
      #cd src; $(INSTALL_DATA) $(TO_MIME_SHARE) $(INSTALL_MIME_SHARE)
      cd src; mkdir -p $(INSTALL_MIME_LIB)
      cd src; $(INSTALL_EXEC) $(MIME_SO) $(INSTALL_MIME_LIB)/core.$(EXT)
+       cd src; mkdir -p $(INSTALL_UNIX_LIB)
+       cd src; $(INSTALL_EXEC) $(UNIX_SO) $(INSTALL_UNIX_LIB)/$(UNIX_SO)

#------
# End of makefile
diff --git a/src/makefile b/src/makefile
--- a/src/makefile
+++ b/src/makefile
@@ -47,7 +47,7 @@
      usocket.o \
      unix.o

-all: $(SOCKET_SO) $(MIME_SO)
+all: $(SOCKET_SO) $(MIME_SO) ${UNIX_SO}

$(SOCKET_SO): $(SOCKET_OBJS)
      $(LD) $(LDFLAGS) -o $@ $(SOCKET_OBJS)



3) Install the patched lua-socket (command: make && make install )

4) Follow the rest of the original instructions for generating a key and running the provided daemon.

To test that your key is working you can run one of the stat tools or just cat /dev/random..

Wednesday, June 3, 2009

XBox 360: Project Natal

Project Natal aims to be pretty much everything I was working on with cameras and stereoscopic vision in college. The setup is eerily the same too, with dual fixed cameras negotiating the 3D scene. Youtube video here. Since I have walked this path, however short it was for myself, I do have some thoughts about this project and potential limiations:

Camera speed and synch:
Both camera's have to synch frames (ideal) or do some extra processing to negotiate and calibrate themselves for the difference. This is a bit processor intensive to have a perfect synch of the scene and to negotiate the differences if they are not hardware synched.

Camera resolution:
I am hoping that Microsoft realizes how much money thay can make from this type of system and invest some real money to help offset the costs for the consumer on the hardware. High quality (resolution/fps) cameras don't come cheap and are what is needed to have this system accurate.

Camera auto focus/ auto brightness and color calibration:
The operating space for these cameras will likely be in very bright rooms with constantly changing lighting situation- between daylight with constant change in brighness due to clouds, to directional and poorly lit indoor lighting. I have a feeling infrared light projection may be ok for motion and object detection and tracking, but change in lighting situation or ambient artifical light may cause innaccuracies.

Processor intensive, highly parallelizable:
I am guessing this system will not be on xbox 360 considering hardware limitations, and will likely instead be on some platform that can take full advantage of the latest in parallelizable technologies and stream computing- such as nvidia CUDA or OpenCL. I can see this being the ideal application for next generation hardware consisting of hundreds of processor cores chugging away at image processing.

I really really hope this hardware comes out because it is exactly the setup i had been playing with years ago and it would be a dream come true to see it in its final/finished form the way I had designed it.

Tuesday, May 19, 2009

Stitched tabs? Mozilla ( my mozconcept )




I can't think of a good name for it but the idea is simple: all tabs are stitched together at the seams and allows for viewing more than one web page at a time and to scroll through open pages. Here are the core concepts:

Watch the VIDEO here which explains it much better:
http://vimeo.com/moogaloop.swf?clip_id=4723419


      1. All tabs are stitched together. The open pages are visible from one to the other and parts of adjacent pages may or may not also be visible.


      2. Borders between pages are adjustable to reflow the layout of the page.


      3. Scaling of each page independently from eachother so the user can work with them completely separately.


      4. Bottom horizontal scroll bar is the default scroll for moving between tabs.


      5. Scrolling for each is independent from the rest


      6. Sidebars can be used to export parts of selected text from one of the browser panes to perform complex actions- like perform a google search in the pane when it is selected or dragged.


      7. Dragging from favorites on sidebar creates new tab- dragging action defines width of the page (as it is loading).


      8. New tabs created in the center with default width, pushing contents to left and right.


      9. Colors flash when the default page changes (the one that has focus in the center) to illuminate which pages are which and which one has focus on the address bar.


      10. Tab labels become editable or accept new addresses.


      11. Border between pages AND border between sections of horizontal scroll bar can be used to adjust widths of the pages.


      12. Width of the tab on the bottom width relative to the page that is being displayed.
      Update: I just saw a video about weave- a new feature targeted at mobile synching of tabs. I think my idea would be a good fit for use in a mobile browser and would make weave more powerful. See the video I saw here: http://vimeo.com/2569344


      Mozilla Labs Design Challenge - Official Concept

      Tuesday, May 12, 2009

      Me using Windows 7 RC1 on my Lenovo T61p

      This week when I bought my X25-E I spent an entire day playing around with different configurations of software: XP, vista, and Windows 7 were all at my finger tips. I started by installing XP from the Lenovo recovery disks. I figured to get the driver support and all the IBM drivers I would want to stick with this setup. After running the restore and trimming the fat I went through installing a bunch of crap and then realized the install was messed up. The security manager for Lenovo had the wrong password and I would need to restore again to fix this. I decided to play with the drive briefly and then looked over to my shelf with Windows 7. Why not.

      After installing windows 7 (straight forward) i was worried I wouldn't be able to have acceleration for the onboard video. I had trouble in the past obtaining drivers because the nvidia drivers don't always work if they don't come from the manufacturer (I have no idea why they do this). Luckily it just worked out of the box. Windows update found all the drivers for my hardware and I was good to go! Of course, I hadn't realized at the time that I was wrong. I still have no microphone which I have not yet looked into. I realized this when trying to skype a conference call today and had to resort to using the macbook.

      So far- I like it. Windows 7 seems to be snappy and fast. The interface is nicer than vista (yet familiar) and the UAC settings are easier to access and adjust. The distinct feeling is that microsoft realized with this releas that they could not go down that road they tried with Vista- which was to make software inately incompatible in an effort to try to force all developers to write software for it. The only things I dislike are moving files on a remote share gives a warning each time with no visible way to disable this. I have also noticed some hickups- where the mouse seems to stick for a moment or the keyboard keys keep pressing by themselves. It seems almost daily that there are updates for the system and I can't actually remember the last time the sticking happend (this morning maybe?). I had updated earlier today, and for all I know It could be fixed by now.

      Me and my Intel X25-E

      This week I purchased and installed an obscenely expensive 64 gb drive for my laptop ($800). I had read an article from Joel Spolsky about the 160gb X25-M drive that he test drove. He was looking to see if he could cut down his compile times by using a faster drive- which didn't happen. His description of how snappy things ran on the solid state disk drove me to thinking I had to have one. I looked into the specs and found that the X25-E had a considerable performance lead on the X25-M. The E also did not exhibit slowness as the drive filled as the M does which is common with Solid State disks. The E is also more reliable for top speed being sustained over the ownership of the drive and was much more likely to last longer. All that being said I just went for it.

      Performance? This thing is great! My main purpose for buying this drive was to quickly be able to index and perform queries on development databases for data mining projects I am working on. I noticed a tremendous speed increase here. Unfortunately, no numbers- but I did notice that when I was running a very large query that took several minutes the CPU was 50% (100% load on a core) and my system was still extremely fast and snappy. Finally I can run my machine into the ground with work without having usability issues with other apps. I was able to open a very large VS9 solution in les than 2 seconds even after high CPU load, as well as all my other apps.

      For a long time I have been resisitant to using FireFox since it became as bloated as it is today. It would take a considerable time to start so I opted for running chrome instead. Now that firefox starts under 1 second, I can again use firefox as I did back in teh early days of its existence.

      To anyone who may be reading this that is not sure if it is worth it: it is. At least get the X25-M drive which is considerably less expensive. I am not sure if the E really makes all that much of a difference (read Joel's blog post).

      Tuesday, January 27, 2009

      Why not: "Windows sold separately"

      An operating system is essential for the use of all computers- but Microsoft Windows is not.  I read a while ago about these embedable linux environments that run off of the BIOS or something, so that when the machine boots it has an option to go into a very minimalistic environment to do basic things such as browse the web.  Why not make that standard, and have Microsoft Windows the option?  What if the standard for all new computers was to have this embedded free environment to do most tasks such as Browse the web and an office suite (OpenOffice).  Could we then say 'Windows Sold Separately'? 

      While we are at this- we could also mandate that proprietary software operating systems be 'loaded' as a memory module (much like expanding memory in my notebook) .  This should make complete sense:

      1) Load time will be extremely fast for the operating system if contained on read only flash.

      2) Read only flash will prevent hacker problems and make restoring the operating environment easy.

      3) We could finally do away with having Windows computers loaded as standard.  What if I want to keep my 'old' windows from my old computer?  If it was on a flash card, I could re-use my previously purchased copy.

      4) Since it is installed as a memory module would- it can still be 'custom configured' at the manufacturer- and will be secure enough so that no one can just remove it without unscrewing your computer (literally and figuratively).

      Linux dead on netbooks?


      I saw some flame bait over on some website about Windows 7 'killing linux on "netbooks"' and based on the article and some of the comments I decided I had to say a few things:

      1) It is often the case people claim there are too many distributions of linux which causes the problem. This is true and false. There are too many, but the problem is just that- it makes things seem confusing. When they are installed they are identical except some extremely minor differences. 2) People say 'windows is beating linux on 'netbook' (not to mention the term 'netbook' is copywrite of psion, which runs neither windows nor linux). This is also true- because most people want windows. This would not be true if Microsoft decided to give XP away for next to nothing (actually, I think it cost $0 in china now) in which case it is at least in a $ case, on equal footing. If this is always going to be the case, good. But if these manufacturers actually pay for windows- then theres a problem. At least offering a 'no operating system' version should be customizable, but since they often package everything at assembly time this actually adds costs as well. I think the ideal solution would be for XP to come on a SD card- and it can be sold separately. 3) People not only say (obviously this article was flame bait) but also think that this is the 'final nail in the coffin.' This has been said every day of every month of every year since before 1.0 was in the early 90's, so it doesn't surprise me. "Linux" is not a company, which many people forget about. It's like thinking that since Henry Ford is dead there will be no new and improved cars.

      So- in conclusion: Manufacturers were handed nearly free  (or absolutely free) versions of XP- on the condition that they also increase the minimum specs of the processor, memory, and hard disk space. Since this made all the XP only machines look like the more powerfull ones, people no longer cared that it may cost them an extra $50 - 100 to have something they are familiar with. And guess what- it worked. People look at the Linux only versions as the low end model (which of course no one wants to have low end) and it only cost a few dollars more to upgrade. For people saving hundreds (or even thousands) on a subnotebook - they may as well have the 'best'.


      Wednesday, May 21, 2008

      Bluetooth Security: Why do people try to discredit it?

      It seems for years there have been many apparently damning articles (or at least the headline only) attempting to discredit the security of Bluetooth. The latest of such had recently been featured on digg. For those of you who did not watch the video (or simply read the headline), the guy pairs to a device that is inherently flawed. It is not bluetooth that is insecure, it is the device which apparently uses a guessable PIN and doesn't require a pairing sequence. The 'hacker' does not listen in on a phone conversation- he pairs to the device and listens to (and 'injects') arbitrary audio. This is not a hack, it is a remote pairing to a device that apparently breaks all published bluetooth spec's.
      For those who are still worried about bluetooth security or eavesdropping, the only way for this to happen is:
      (a) some severely under developed device such as the headset mentioned in this article,
      (b) someone eavesdrops during a pairing procedure, which is most likely performed within the owners own home- which the only thing that would be discovered would be the pin- not the device info. Once the device had been paired, there would be no way to 'unpair it' which would present the risk of anyone with a bluetooth host to capture any device at random.

      Why stop at headsets? Phones and even PC's have bluetooth functions. BlueBug is a blog which features articles about 'bugs' in bluetooth devices, which are actually just implementation flaws on the part of the company that implemented bluetooth in their device- not in bluetooth itself. I look at these problems and have come up with a good analogy: it is like having a sports car with a key that can never be copied and without it the car can never be operated, but the manufacturer decided to glue it in the ignition.

      Sunday, March 16, 2008

      Electronics Madness

      In the weeks I haven't posted I had purchased and played with a few electronics labs and a bunch of parts- making weird noise generators, a connection to my parallel port to display numbers on 7 segment display, and a bunch of fun DTMF fun with a basic stamp doing the tones and the timing. Besides just playing around I didn't really get much of anything accomplished- besides realize that I need more time and pats... unfortunately when it came time again to invest more parts or time I found myself knee deep back in my consulting projects. More to come on the electronics/playing with stuff part of my life- when I am free to do that again.

      Monday, February 25, 2008

      The last of the wiimote fun for this weekend

      I had one last go at working with wiimote stuff today. I decided I would make a reflector for my wiimote pen for the whiteboard application. Took a pen cap from one of those bic pens that are semi-transparent and covered the LED and took pictures with my cellphone camera (to see the IR light). The entire pen cap 'glowed' which was a good sign. The pen cap was long beyond the tip of the pen with the LED so I decided to cut the length of the cap in half, and then add a small cut section from a CD superglued to the end. In test this worked beutifully, making a bright glowing tip for the pen. Using a dremel I cut the square piece from the CD and then super glued that piece to the pen cap end. Using the dremel again I rounded the end. The problem now is that all the dremeling made most of the reflective paint of the CD piece come off and the super glue clouded the inside part of the cap, causing very little reflection. Next idea will be to take some filings from the CD and glue them to the LED to make it reflect in random pattern- but will have to wait until I have more time (likely next weekend).

      Sunday, February 24, 2008

      More WiiMote Fun: VR Desktop

      I hooked up VR Desktop to my roommates 65" HDTV to try head tracking. I think due to the wiimote 45 degree receiver area combined with the angle I was using caused for a jittery experience and walking close to the TV caused the signal to be out of range because my WiiMote was directly in front of the TV. For a headset I used old bulky 80's style headphones with IR LED's strapped to teh sides with a cable running to USB for power. Next week I will be receiving some more components for a wireless setup (as well as for testing Johnny's finger tracker) to have better results. For anyone else tryin this at home I suggest placign the wiimote behind the tv if possible at head height facing forward. Either that or try angling the wiimote up on bottom of TV. Also don't forget to adjust calibration settings in the .conf file for the height of your display and the width of the sensor bar (distance between IR LED's). I have also noticed the aspect ratio setting seems to not work 100% and I have better results when running the software under visual studio in debug mode (not sure if that resets my settings).

      Saturday, February 23, 2008

      (Friday!) Wii-mote Tracker Fun!

      It's friday night, which means I get to do something non-work related, and tonight i'm shut in due to a blizzard. Today I came across a cool video of some neat tricks using wii-mote C# libraries to create awesome human interactive display devices so tonight I decided to implement the infrared pen used in these demo's to try them for myself. The results are amazing! I suggest everyone who has a wii to run to radio shack and buy some parts to build a pen. Mine is very 'ad-hoc' so to speak with a switch controlled with my off hand, but it still works great. Check out the site here. I've also added it to my new links section (*its the only link so far). So far I have tried the 'whiteboard' application on both my laptop (14") and desktop (30") monitors. At close distances (of the wiimote) the resolution of the wiimote is acceptable for all but fine resolutions. At a large distance when the wiimote is 10+ feet from my 30" the display starts showing characteristics of its limitations. In the image in this post you will see a grid- which was 'drawn' by my light pen when the wiimote was ~10 feet away on the -> right side of the screen. It is visible that the resolution becomes worse on the left hand side of the screen and is better on the right (as seen by the squiggle marks, it appears it is able to 'draw' between boxes). The angle here is likely due to calibration.

      Thursday, February 21, 2008

      A few Top Tech of 2007

      I know its a bit late to mention favorites for 2007 but I was one of them just now and I still can't believe how much time and effort it has saved me. In no particular order, here are a few of my favorites for 2007

      (Software: Application) - XML Notepad

      It is a small simple application called XML Notepad. It is available from Microsoft as a free download so I suggest at least taking a look. Before using this software I would look at and sometimes write raw XML by hand for many strange reasons. XML Notepad does a few things great that I use all the time:

      1) Viewing XML documents is much easier and faster using the interface of XML notepad. It is much easier to condense large sets of data and to also quickly read and understand the structure in this format.

      2) Validation of XML notepad tells exactly where the document breaks and offers to open up notepad of the same file if it can't parse properly. This has saved me many times when creating custom components that generate pseudo XML. This came in handy the most when creating automation for constructing custom XAML interfaces.

      3) Creating or editing XML documents is much easier with the interface here. It took some getting used to how it copied/pasted and moved nodes but after it helped me so much when creating test documents for applications.

      I use it almost daily for looking at XML formatted configuration files, log files, or anything else which adheres to the same structure such as certain web document formats.

      (Software: Technology) - WPF
      This markup based 'foundation' is an interesting approach to building out interfaces, but it works. I was very surprised to find that most things 'just worked' for nesting controls to have weird behaviors- like having animating buttons and other strange effects. Sadly, I don't have the need or the time to work with WPF and I haven't worked directly with it since mid 2007, but I still remember some of the great things I was able to do with it and the ease of development it offered. Some of my favorite parts were databinding controls in XAML and creating highly customized applications almost entirely within the markup language itself without need for much code behind. I had only wished that there were native controls for performing some logic so I wouldn't need any code behind at all, but it wasn't necessary anyway. And another missing feature was some advanced image manipulation which seemed strangely missing- such as performing advanced cropping and translations for images within markup. My use for this would be to cut pieces out of an image to skin components from a master file. Instead I had settled on clipping the file into many small images which would ultimately load faster anyway.

      (Hardware: consumer) - iPhone
      Although I don't have one and had no real desire to own one I can't help but love its slick interfaces and multi purpose nature. I have a great desire and respect for handheld technologies which elegantly wrap together several technologies together. I feel that mobile technology is at a point where I essentially wouldn't need anything else if it could do the following:

      Tell time, make phone calls, browse internet easily, keep contact information, keep schedule, access corportae networks for accessing other persons info (contact info, schedule, etc), read all document types, run flash and any other relevant web extension technology, be able to manipulate cursor of a mobile computer or as a presentation aide, unlock and start car either in car or remotely, play music and movies, have capacity to never be full of disk space, act as general purpose external storage, act as operating system replacement- such tht I could boot from it wirelessly with full speed, act as remote controller for television, dvd player, and any other set of components for home entertainment- including game consoles, able to play latest mobile game titles, home automation tool.