Throttle upload bandwidth in Windows (QoS)

May 24th, 2013

I have digital cable service from Time Warner. It is not the great but still decent. Currently my upload speeds are limited by Time Warner at 1Mbps. The highest I can get in my area is 5Mbps but it is costly. My point is I have an upstream problem. If I want to share files of  any sort of size, it takes forever and slows everything else down as you need both up and down to do anything on the internet.

Recently I have found a solution and it has been in Windows since Vista. Also in Win7, Win8, Server 2008 and 2008R2. Windows ships with Bandwidth throttling specifically for uploads. The following is how to set it up.

Start off by opening up the group policy editor. To do this open the start menu, type “gpedit.msc” , and hit enter. The edit should open, just navigate to “Policy-based QoS” which is found in Computer Configurations -> Windows Settings. This can also be for the user configuration too.

gpedit

Right Click on “Policy-based QoS” and select “Create New Policy…” This will start the wizard.

In the following windows you can setup how and what the policy will throttle. In step 1, the policy is named and this is where the maximum outbound (upload) speed is set.

step1

In step 2, an specific application or url can be setup to be throttled.

Step2

In step 3 the source or destination IP can be set.

Step3

And lastly in step 4, the source and/or destination port can be setup to be throttled.

Step4

For me, I can typically set limits on an application or just the computer as a whole as I have such little bandwidth to go around. This has become really useful for applications like Google Drive Sync that does not have native support for throttling bandwidth.

A side note, more and more consumer routers are able to do QoS and bandwidth management but that is a different post altogether.

EDIT: In some cases, a registry key may need to be changed in order for this to work. More info can be found at the following link. http://support.microsoft.com/kb/2733528

Short overview of living with Dyslexia.

May 15th, 2013

I have 3 learning Disabilities: Dyslexia, Dysnomia, and Dysgraphia. What follows is what it has been like for me over the course of my life.

During the first years of my schooling, I mirror wrote perfectly. My teachers claimed this was a phase and I would grow out of it. To some extent this is true but it is also a sign of a learning disability. At this time, I was not reading at a the level I should have been. My teachers told my parents they needed to read with me more. So they did. For 1st and 2nd grade, things followed the same path. My parents and I were frustrated.

Then I got lucky. My 3rd grade teacher, at the risk of her job, told my parents that I should be tested for Dyslexia. Her husband has it and I showed many of the signs. My parents had me tested by independent testing center and I was diagnosed with severe Dyslexia. I was lucky because I was on the path of falling through the cracks. To this day, after meetings and being tested many times, the school district I attended does not admit to me having any learning disability. I don’t know why but point is I was lucky. Many others are not as fortunate.

Since then, I was tutored outside of school. Since the district has never acknowledged my Dyslexia they did not help. Yes we tried. At a very early age, I knew what college I was going to. UW-Oshkosh. Why? Because they have one of the best programs for learning disabled students. I graduated with honors, a fair amount of student loan dept, and a Job. Fast forward to present day, I am working as a Software Engineer doing product development for a small IT shop.

During the years before college, there was a distinct difference between how teachers acted and how administration staff acted. To this day, I don’t know why the school district worked so hard to keep me from being labeled as LD. Even with that, all the teachers I had were more than willing to accommodate my disability. It was refreshing. It was the little things that made a big difference. Like most of them let me type papers instead of hand write them. Remember this was the days before computers were in every house.

In college, things got even better. Attending a school with a high percentage of learning disabled students was great. There was already a process in place set by the school to help LD students and the entire staff knew about it. On top of that, for the first time I was among other students who were like me. Since I was never in any special ed classes until college, I rarely met people like me. This was awesome. I had peers. I was not alone.

I have always been comfortable with telling people of my disabilities and have never tried to hide it. This continued as I entered my professional life. I don’t hide and in fact I am upfront with any potential employers. I explain to them what I have, how it affects me, and how it likely be show up in my day to day activities. Again, I have found that being up front is a lot less stressful than worrying about being “caught”.

