Monday, October 01, 2012

My ChiRunning Quick Start Guide


Achieving a good ChiRunning technique is a gradual process and from personal experience it can take time and a lot of practice. However I also think there are some key principles that can show immediate results. My intent of this blog is not to oversimplify ChiRunning, but merely provide a quick start guide for those who are new to this technique and also share what has worked for me.

I discovered the ChiRunning book thanks to a “Customers Who Bought This Also Bought” recommendation from Amazon.com after reading the “Born to Run” book. I started improving my running technique after reading “Born To Run”, primarily from switching from a heel strike into a forefoot strike. I was also more aware of my running posture and was able to run farther distances (went from 6 miles to 10+ miles). I was ready for a more structured technique and ChiRunning was a natural fit for this transition.

I started reading ChiRunning on May 2011. This was shortly after I ran my first half Marathon. My experience running my first half was mostly good. I really enjoyed it and I felt mostly good after finishing it. I exceeded my expectations of finishing at 2:10 which was just under my average pace of 10 minutes/mile. However even though I did not immediately notice it, I had injured my left foot most likely from a bad step. After running the half I was able to run fine up to 3 miles, but the pain reappeared above this distance and it took close to 4 weeks before I was able to comfortably run longer distances again. It was obvious that I still had much room to improve my technique and the timing could have not been any better for discovering the ChiRunning book.

The benefits were not immediate for me. Most of the techniques made perfect sense in writing, but in practice it was hard to tell if I was on the right track. Some techniques were hard to follow just by seeing pictures and I felt overwhelmed by how many different things I had to become aware of. My reaction at that point is that it could not be natural to run that way if there were so many things to remember. I was skeptical, but at the same time I was seeing marginal improvement. One of my first surprises was that at times when I felt that I was running slow, after checking my pace (on my phone) I found out I was actually running faster. I was very impressed by that. Because I was using less effort I felt I was running slower, but in fact it was the opposite. And this is due to one of the principles of this technique: to run more efficiently.

I then decided to buy the ChiRunningDVD. This made a huge difference because it is much better to see the techniques applied in practice. There are several YouTube videos out there, some from Danny Dreyer and others from ChiRunning instructors. If you don’t want to buy the DVD, I certainly encourage you to watch these videos. While I was making progress I still felt there was much more to unlock. In particular I wanted to get feedback from someone that had already mastered ChiRunning. I decided to sign up for a ChiRunning Workshop with Danny Dreyer on August 2011 and it was a major breakthrough for me. The most encouraging part was to receive feedback that I was on the right track. The workshop was worth every penny, I encourage everyone that feels stuck to give this a try.

On May 2012 I ran my first Marathon. I could have not done it without ChiRunning. Even though I used a beginner marathon training program I would have not been able to run 6+ miles a couple days after running 20 miles. My recovery time between runs decreased significantly and I did not have to interrupt my training due to running injuries. I finished my first marathon just under 5 hours. This was a good time for me considering that I am over weight and this was my first time ever running this far (the longest I had run during training was 21 miles). After finishing my training, I was convinced that I could finish the marathon. The biggest test for me that ChiRunning works would be to be able to run comfortably a few days after the Marathon. I ran the Marathon on a Sunday. I rested for 2 days and on Wednesday I felt like I was ready to run again so I went for a 3 mile run and I did it comfortably and confirmed I had no injuries.

I know a still have a lot to improve. Even Danny Dreyer on his ChiMarathon book points out that he is still mastering his technique. If someone asks me what has worked for me and I only had 10 minutes to do so, these are the 10 steps I would share:

