Tuesday, May 5, 2015

Motorists vs Cyclists: comparing the rates of injury to pedestrians in NYC

I recently saw this link on reddit which shows cyclists running red lights, almost colliding with pedestrians. After reading through the comments I realized that many redditors in NYC are themselves cyclists. The discussion in the comments was quite shocking and divisive. The fact that other cyclists were defending this behavior seemed quite annoying since I also read quite often about cyclists injuring pedestrians, and even kill them more often that I can feel comfortable about. My girlfriend is often complaining to me about the citi bikes going the wrong way almost plowing her over on a regular basis. I got to thinking: how often do cyclists seriously injure pedestrians? I took a look for some stats on the subject and found an interesting study on the subject. In 2011 the rate of serious injury of a pedestrian by a cyclist in NYC was 6.06 per 100,000. What I did like to see from this study was that at least the numbers were in decline over the last few years of the study. However, knowing that I have a real chance of being hospitalized by a cyclist got me to not only worry, but wonder: what are the rates for motorists? How do they compare?

Please note: I'm not a statistician. My analysis may be inaccurate so please check for yourself.

Motorists v Cyclists: populations

First I wanted to get a good apples to apples comparison as much as I could. I wanted to find out the total number of motorsits and cyclists and to compare the numbers I found.  A few easy google searches on the subject lead me to nyc.gov sites with DOT stats and reports on motorists, cyclists, and incidents. The best stat I could get for motorists were the DOT registration numbers. In 2013 there were approximately 2 million registered motorists in the five boroughs. For the cyclists I found a document that has counts for cyclist reported from six different cycling hot spots. The average number of cyclists for all months for all six hot spots was about 20 thousand. Given the two numbers I have for both motorists and cyclists and that they are not accounted for the same way, I'm not sure if these numbers are a good basis for comparison however I have no alternative. Assuming that these numbers are comparable, there are 100:1 motorists to each cyclist in NYC.

Motorists v Cyclist: incidents

Likewise for incidents it was very easy to find data on the subject but I was similarly uneasy using what I found as a basis for comparison. For incidents of motor vehicles injuring pedestrians I found a page that summarized the NYPD reports for 2013. Assuming that their reporting is correct I found 12014 pedestrian injuries and 168 deaths for a total of 12182. For cyclists I couldn't find a 2013 set of numbers but I turned back to the 2011 study from the first paragraph to pull the totals. In 2011 there were 501 total injuries by cyclists. Although I can't match apples to apples since the years are different I can only make a broad assumption: there were approximately 24:1 incidents, motorist to cyclist.

Conclusion

Based on the numbers above and taken with some salt you may agree that cyclists are more dangerous to pedestrians than motorists. Based on the data, a cyclist is 4x more likely to injure a pedestrian than a motorist.

Monday, November 11, 2013

Google: No I don't want to "Stay signed in"

The Google recently updated their sign-in page but few may have noticed the subtle changes that are now almost forcing a user to stay signed in.

First off, every time you sign-in the check box is checked by default. Even if you sign in and out- the web page remembers your accounts but will not remember your preference for staying signed in.

Second- if you are signing in and un-check the box but mistype your password the page reloads with the checkbox re-checked.

Third- Since you now are back at this screen and may want to un-check this box again, the tab order is now altered. Before you could simply tab twice past the password box and hit the space-bar to un-check the checkbox. Now a link is in the way- if you tab twice and hit space-bar it will sign you in with the checkbox checked!

All of these seem kind of trivial for most users. Most people want to stay signed in on their personal computer. But for me and many like me I need access to my email from computers that are not my own. For me, having additional ways for my account to accidentally persist its session are cause for concern. Considering that Google probably has large team of people to think about all these scenarios it is also apparent that these changes were intentional to have the user stay signed in as much as possible, even if by mistakte.

Saturday, October 19, 2013

Android Permissions: what you should look for before clicking Accept

Chase Mobile
I don't intend to single out these apps in this post for their use of these permissions, as it seems that most android apps ask for and receive too many permissions when the apps are installed.

The Chase online banking application needs some permissions to enable some of the features of the app. This app allows the user to deposit checks using their phone and locate an ATM branch using GPS and mapping output. The app also initializes the dialer to auto-enter (but not dial) the support service.
These features seem useful and sure, they need to access the GPS, network, camera, and phone dialer.
but some other permissions seem to be out of the scope of normal banking and may not even be associated by user initiated features of the software.  which make me wonder what features they have actually use them:
- Disable screen lock: This one is strange. If they can disable the screen lock they can certainly 'spoof' a screen lock once the normal one had been disabled.
- Mock location sources for testing: One could imagine this could be used to tell the user that they are somewhere they are not.
- Take Pictures and Videos: Maybe these permissions are bundled, but should they? Taking a single photo to deposit checks is one thing, but a video seems to be too much
- Your Social Information: Modify contacts, read call log, read contacts, write call log. I can't imagine a legitimate use for any of these. Maybe if "modify contacts" is to include "add contact" if they want to push a Chase contact into my address book, maybe. But the rest sound like clear overreach.
Chase Mobile Branch Locator