Generally speaking, I have found that that being open and honest about being Dyslexic is the best course of action. People will generally do the right thing. It also helps that I don’t use my disabilities to take advantage of people kindness. Just because I have Dyslexia doesn’t mean I want to be treated differently. What I want is to do tasks I am good at and can do well.

Not everything is unicorns and rainbows. I still read and write at a very low grade level. It has been a while since I have been tested but I would guess I am still below a High School level. Not being able to speak a simple word in front of a customer is always fun. Then there is the issue of when people try to sympathise.

I know people mean well when they say things like “I read slow too” or “My spelling sucks too” but they have no idea what it is like. Worse than that is when people try to marginalize what it is like. For example: I dislike doing software documentation, well any documentation. I know it needs to get done and it is part of my job. It gets done but I hate it. Really hate. When I explain this to people, some will tell me they hate it too or everyone hates it. What they don’t understand is I don’t hate because it is documentation, I hate it because writing for me is terribly difficult for me. I would much rather being doing stuff I am good at. Unfortunately trying to explain this to people comes off as whining or excuses. Someday I will figure it out.

All in all, these are small gripes in the grand scheme of life.

This was very brief and could easily go in great detail. I know. This is the start of a topic I hope to cover as I write more. Comments or questions always welcome.

For more infomation on the learning disabilities that I and many others live with check out the followng links:
http://en.wikipedia.org/wiki/Dyslexia

http://en.wikipedia.org/wiki/Dysnomia_(disorder)

http://en.wikipedia.org/wiki/Dysgraphia

http://www.interdys.org/

Why slow is fast.

May 14th, 2011

Recently, I have been thinking about an old fable. I am sure that is was read to you as a toddler or maybe you read it as a kid. The Tortoise and the Hare is a fable about a hare who challenges a tortoise to a race. The story ends with the slow and steady tortoise beating the hare in the race. One of the interpretation of this story is haste makes waste. I believe this fable has some serious lessons for any one who works with software development.

In college, Computer Science students learn about software development models like Waterfall or Agile Development. The students learn why structure is needed to effectively develop software. They are also taught the downfalls of the lack of structure. I, like may students, learned all of this in college. Recently, this lesson was brought home and I learned first hand why the tortoise is so damn fast.

The hare from the fable has some very appealing attributes on first look. In terms of software development, The hare starts off strong. He produces code sooner and boy can he code. He can also adjust to changes in design and requirements faster. This sounds great doesn’t? I mean who wouldn’t want all of this?

The tortoise on the flip side has to gather requirements and write designs. This is all before coding can even begin. The tortoise has one thing, a process. He knows that following his process will result in a solid product what out anything missed. So he just plugs away, slow and steady.

The devil is in the details. Or so they say. A deeper look at the hare and the flaws become visible. The hare relies on sheer speed. The sheer speed can only continue for a finite amount of time. There is no time for a process or any structure. This means requirements are missed, code is sloppy, and technical dept is being added at a crazy rate. At some point, the hare will hit a wall. This wall has many forms. In my case, the wall is an endless loop of adding and removing requirements and bug fixes.

The tortoise on the other hand is consistent. The code is produced in a consistent manner. The Tortoise’s output is also consistent. Since he has a process, he can accurately estimate when a feature or fix will be completed. In the end, the tortoise will pass by the hare and will do so with a generally better product.

I always knew having a process was needed. Hell, we wouldn’t learn it in college or have people much smarter than me publish books on the subject if it wasn’t important. The thing I didn’t know is the subtleness of the problems that start to creep up. At first it is minor annoyances like having to to fix brittle tests. Before you know it, the Hare will start to cause full blown production problems.

Watch out for the hare. He causes problems.

Book Review: Being Geek – The Software Developer’s Career Handbook.

February 25th, 2011