1.  Stand up straight, as tall as you can, as your grandma used to tell you.
2. While maintaining your straight posture lean forward slightly without bending at the hip. The hard part is to lean forward without bending. This is one of those ‘aha’ moments when you first do it, you will fall unless you move your feet forward. This is why some people call it ChiFalling. If you are having difficulties doing this, watch the DVD. We had a lot of practice doing this at the workshop, and it’s usually not hard for people to get this part. One of the tips we got at the workshop is that the lean is very small. They asked a partner to put a had one inch apart from your forehead, that is how much you need to lean forward (except for higher gears). The lean is a key principle of ChiRunning, by letting gravity do more work for you, you’re reducing effort required to run. The amazing part is that this works even going up the hills, just to a lesser extent.
3. Relax your lower legs. Imagine you are numb from the knees downward. You use your feet only to support you while running. The strength comes from your ‘core’: the lower abdomen and upper leg muscles. This was one of the less intuitive parts for me. For years we have been trained to do ‘power running’, i.e. to use your legs as much as possible to propel you. One tip that has helped me changed this is to focus on lifting your feet backward, as opposed to pushing them forward. I strongly think this is one of the key aspects for reducing injuries, if you are able to effectively reduce tension in your lower legs you will reduce impact on your feet and knees.
4. Run with short and fast strides. This is a key principle of ChiRunning and key for long distance running. Shorter strides reduce the risk of injuries. Think about going downhill on a trail, are you more likely to run if running with long strides compared to running with short strides? By running with short and quick strides you are shifting effort from your lower legs to your core.
5. Run with a midfoot strike. There is a never ending debate about what is better for running: heel, midfoot or forefoot strike? There is an overall consensus that forefoot and midfoot is better than heel strike. ChiRunning advocates for midfoot strike. I mentioned earlier that prior to Chi Running I had shifted from heel strike to forefoot strike. I have gradually shifted to a midfoot strike. One of the risks of landing on your toes (forefoot) is that you could over time, injure your calves. There are several runners that claim to run injury free as heel strikers. From my own experience the key thing to watch for is where your feet lands. If your feet are landing ahead of you, you are effectively landing against your center of gravity and thus creating a force against you that will be absorbed by your feet, knees, hip or even your back. The goal is for your feet to land directly below or slightly behind you. It feels more natural to land with your midfoot or forefoot below you than to land with your heel.
6. Maintain a cadence. This is one of the key pillars from ChiRunning. I ignored this for too long, mainly because I did not want to run with a metronome. Since I already run with my phone, I discovered that there are good cadence applications out there. You can also download MP3 files with the beats recorded for different intervals. I set my metronome at 90 bpm (beats per minute). As the book says most people run at 80 bpm or lower. I thought I was already running at a higher cadence but running with the metronome made me realize I was running at 80bpm and that it is not trivial to get from 80 to 90. It took me a while to get there and I still use the metronome from time to time. Something I noticed on long distance runs after becoming tired I would often lose my cadence. The book goes into great detail about to why cadence is important, but it boils down to energy optimization. Even at difference speed you want to maintain your cadence, the only thing that changes is your stride length. If you’re going up a hill you still maintain your cadence but your stride length is much shorter. This principle is also practiced in cycling.
7. Listen to your body. This is another important technique from ChiRunning. One of the best ways to prevent injuries is to pay more attention to your body. Unfortunately this isn’t something that you can be coached on. You are your best coach on this. Someone can tell you things to avoid but at the end of the day it is you feeling the impact of your steps as well as any potential repetitive injuries developing. Running injuries are usually not felt immediately. They ‘suddenly’ appear the day after running. It turns out, that is not entirely true, injuries are usually felt as they are developing we just need to pay more attention to our bodies. To begin with, avoid running with a “no pain, no gain” mindset. Pain while running means you are doing something wrong. Next time you are feeling the slightest bit of pain while running pay attention to what you are doing wrong. Are your lower legs relaxed? Are you bending at the hip? Are you stomping with your feet? Is your stride too long? Something that helped me improve my body awareness was to drop the headphones. It made a huge difference for me. Music can certainly motivate you, but I encourage you to try running without headphones. You will not only become more aware of your body, but of your surroundings as well.
8. Breathe more and deeply. This is very important and I don’t mean to diminish its importance here. There are several techniques described in the book. One that comes to mind is belly breathing. It is extremely important to empty your lungs. But the most important aspect is to remember to do it. Yes, we often forget to breathe at the right rhythm, so definitely pay attention to doing more of this.
9. Try barefoot running. ChiRunning is a barefoot-like running technique, but the best part of it is that you can do ChiRunning with or without shoes. Running barefoot is hard and it takes time to get used to. I definitely encourage you to try it once on a very short distance (100 yards). You should immediately feel what a difference in posture. That posture is your natural posture to run. Your ChiRunning posture should feel very similar to that. I have tried running with barefoot running shoes (Vibram FiveFingers Bikila). I still sometimes alternate between normal shoes and the VFF, but to date I still can’t comfortably run over 6 miles with the VFF and it took me several weeks to run comfortably under 6 miles. For longer distances I prefer the NikeFree 3.0. These are flexible shoes with some cushioning but relatively small heel (close to zero drop).
10. Practice your focuses. I learned that ChiRunning is like having a Swiss Army knife. I now see it as a tool set at my disposal to try when I feel I can’t go on longer on my runs. When you feel like that, go over your list of focuses, which one are you not doing? The great thing about ChiRunning is that you can still benefit even if you are still only doing 2-3 of the focuses, but the more you can do at the same time the greater benefit you will see.