Chase Mobile EULA

Super Bright LED Flashlight is an App on the Play marketplace that turns your Android smart-phone into a flashlight by turning on/off the flash LED that is built in for use with camera. The only features  or functionality/features I noticed are:
  • On/Off slider
  • The ability to 'blink' 
  • Super Bright LED Flashlight
  • Sound feedback on/off switch
  • Banner ads on the bottom
  • Reminder to rate the application
To be completely honest I found this app to be useful and fun to use. The slider graphic and ability to switch into blinking mode were not very useful but it made it a well rounded application more than just an on/off button for an LED.
However, even though I was happy with the features it gave me I am still a bit confused why it needs so much access to the phone itself. I'm guessing this has to do with how the application was built, rather than to provide functionality to the features that are given to the user. And since all I really wanted was a flashlight- pretty much anything besides access to the camera shouldn't be asked for, right?

 Storage: Modify or delete the contents of your USB storage
 User Features: I'll venture to guess this could be to save and load the status of the settings for the flashlight such as the blink setting or the sound on/off.

Your Location: Approximate location (network-based), precise location(GPS and network-based)
When I saw this feature in the list prior to first installing the app I thought maybe it was to link to where I was using the flashlight, or maybe while I'm using flashlight I can snap a pic? Now I'm guessing at best must be linked to the ads that appear, and at worst to track where I'm using their app.

Camera: Take pictures and videos
Just like with the chase app it seems this permission is linked to all possible functions of the camera. It doesn't even mention turning flash on-off but it must be part of the camera controls and is therefore linked to this explicit permission.

Your applications information: Retrieve running apps
I can't understand why a flashlight app would need to know what other running apps are loaded. Maybe there is a feature that tracks usage of the apps to gaugue how much power usage is being drained over time to let the flashlight know when it should turn off? The app doesn't appear to have this feature but I can't say I have used it while the phone has been running out of power to know for certain. The only reason I can guess if it is not a feature it is something to track the users habits for sale or use by the people distributing this app.

Phone Calls: Read phone status and identity
This one is also confusing. Why would a flashlight need to know if the phone is in use or who is using the phone? These two permissions are probably bundled, as we have seen with the Camera, so maybe one of these has a legitimate use. I must guess that the flashlight wants to turn off if a call is coming in (or flash, or something) which would be a good feature to have so the flashlight doesn't burn the battery when the user is on the phone.

Network Communication: Full network access
Most flashlights I have used in the past have not had access to communication networks. On the face of this permission it seems very obvious at this point they are not simply providing a free flashlight for you. They want you to provide feedback, click ads, and possibly send more data for them to use or sell.

System Tools: Modify system settings, test access to protected storage
As with most of the other permissions it is not clear what you are allowing the application to do. As we noticed before there are some permissions not explicitly granted in the permissions dialog, but are assumed implicity by the Android operating system. For this permission it is very unclear what the application may be doing to require this permission or what this permission really means. If we look at just these two permissions we have to assume that this app can change brightness settings, network settings, sync settings, and any other settings in the settings panel- possibly installing and uninstalling software they have decided (anti-virus, etc). This appears to be a security hole and I can't even imagine what the flashlight needs from this setting. The second setting is just as bad. The app is testing access to protected storage- possibly to check if the app can do something and get away with it without causing the operating system or anti-virus to flag the behavior.

Affects Battery: Control flashlight, prevent phone from sleeping
I got through all these settings, giving the benefit of the doubt to this app that they simply want to control the flashlight and maybe they are doing some tricks to get that to work- such as accessing the camera or possibly some system settings. It seems that is not the case.

This app wants to do a lot more than provide a free flashlight- it wants to control your phone.


Flashlight Permissions 
Even more Flashlight
Permissions
Flashlight Rating Reminder

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.

Plato's Guardians