I’ll admit, I am not much for book reading. I like skimming the Internet and blogs but setting down with a book is not my thing. Maybe it is my Dyslexia, who knows. That is why I was surprised on how fast I read Being Geek by Michael Lopp.

Michael, who often goes by the name Rands, is a engineer manager in Silicon Vally by day and writer/blogger at night. Besides writing books, Rands writes a blog called Rands In Repose where he gives advice about living, working, and dealing with geeks and being a geek. It is well written blog with good content.

Back to Being Geek. The book claims to be the “The Software Developer’s Career Handbook” and it does just that. The content is not earth shattering but it does put things into perspective. Being Geek is written for the target audience of Geeks who tend to view the world in black and white. The content flows from the start of a Geek’s career to the end the current gig along with everything in between.  Chapters are short and to the point, each has a point to be made. While connected and in an order, the chapters can stand on their own. This made the book a joy to read because I didn’t have to go through the fluff to get to the point.

I thought the book was over all very good. There were a few chapters that felt they didn’t apply to me at this moment. These parts where more about being a manager, which I am not (yet anyways). With that said, may of the chapters did apply. The first section of the book walks through the finding a job and interviewing process. This was probably the biggest eye opener to me. I did not realise all the minuscule detail that interviewer is looking for, that is if they are any good. Rands goes into detail on what to expect and what the goals of the interviewee should be. For example, the phone screen, I learned, is all about communication. Can communication flow between the interviewer and interviewee. Rands also discusses the type of questions the interviewer is probably going to ask, why they ask it, and high level suggestions for answers.

In the end the book gave a lot of good information in a no nonsense cut the crap kind of way. I give credit to the Book and Rands for giving me some confidence and motivation in my career.

Android Development: The Fail

February 7th, 2011

So back in October I started the process of learning to do development for to android. Sadly, I am here today to admit that went poorly. This is my reflection on why it went badly and how I expect to better next time.

Problem 1: Me. Yup, that is right. The first problem I ran into was me. I have a lot of ideas for applications for Android and in general. The problem isn’t that I jumped right into development, it was when I jumped I landed in a spot that was over my head and that made me instantly frustrated. With in days of installing the tools and SDK my drive had died. I just got over whelmed with all the new that I didn’t take the time to learn.

Solution: While I hate doing the typical “Hello World” type apps, it is a necessary evil. It is the steps needed to ramp up understanding of the environmental. What I was trying to do was not hard but because I didn’t know the basics of Android development, it was difficult to find help. The process isn’t hard and takes a bit of time but ramping up is needed to keep from being overwhelmed.

Problem 2: Holy cow, embedded application development is slow. Let me be clear, development isn’t slow but getting you application to run via emulator or on a device is painful. When it takes a few minute for my application to run, this just kills the fun and drive to continue. Especially when learning. When I was waiting, it was so easy to get side tracked.

Solution: I hear the sdk and emulators are getting better and faster. I am also in needed of a new PC which is pushing 5 years old or at least an upgrade or 2. Other than that, I am not sure what else I can do.

So the biggest problem was me. Once I can get through them, it should be pretty easy to continue. I plan on starting this again as I think there is some positive applications I could contribute to the community. However this is on hold for the moment. Need to get caught up on technologies related to my job, mainly ASP.NET MVC

Android Development: The Install

October 6th, 2010

I recently picked up my first smart phone. After years of wanting to move up to a smartphone but holding off because of price, I finally caved and picked up a HTC Desire. It is running Android 2.1 out of the box. It is a pretty slick phone. So far I have enjoyed my prechuse.

One of the reason I decided to pull the trigger was the idea of creating application for the phone. By day I am a .NET developer. Mainly C#. I was sort of excited to learn a new development environment and langue because I have been in .NET land for so long. I figure it is time to branch out. Yeah java is not much different than .NET but you have to start somewhere. 🙂