I can now proudly say that I am a ChiRunner and I have run injury free for over 16 months.

Monday, April 09, 2012

iPhone 3GS successfully unlocked by authorized AT&T unlock

After reading the anticipated news that AT&T was officially unlocking iPhones starting on April 8th, 2012 I called the customer service number: 800-776-4663 provided my phone number (I am an active customer with AT&T). They confirmed my current iPhone 4 is three months away from becoming eligible for the unlock because it is still within the 2-year contract (even though I have already meet eligibility for an early upgrade), but my old iPhone 3GS which is over 2 years old was eligible. They asked for the phone's IMEI number (available through Settings -> General -> About or by dialing *#06# on your iPhone) then I was asked for an e-mail address. They had me wait on the line to receive a confirmation e-mail which took several minutes. All the e-mail contains is a link to this PDF with instructions for restoring your iPhone from iTunes in order to complete the unlock. They offered to stay on the line while I restored it, but I know it can take close to an hour to backup and do a full restore, so I declined the offer. Even though I was already on iOS 5, apparently you must perform a restore through iTunes to complete the upgrade. You can still backup and restore from iCloud, but the restored should be initiated through iTunes, at least that's the official word. At the end of the restore, this is what you want to see:

Monday, March 19, 2012

Finding your inner power song

For many years I've run listening to music. I had running playlists that I used over and over again. I even had certain 'power songs' timed so that they would play halfway and towards the end of my 5K runs. I felt I had to run with my headphones on to get that extra burst of motivation when running out of fuel.
I had noticed in the information booklets for some races that they 'discouraged' the use of headphones and thought that was pointless to ask since so many runners run listening to music.

Then one day something incredible happened that made me stop running with headphones on. It happened while running the 2011 Pittsburgh Half Marathon. At the beginning of the race it was mildly raining, more like a breeze that actually made it very refreshing to run. The combination of sweat and breeze made my headphones malfunction, which were obviously not sweat proof. I was tracking my run with the Nike+ application and this malfunction was causing my phone to constantly pause. After several restarts I got so annoyed that I just took my headphones off and continued running. I am really glad this happened, especially since this was my first time running a half marathon.

Up until that day, I had participated in may local 5Ks and 10Ks: the Race for the Cure, the Great Race, the Father's Day race and the Race for Virginia. Every time I had run in these events I was amazed as to how many runners and people in the sidelines would cheer for you and I felt very motivated when local bands played live music in some of these races, but I had never experienced anything like a Marathon crowd. Even though I was running only half marathon, in the Pittsburgh Marathon like in many others, the half marathon runners start with the full marathon runners, so for the first half you're the same pack and the finish line it's the same for all, so nobody cares if you're running half or full, everyone cheers equally for you. It was truly one of the best experiences in my life. Danny Dreyer could not have described it better on his Chi Marathon book: "Like an art museum or a symphony, a marathon is a great place to go when you want to feel good about the potential of the human race. Whether you cheer a friend on from the sidelines, volunteer at an aid station, or run the event yourself, you get to witness and experience a side of humankind that is both elemental and exalted".