In Plato's Republic there is a discussion of the Guardian class, those that are imbued with power from the society in order to help guard it from itself. The only way this Guardian class can exist is if it has a special privilege. This class are the guardian/ruling class of the society. In the Republic, Socrates discusses the founding of a republic with Glaucon and Adeimantus and determine that this Guardian class is necessary for the stability of the republic to exist. I was thinking, yes this may be the case- that a balance of power given by the people to this ruling class is a fair trade, as long as the power is within reason and is held in check.
What we have been seeing lately in the US has been concerning to most people. Increased militarization of federal and even local police forces, aquisition of immense stockpiles of arms and ammunition, and possible use of drones to target citizens.  While I don't agree with these practices, I am curious to see how they are measuring to the success of the guardianship model as it has been applied to the earth.  Over the past century the 'guardian' has been gravitating toward the western world, almost completely dominated by the US.  During this time there have been questionable actions to wage wars that, even if you haven't read all the conspiracy theories on the subjects, seem completely non-credible. With all the ties and connections in countless publications and documentaries about the false flag operations throughout the world, I think we are all just on the edge of our seats to see when the next one will happen- ever since Sept 11.
But getting back to this concept of the Guardian.  Are we better off as a nation to have the guardian government militarize our homeland? Has the increased militarization over the past century helped or hurt the communities they have most affected?

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).

      First look: Visual Studio 2008

      Today marks my second week using Visual Studio 2008. I primarily use VS for C++ programming for work using MFC. I have noticed a few glitches such as some of the slowness that affected VS 2005 pre service pack. I then installed SP1 For 2008 and things were good. The only thing I can really say I enjoy about VS9 over VS8 from my perspective (which is severely limited) is that ctrl+j actually works in this version (initiate intellisense). It actually things for a moment and rebuilds the intellisense database where as with 2005 I would usually exit the program and delete the ncb file to rebuild. Besides this I can't say that I have yet to find a major difference between 2005 for the type of work that I am doing. Everything is in the same spot and I'm glad it is.

      Tuesday, March 17, 2009

      C# Samsung TV Remote with Serial RS232

      UPDATE: New link to source code

      This Sunday I was bored, so I made a remote control for my Samsung LC-52SE94U.

      The code I have is incomplete (I didn't implement all the functions, some of the buttons are place holders) but if anyone is interested in picking up where I left off, go ahead.

      For Power On/Off to work properly you must first disable the Energy saver- which is under the 'Power Settings' tab.

      Please let me know if you have found or know of any other codes- I had put in a routine to check all tv codes but I didn't finish running it.

      This software controls the TV using the RS232 port on the back of the set connected directly to a PC. This does not work with infrared.

      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'.


      Monday, November 10, 2008

      I like Stackoverflow, except...

      I have been using stackoverflow.com for a few days now, posting and answer questions.   I find it fun, easy to use, and extremely helpful for getting detailed attention to questions.  Even though I do love the service, I have recommended or voted for several ways they can improve their service:

      This is one of the worst problems- that the more narrow the question, the less attention and votes it receives.  This is likely because fewer people feel they can 'participate'.  Most of the 'participation' that people do is on the squishy questions that anyone can offer their opinions about.  Also, the people reading them are also the general population of people visiting the site.  Personally I would prefer that all of those questions be deleted- and all rep assigned from them be removed from the site.

      This is a suggestion I had for reorganizing the site so there would be more of a primary focus on unanswered yet highly viewed questions.

      This is my suggestion for a rep based system based off of highly viewed yet unanswered or un-upvoted answers, basically assigning more rep for harder questions

      Since the rep system I would like to see is not here it would be neat if I could create my own portal to the site for people to view and assign reputation.  Although, at the core I wold not be able to reassign rep and to give people different abilities- I could however 'revoke' rep through the portal by limiting abilities of people who have only answered to fluff questions and had been upmodded because of this.

      Sunday, November 9, 2008

      Will Windows 7 threaten Linux desktop adoption?

      No.  I liked this post so comment on Digg that I decided to put it here as well:

      Linux and new versions of windows have the same problem for future use and adoption: Supporting existing windows applications. Microsoft will always be ahead of that game because they can easily change the playing field with a new release of windows. 

      However, timing is everything. Since not many people have yet to adopt those new methods for creating software for the windows platform targeted at Vista, Linux still has a chance to stay alive and compete regardless of how nice and flashy new versions of windows may become. 

      Once the Wine 'catches up' there will be next to no reason for home users to use windows anymore. And considering the new developments on SMB for activedirectory integration, it is only a matter of time before windows can be phased out at the workplace.

      Thursday, November 6, 2008

      SQLite with MFC

      I recently responded to a question on stackoverflow regarding SQLite with MFC.  This is something I am currently working with.  I am currently implementing a system to manage all the files in one database with references to other external files in a directory structure.  The database file itself is essentially a state of using the other external files which remain unchanged- so that any changes or modifications are recorded to the one database file.  This design is actually quite annoying because I want the user to be able to drag/drop their files to the application in whatever structure they currently have and maintain that organization- but also have my database file aware of the structure and to label the structure for use within the application (tagging directories as container names, etc).  After I get past this hurdle (or maybe before it) is to create an online backup by doing the following: When the user is connected to the internet, the application can optionally send updates while the application is running (and receive updates) of records from the database.  Each record is a 'file' which has all the chagnes the user has done to the file.  As they make changes in the application and 'save' (or auto save) it will send those changes to the online backup.  If the user is not online- it won't send, but next time they go online it will prompt them and ask if they would like to sync with the online database (possibly performing differencing in the future).  The convenience is that I could implement the same database logic on both ends instead of having 2 implementations to read and write from the databases.