So I had some time to get the Eclipse IDE setup and ready to go to start my journey. I went to http://developer.android.com and followed the instructions on getting started. I am starting from scratch. The machine (win7) I am working on didn’t even have the Java runtime installed yet. Since I am a novice when it comes to Java and Eclipse, I followed the installation steps for the Android SDK. They seemed straight forward.

First step: Get eclipse. Sounds easy enough. Read through the section for ecplise which stated…

A Java or RCP version of Eclipse is recommended. For Eclipse 3.5, the “Eclipse Classic” version is recommended.

What does that even mean? So I want to the Eclipse site and downloaded the Java version of Eclipse 3.6 and continued to the section to install the Android Develipment Tools (ADT).  This is where things get more confusing because I was greated with…

Caution: There are known issues with the ADT plugin running with Eclipse 3.6. Please stay on 3.5 until further notice.

Grrrrrr…. But I just downloaded 3.6.1!! To limit the number of issues I run into I decide to follow what Google recommends and found a copy of Eclipse 3.5. No big deal. I go to run Eclipse and it promptly fails stating it can not find the JVM. At this point I was confused because I had thought that I installed Java at some point in the past. Yeah, I was wrong. Whoops. Over to the Oracle to get the JRE/JDK.

I am running win7 x64 and did what anyone running x64bit OS would do. I download the x64 windows binary. Install Java. Run eclipse. Eclipse fails again. Still stating that it could not find the JVM. Ugh. The message box suggest to add the path to the JVM to my system path. A few clicks later and it should be good to go right? Nope, now Eclipse crashs but with a log/debug message.

At this point I was about ready to give up. That is until it dawned on me. “Hey stupid! You probably can’t run 32bit Eclipse with 64bit JRE!” An uninstall and reinstall of the JRE and eclipse is running!

From here on out everything seem to work correctly. Totally elapsed time: ~2 hours. No really 2 hours.

My enthusiasm has lessened alot because of the frustrating install. I mean I have not even started to write a hello world Android app yet. I am planning on sharing my experience as I go and comparing it to how I view the .NET start up experience.

Windows 7 and Visual Studio 2010 Release Events

June 1st, 2009

Windows 7 is due out by the end of this year. Visual Studio 2010 is due out next year. Does this all sound a bit familiar? It should because there was a similar situation with the release of Windows Vista and Visual Studio 2008. I have always liked going to Microsoft events and drinking the Microsoft “Kool-Aid”. It makes me feel all warm and fuzzy inside! We all assume that there will be events for Windows 7 and Visual Studio 2010 because Microsoft has a track record having events for their major releases. Well, it is my understanding that this time is no different.

At a recent developer event, I happen to catch up with a few developers from Microsoft and asked just what is going on. Here is what I know. The Windows 7 and Visual Studio 2010 events are in the planning stages at Microsoft. They will more than likely be like the “Heroes happen {here}” events for Visual Studio 2008 and Windows Vista. And lastly, the event will more than likely happen next year.

Nothing I was told is set in stone and is all likely to change 10 times in typical Microsoft fashion. And just so there is no confusion, I do not work Microsoft. I just ask them questions.  🙂

Tony.

Google Analytics and Spammers

May 18th, 2009

I decided to try out Google Analytics over the weekend. My web host’s web stats leave something to be desired. Since Google already knows everything about me and my site already, I figure it was a safe things to do. With a WordPress blog, it is very easy to set up. Here are the steps.

  1. Sign up for Google Analytics
  2. Added a bit of JavaScript to footer.php
  3. ???
  4. Profit! 🙂

It literally took five minutes to set up.  Google Analytics has some very cool features.  For example, it keeps track of return visitors vs new visitors. It is pretty neat.

Google Analytics comes with a free side effect! The stat tracking requires the client to have JavaScript execution enabled. What this means is that clients without JavaScript enabled do not get tracked. So if you have a lot of users that disabled JavaScript, this could be back. However there is a an upside, Spam bots do not run JavaScript! I know this because Google Analytics only tracked me for the first day that I had it installed. However during that same time frame I had ~20 spam comments caught. I am happy about this because I get a more accurate view of the visitors to the blog.