This malfunction could have not happened at a better time. After I took my headphones off, I realized I was missing out on half the fun and the experience. Ever since then, I have run without music and I've enjoyed running much more, especially when running outdoors. It has also allowed me to improved my body awareness which is extremely important to avoid injuries. I'm not opposed to running with music on, for a long time I felt they were complementary and if it helps make your run more enjoyable, by all means continue to do it. But I also urge you to give it a try just once, run without headphones, especially when running a race, you will not regret it and it may help you find your 'inner power song'.

Friday, January 27, 2012

How to get 100% Dragon Total Destruction in Angry Birds Year of the Dragon

The latest release from Angry Birds Seasons 2012 includes the 'Year of the Dragon' levels. The 'Year of the Dragon' introduces a Dragon that works similar to the Mighty Eagle, except that this is free (already included in the purchase price). I have not tried the Mighty Eagle yet, so I can't tell exactly what the differences are.

The dragon appears by clicking the icon next to the pause button on the top left corner of the screen. What you throw looks like a red fish that makes the dragon appear. The dragon will cause massive destruction and it varies based on the location where you drop it. The more destruction, the higher dragon score you get. If you get a 100% score, you get a 'Total Destruction' fish.




I was trying to figure out a way to consistently get 100% dragon score in all levels. I could not find a general rule that will get you a 100%, but in general here are some tips that worked for me:
  1. The more you destroy with the dragon, the higher score you will get. This means in general the best place to drop the fish will be somewhere in the middle, usually in the bottom next to the most artifacts in the level.
  2. You don't have to destroy absolutely everything, but most everything in the level.
  3. It helps to throw a few birds before throwing the fish, but I was also able to achieve 100% score by throwing the fish first without throwing any birds.
What do you get for achieving Dragon Total Destruction in all levels? Nothing, absolutely nothing, other than personal satisfaction, of course.


Monday, January 16, 2012

My training schedule for the Pittsburgh Marathon 2012

There are 16 weeks remaining for the Pittsburgh Marathon. If you haven't started training, now it's a good time to start. I am using a program from 'The Non-Runner's Marathon Trainer', even though I run regularly, this is my first marathon and this training program is very conservative. The program trains you to finish the marathon with no specific pace goal. My goal is exactly that, to finish the marathon without a target time. My only pace goal is to adhere to the mile markers for this marathon which I believe require you finishing the marathon within 6 hours. This training program has you running 4 days per week, with one long run per week.


Since I have already started training at 40 km/week since January, my plan is to exceed the weekly goals for the first 7 weeks and start adhering to the program on week 6.The biggest challenge for me will be the long runs since the farthest I've ever ran is 21.5km. This is my first marathon attempt so it is the first time I'm using this program, I can't vouch for it yet. What do you think of it? Any suggestions?

Wednesday, January 11, 2012

Warning: if you read this book, you will not be able to stop running


For the past few years, I've been a regular '3 mile' runner. Since 2003 I have regularly participated in 2 to 4 local 5k races throughout the year and train in between races by running 3 miles about 3 times a week on average. I'm not a fast runner by any means, my average pace is around 6 min per km (10 mins per mile) and I was not a long distance runner. I ran my first 10k race time in 2004. I tried again in 2005 and even though I was able to finish, I had a pulled muscle injury that took me several weeks to recover. I attributed my injury to being overweight. At 200lb I am more than 30% above my ideal weight. After that injury, I decided to stick to 5k runs until I could lose some weight. In 2010 I had only managed to lose a few pounds, but I decided to try running 10k again and I was able to finish without any injuries again.

Then in 2011 I had a major breakthrough. Early in January I read Born to run by Chris McDougall. Even before midway through the book my running improved significantly. I discovered that even though my weight was a limiting factor, my running form had an even bigger limiting impact.

Before reading this book, I had never paid attention to my running form. I did not even know I was a heel striker. When I was in high school I was on the track and field team and I was taught techniques to run fast, essentially how to do 'power running', but I was never taught techniques to run long distances. After reading 'Born to run', I tried changing my stride to a forefoot strike and slightly bending my knees while running. I was surprised at the results. I was not only able to run longer distances, but also able to run frequently without feeling injured.

I also learned that the high heel on typical running shoes was encouraging me to land more on my heel which was likely the source of most of my injuries. I found a pair of Nike Free 3.0 on sale and gave them a try and absolutely loved them.

Unfortunately Nike hasn't learned their lesson and the latest Nike Free Run+ 2 shoes have a really thick heel. I also tried the Vibram FiveFingers Bikila. Those require more time getting used to. At first, I did not think I would be able to run over 5k, now I can comfortably run distances under 10k and I loved them. I feel it strengthen my foot muscles, but I still prefer the Nike Free for longer distances so I keep alternating between them.
Within 4 months after starting reading the book my improvement was remarkable, I had ran a cumulative of over 500km and my longest distance went from 10km to close to 20km. I was ready to run my first half marathon which I did on May 15, 2011 in Pittsburgh.
I didn't expect to be able to maintain my average pace throughout the run, but I did and I probably pushed myself a bit hard since I did have a injury on my right foot which took a couple weeks to recover from. But despite this I really enjoyed the experience and by the end of 2011 I had ran 1,670km which is twice as much what I ran on 2010. I am currently registered and training to run my first marathon in 2012. Happy running everyone!

Tuesday, December 20, 2011

Turn your camera into a wifi enabled camera with an Eye-Fi X2 card

The Eye-Fi card is nothing more than a SDHC card with an embedded wifi chip. When the Eye-Fi cards were originally released you could only transfer if you were at home and had your network setup, or by using certain hotspots (only the first year is free). The eye-fi X2 series added a very convenient feature: direct mode. This mode, in combination with an iPhone/iPad or Android application make it very convenient to transfer photos taken from your digital camera and transfer them to your phone from anywhere without the need to use a 3G or wifi connection.

The direct mode uses an ad-hoc network mode which to the phone looks as any other wifi network protected by a WEP key. Aside from a one-time setup to register the card, the transfer process is very seamless. At the time I setup my card I had to install the software on my PC. I'm not sure if you can now do all the setup from http://center.eye.fi/

What's even better is that now there is a wide selection of eye-fi connected cameras. I own a Canon PowerShot ELPH 300 HS, which by the way is a really great point-and-shoot camera. The 300 HS is one of the connected cameras. This means you get an extra menu for 'Eye-Fi Settings' when you're using the eye-fi card. This allows you to disable the wifi feature of the SD card when you don't need to use it.


You will need to recharge your camera's battery more frequently when using the Eye-Fi card. Every time the camera is powered (and there are pictures on the card) it will broadcast a wifi signal for 30 seconds (you can configure it to longer time using their software). The wifi broadcast goes off after a configurable period of time of no activity. When using a connected camera an icon will indicate if the wifi is on:



Another feature that you get with connected cameras is that it will display an icon once a picture has been transferred:


To connect your to your Eye-Fi card using the iPhone application simply power up your camera and connect as you would to any other wifi network. A wifi network that begins with 'Eye-Fi Card' will show up in your available networks. It is protected by a password and unfortunately the only way I know of retrieving the key is using the Eye-Fi center software.


Launch the Eye-Fi Application and you will see the pictures being transferred right away. This application can run in the background so as long as the camera is on and connected via wifi, it will continue transferring in the background. The application has improved a lot since the original version, it now provides more feedback as to what it is doing and the transfer is more reliable.


There are more and more wifi enabled cameras in the market and they are becoming more affordable, but they don't provide the breadth of features available through smartphone applications. Cellphone cameras are also slowly becoming better, however they still lack in zoom, focus, motion and low light performance. If you already have a good point-and-shoot or DSLR camera, this is a convenient and affordable way to transfer your photos into your smartphone when you're on the go. The Eye-Fi Connect X2 4GB retails for only $29.99.


Friday, November 18, 2011

Nest Learning Thermostat unboxing, installation and setup

Got my Nest thermostat installed. It is really an amazing product.