Tony.

Windows 7 Feature

May 16th, 2009

So I was getting my oil changed today. While I waited I took advantage of the free WiFi. I had to download Adobe Reader because of the new install of Windows 7. Below is a screenshot of one of the new features of the task bar. It appears applications can change the button on the task bar. The screenshot is of the progress bar for a download in IE8. I think it is pretty cool and will be more useful than flashing that task bar buttons to get my attention.

Progress bar

VHS to DVD project.

May 10th, 2009

The Problem: What to do with all those aging home videos that are on VHS (or other analog) format?

The Answer: Buy some new toys and convert the analog video to something modern like DVDs!

My parents, like many, bought a home video camera in the late 80s. Since then my family has accumulated hours upon hours of home movies. There is a lot of family history on those VHS tapes. That is a lot of family history many do not want to disappear. The real problem is most (none technical people) do not realize that tapes do not last forever and VCRs will not be around that much longer.

I was pretty much going into this blind. There are a many possible way to get analog video converted to digital video. Since I didn’t want to screw this up or waste money on anything that yielded problems or poor quality, I made sure to do my research. VideoHelp.com has proven to be a great resource for all things video. There is a ton of information on the site but be warned, VideoHelp.com has a large community of professionals so it is hard to get a clear answer for the hobbyist.

I started my research with exactly how to get the analog video from the VCR to my computer. There are tons of ways to convert analog video to digital video. There are a number of hardware to software and internal and external solution to do this. After reading the net, it becomes clear the easiest way to get video from analog to digital was to use a GrassValley ADVC110. The ADVC110 takes in S-Video or Composite connectors. It will do the conversion from analog video to digital video in the unit and outputs the video from the device over fire-wire. The video that is output from the device is DV-AVI and runs about 13GB/hour.

The next major part of this plan was to find a VCR. There are a lot of options for a VCR too. Finding a VCR proved to be even more complicated than finding a device to do the video converter. It seems that there are a lot of opinions how what type of VCR is better and why. There is a large debate over consumer vs professional VCRs and which one is better. At the present moment in time, there are no companies making standalone VCR players. The options are to buy a used professional or prosummer VCR from EBay or similar place or you can buy a consumer dvd/vcr combo from your local retailer. The main difference between the two options (form what I can tell) is a some of the professional VCRs will have image correct/stabilization in the form of a TBC or Time Base correction device. A TBC will make jumpy video more stable and remove some of the artifacts form the video.

Since I needed a new DVD player for my office, I opted to go with the consumer DVD/VCR combo. I bought a Philips DVD/VHS combo from Wal-Mart for $80 bucks. I figured if the video quality was poor, I would try to find a used professional VCR. After all my research and worrying over what to buy, I finally pulled the trigger and bought the ADVC110 and VCR/DVD player. Last weekend, I hook it all up and started to convert video. I have 13 family video tapes to convert and since then I have done 3 of the tapes. I wanted the DVDs to look as good as the VHS tapes when being played on a TV. I can say that with my current set up the digital video looks better than the VHS tapes. It is all really easy to use too!

Set Up of the VCR and ADVC110 is very easy and easy to work with. The hardware set up consisted of connecting the VCR to the ADVC110 and the ADVC110 to my computer. To capture the video being pushed from the ADVC110, I use a free tool called WinDV which is very easy to use. Once the raw DV-AVI video is captured, I have been using Windows Movie Maker and Windows DVD Maker to create movies and DVDs. Both are straight forward to use. They are not very robust but they get the job done to my needs.

I am open to question just remember I am by no means an expert on this subject. Here is a very small example of raw video that has been converted from on of the tapes. The clip is what my bedroom looked like when I was little.

Tony