Installation-wise, it is pretty straight forward except for getting the anchors into my drywall. There were two problems: the holes from my old thermostat were around the same location which meant I had to reuse them; and there was a piece of metal (presumably the metal box) on the inside which was probably less than an inch deep, so I had to shorten the anchors provided:

Once I got the anchors into the wall, installation was a 5 minute job:

How cool is this?

It is wifi enabled and it has a trackwheel interface (coincidence Tony Fadell?)


It is a pretty cool product. It will definitely pay for itself on energy savings. You can see more pictures here: http://t.co/Xw5AxHcK

Tuesday, August 24, 2010

Enabling Broadcom USH Fingerprint reader on Windows 7 64-bit for DELL Latitude E6500

I recently upgraded my Latitude E6500 from XP to Windows 7 Professional 64-bit. One of the 2 drivers that was not recognized out of the box was the one for the fingerprint sensor.

My first stop was obviously the Dell Latitude E6500 Drivers and Download page from DELL Suport, selecting Windows 7 64-Bit as the Operating System:

I tried with and without my Service Tag. After googling for a while, I found out that the driver is included in the "Dell Security Device Driver Installation Package for 64-Bit Operating Systems". It was hard to find a link to download the latest version of this pack which was compatible with the Latitude E6500 and Windows 7 64-bit, but I finally found it here.

The latest version as of 8/24/2010 was version 1.4.056, A18 released 6/28/2010 and the downloaded file name was: Dell_ControlPoint-Security-D_A18_R269916

You will need to download and install the Dell ControlPoint Security Manager, which includes the EMBASSY Security Center required to use the fingerprint sensor to log into Windows. That too was difficult to find

Latest version as of today was version 1.4.00004, A18 released 7/28/2010 and dowloaded file name: DELL_CONTROLPOINT-SECURITY-M_A18_R276445.exe

You may also want to update the ControlVault firmware (the installer recommends it). I did it just to be safe, though I'm not sure if it was really required. Latest version: 14.x.132.0, A17 released on 5/3/2010

I'm not really sure why these versions and not listed on the Window 7 64-Bit drivers page for E6500, but it sure took me a while to find them on the DELL Support site. I was ready to give up on the fingerprint reader, but I can now confirm that it works prefectly using Windows 7 64-Bit on my Latitude E6500!

Friday, May 07, 2010

Blockbuster and Netflix queue availability comparison

It's been over 3 months when I reactivated my blockbuter.com subscription and kept my 1-DVD netflix subscription to keep the online streaming option. I'm really glad I did this. After the delay of WB movies, Netflix introduced the same 4 week delay for Century Fox and Universal Studios movies. Redbox also agreed to the same delay, so if you wanted to rent Avatar on April 22nd the only option available to rent from was blockbuster.

Thanks to my dual subscription, I'm able to provide you with a side by side comparison of availability for 10 popular releases. Four of these titles (Avatar, Leap Year, It's Complicated and Crazy Heart) are not yet available in Netflix due to the 4-week delay. Netflix CEO claimed that one of the benefits for the delay to customers was to have more copies available on day 29: "The most practical reason is that the savings derived from this deal enable us to be in stock completely on day 29", well Sherlock Holmes was released on 3/30 on Blockbuster and was not available on Netflix on 4/27, ironically it has a long wait on Netflix while it is available on Blockuster, makes you wonder.


Friday, February 05, 2010

Blockbuster vs Netflix DVD subscription comparison

I recently switched from Blockbuster to Netflix DVD subscription because new release DVDs were taking 2-3 days to ship in some cases, but I'm finding out that Netflix is even worse. I have a 2 DVD subscription with Netflix. Netflix received DVD #1 on 1/31 and DVD #2 on 2/2. I have not had any DVDs shipped this week at all. Today (2/5), I called customer service and they said they will not be shipping any of the DVDs on my queue for this weekend because those titles have not been returned by other customers, so in summary I had no DVDs shipped in one full week. Here is what my DVD queue looks like:

  1. Movie 1: Very Long Wait (Released on 1/19/10)
  2. Movie 2: Very Long Wait (Released on 2/3/20)
  3. Movie 3: Short Wait (Released 12/22/09)
  4. Movie 4: Very Long Wait (Released on 2/12/10)

With the exception of "Movie 2" I've had these movies on my DVD queue for at least a week. One of these titles was released over a month ago. Shouldn't Netflix stock more copies of unavailable movies? I know that will erode profits, but if this is a common trend for most customers they are risking losing customers which will also eventually hurt profits. To make matters worse they recently introduced a 4 week delay for Warner Bros movies. Not to mention that they charge ($2-$4/mo) extra to get blu-rays. The only reason why I'm keeping their subscription is because of their streaming option, which is great, I have a Roku player and love it. In terms of DVD subscription I'm reactivating my plan with Blockbuster which seems to be better in terms of availability, not charging extra for blu-rays and no 4-week delay for new Warner Bros releases (so far).

Wednesday, August 19, 2009

Blockbuster shipped "Sunshine Cleaning" DVD a week early!


The DVD does not come out until 8/25, and I got it on the mail today (8/19)... sweet! Is this common? It is a certainly a first for me... off to watch it now!

Saturday, May 10, 2008

Sony outlet store at Grove City outlet closing

Everything is 30% off (excepte marked down items which are just a few). They're closing on May 16th. All the HDTV are sold out, no PS3s are left either. Some items worth left are: digital cameras, camcorders and laptops. They have mostly refurbished items, but several factory new items as well.

Monday, April 07, 2008

If you have an iPod nano and enjoy jogging...

I strongly recommend getting the Nike+ add-on. You don't even need to buy a Nike+ shoe, you can get a pouch bag and use it in your favorite running shoes!

Friday, February 29, 2008

Upcoming talk on Spring .NET

March 11th, 2008 at the PGH .NET User's group meeting:
http://www.pghdotnet.org/Events/448.aspx

...and in case you miss it we'll do it again on the Pittsburgh .NET Code Camp on April 12nd, 2008:
http://www.pghdotnet.org/CodeCamp/

Wednesday, December 12, 2007

How to fix iPhone speaker problem

BEGIN UPDATE (5/14/08). This solution worked for me for at least 2 months, since then I've had at least 4 reocurrences, all of which were fixed just by reinserting the earphone repeatedly, except for the last instance, I had to clean the earjack and seems back to normal
END UPDATE

One day I got a call on my iPhone and I was not able to hear any audio. After a while I figured out I could still hear audio if I put it in speakerphone mode. Next I realized that the play icon was showing up with no audio. I tried pausing/playing music and I could no hear any audio at all. After doing some research on Google I found out this was a very common problem on the iPhone, and unfortunately it appears to be a problem on the hardware and not on the software.

The iPhone has a mechanism to detect when you unplug the headset, apparently this mechanism can fail sometimes due if debris gets in the headset jack. This is why you can't hear any audio, because it thinks you have a headset plugged in and continues to route all audio to the headset output. There are several workarounds published out there, some very creative that suggest using a damped q-tip. But the one solution that worked for me was plugging and unplugging the headset several times until it gets back into the correct state. However this solution was only temporary for me, eventually the iPhone would get into that same state. Because I connect the iPhone on the aux port of my car stereo I had to check every time I left my car to make sure I would be able to use my phone throughout the day!

This became very annoying, so I called Apple Support (1-800-MY-IPHONE) and the workaround they had me try was to plug and unplug my headphones 5 consecutive times as fast as I could. The problem was fixed immediately, but I was very skeptical this would be a long term solution. So I continued verifying that the phone was in the correct state everytime I unplugged the headset. To my surprise this problem hasn't reocurred since then and it's been over 4 weeks and I plug/unplug it at least twice a day, so it seems in my case this problem was indeed caused by a debris and not a permanent hardware problem, which is a relief. So there you have it: the official recommendation from Apple support if you want to give it a shot.

Thursday, December 06, 2007

iPhone update 1.1.2: the fastest and most stable version to date!


Apple has been very vague as to what is included in the iPhone updates, in particular with regards to the 1.1.2 update: "...new features and bug fixes..." leaving many users -primarily jailbroken/unlocked iphone users- wondering if it is worth updating just for the sake of updating. Although it is not officially stated, apparently the iPhone CPU clock speed was boosted with this update. As soon as I installed the update, I noticed that applications loaded faster and in particular web pages loaded much faster in Safari. Using sysinfo several users have been able to confirm this. The CPU frequency was 400 MHz while the bus frequency was 100 MHz in the iPhone 1.1.1 firmware. The iPhone 1.1.2 now shows a CPU frequency of 412 MHz and a bus frequency of 103 MHz. If that is not enough to convince you to upgrade I also noticed that this update makes the iPhone, in particular Safari more stable. Safari would crash for me about once a day in the earlier version, it hasn't crashed so far for me.


Sunday, March 26, 2006

DragDropList changes in the ATLAS March CTP release

As many of you know the ATLAS March CTP release is out as of last week. I recently downloaded it and found out that some of my samples broke. Specifically the customization of the DragDropList I had made to add support for a dragged and dropped events.

I have posted an updated version of my CustomDragDropList class that works with the March CTP release. I primarily took the source code from this release and added my customizations. The only additional change I had to make was to rename any references to the Web.UI namespace to Sys.UI instead.

Additionally I had to remove the "templateLayout" XML-Script element from the "dropCueTemplate" element, apparently that is no longer necessary and leaving it breaks the code. A sample usage of my CustomDragDropList should looks like this:

<control id="queueList">
 <behaviors>
  <customDragDropList dataType="HTML" acceptedDataTypes="'HTML'" dragMode="Move" removed="itemAdded" added="itemRemoved" >
   <dropCueTemplate />
  </customDragDropList>
 </behaviors>
</control>

Monday, February 20, 2006

Creating a custom server control for ATLAS

When working with drag and drop lists in Atlas one task that you'll find yourself doing over and over again is adding the draggableListItem behavior to the controls that you wish to make "draggable" in your page's XML-Script. In many cases you may want to dynamically generate these controls with server side code based on results from a database query, for instance. For this reason, I thought it would make sense to build a custom web control to achieve this goal.

Rather than starting from scratch, I chose to start my control inheriting from the Panel control. This allows you to add any arbitrary content to the "draggable" item control, as it is translated to a span tag in HTML. In order to make the control "ATLAS-enabled" you need to implement the IScriptControl interface. The control's class declaration should be something similar to this:

public class DraggablePanel : System.Web.UI.WebControls.Panel, IScriptControl

Next you need to make sure to get a reference of the page's ScriptManager and register the control, and optionally you may want to add a reference to the AtlasUIDragDrop library to save you from doing that in the main page:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
if (!DesignMode)
{
ScriptManager scriptManager = ScriptManager.GetCurrent(Page);
if (scriptManager != null)
{
scriptManager.RegisterControl(this);
scriptManager.RegisterScriptReference(
FrameworkScript.AtlasUIDragDrop);
}
}
}


Next, the only method from the IScriptControl interface that must be implemented is the RenderScript method. The goal of the custom control is to output the following XML-Script:
<control id="webPart1">
<behaviors>
<draggablelistitem handle="webPart1Title">
</behaviors>
</control>

The RenderScript implementation will output the XML-Script above, using the control's id and the panel control's id as the handle:

public void RenderScript(ScriptTextWriter writer)
{
//Outputs control tag
GenericScriptComponent gsc = new GenericScriptComponent(
new ScriptTypeDescriptor("control",
ScriptNamespace.Default));
//Outputs behaviors tag
gsc.ID = this.ClientID;
GenericScriptComponent draggableBehavior =
new GenericScriptComponent(
new ScriptTypeDescriptor("draggableListItem",
ScriptNamespace.Default));
draggableBehavior.AddValueProperty("handle", this.ClientID);
gsc.AddCollectionItem("behaviors", draggableBehavior);
((IScriptObject)gsc).RenderScript(writer);
}

Tuesday, February 14, 2006

Upcoming talk on AJAX/ATLAS

I will be showcasing some ATLAS demos at the next Pittsburgh's .NET User Group meeting on Wednesday, Feb 22nd:
http://www.pghdotnet.org/Events/258.aspx