Performance Issues with the Telerik Dropdown

by Robert Mills 3. September 2010 08:18

It seems there are some rendering performance issues with the Telerik drop down, but I was able to find a fix on one of the Telerik blogs. It is an older post and the namespace on the controls is not what is default now, but it still works. It is basically changing out the embedded control that is used for rendering from a RadComboBoxItem to a virtual stack panel. It took the performance I was seeing from unacceptable to instant.

You can read more here: http://blogs.telerik.com/valerihristov/posts/09-10-28/virtualized_telerik_combobox_for_silverlight.aspx

 

Tags:

Silverlight

Blog Spam

by Robert Mills 6. August 2010 22:02

Holy crap, I sure picked a bad time to start blogging again. 62 spam comments today!

Humorously, I also had a recruiter send me a message through the blog, I mean, really? With all of the people un and under employed in this economy, you would think they would have plenty of candidates without going to such seemingly extreme measures.

Tags:

Media Center

Day One with ATT DSL

by Robert Mills 4. August 2010 20:58

So, today is the big day, when I get to stop tethering on my cell phone and get real internet again. Maybe.

I get home to find a big 70 foot long cable running from the road, across my yard and around to the side of the house. It seems they hooked up my DSL, but didn't have time to bury the cable. They are coming back in eight days to do that...

Having said that, I should have internet! Wait. My welcome package didn't come today like it was supposed to.

As fortune would have it though, I declined being provided a modem and elected to use my own. Jet down the stairs, hook everything up (we'll bypass the complexity caused by the rats nest of cabling in my basement...) and...

I need my PPP username and password. Sigh.

Now, I have to admit, ATT's automated phone service is ingenious. Never before have I had to randomly guess what it actually wanted me to say to get to the right person, after answering truthfully and getting sent in circles for 48 minutes. However, once I actually reached a real live breathing human being, they sorted me out pretty quick, not counting one oddity.

As I have read elsewhere, they really, really didn't want to support my modem. I didn't even ask them to, I literally said I needed my username and password, that's it. I eventually even agreed to use the Motorola 2210 I had laying around from the *last* time I had DSL with them at our old house. Humorously, they use a class C internal address range coming out of their modems. So it wanted to use 192.168.1.1 as the external IP for my network. Kind of an issue, since I use that range for my internal network, and I reallyu wasn't interested in changing my DHCP server's scope, reassigning all of the reservations and rebooting a gajillion machines, and the wireless access point... Not to mention I would have lost connectivity to the server that the DSL modem was plugged in to and I really didn't want to have to walk back in there to log into it locally.

Oddly, this seems like it is what it is for DSL, as the other DSL modem I purchased is actually using 192.168.0.1 as the external IP for my network, which seems even *more* drama filled, as most routers default to that range.

Long story short: Much drama, but I have internet again!

Tags:

Bob

Virtualizing TMG

by Robert Mills 3. August 2010 19:10

I may be a humble software developer by day, but at night... I play a network admin on TV. One of the things I have been thoroughly enjoying playing with lately is Threat Management Gateway, or ISA 2010. The wife, however, is just quite ecstatic that Microsoft now supports running it virtualized, so I don't have to buy another server!

Long live Bill Gates...uh..Steve Ballmer!

Tags:

Networking | Hyper-V | TMG

PDC 2010

by Robert Mills 3. August 2010 19:06

Very excited, unless the world ends between now and then, I am going to the PDC!

Tags:

Bob

ASP.NET MVC 3 Preview 1 is out

by Robert Mills 1. August 2010 15:02

Stumbled across this on HAACKED yesterday. Preview 1 for MVC 3 is out. I must be falling behind, it seems like it hasn't been that long since I launched my first MVC 2 app...

I guess the main things to know are:

  Requires .NET 4.0
  Requires Visual Studio 2010

Read more: http://haacked.com/archive/2010/07/27/aspnetmvc3-preview1-released.aspx
             or: http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx

Tags:

ASPNET | MVC

The Day the Internet Died

by Robert Mills 30. July 2010 15:07

I guess I should first say, I am posting this tethered to my cell phone, as my previous ISP and I have had a disagreement with what constitutes 'service'.

Now, humorously, the ISP I just parted ways with actually looks really good on paper. They offer 30 down/3 up service, albeit at $80 a month (85 if you lease a modem). Having said that, this is actually the second time I have cancelled my service with them.

Let's travel back in time a couple years. Around 2007 or so, I moved near where I am now and found out the area was serviced by Charter Communications instead of Time Warner, which Charlotte has. Now, I have heard complaints about Time Warner's service in Charlotte, but more or less they have treated me ok, my needs aren't that extreme. Anyhow, Charter comes and hooks up our 10meg by 768k service or whatever the default speed was and we go merrily on our way. Except between 5PM and 10PM, when I found myself either with extremely slow speed (less than one meg down) or no service at all, the modem sitting there blinking it's ready light at me.

I call in and they come check out my line, and tell me how everything is great, but of course it is, they come at 8AM. I am not having issues at 8AM. Fast forward 6 months and about 8 service calls later. They are basically refusing to come to my house unless I agree to pay the 'wiring maintenance fee' or some silliness. I agree to pay the fee if they will actually fix my issue. By some act of the Newborn Baby Jesus, they actually agree to come out after 5PM to see what I see. They even send a specialist. He basically takes a reading and within 5 minutes tells me that the issue amounts to over sateration of the nodes that service my area.

Nice, you would think someone could have told me that 6 months and 8 visits ago, instead of blaming me the whole time and telling me I just can't configure my router/modem/computer/whatever. Even better, there were currently no plans to upgrade said nodes, so there was no fix in site.

I called ATT the next day and set up service, cancelling my Charter the day it got hooked up. The problem? At the time, the only service you could get from ATT without also paying for a home phone line was something silly like 768k down/128k up. I struggled along with that as long as I could, but ended up coming to the realization that I had no choice. I had to go back to Charter.

So, I set up the install and get Charter installed again. I pay extra to get 30 down/3 up hopeing that would mean I could at least stay connected to the internet during the peak times. More or less it worked, so I went on for the next couple of years rewarding Charter for their poor service, not only by being a customer, but by paying extra to do so.

The second issue is why I am where I am now. Fortunantly for me, ATT now offers all of their internet speeds whether you buy phone service as well or not, the unfortunant piece is DSL is so rediculously slow compared to what you can get from cable.

But back to why I am tethered to my cellphone. I called Charter for service, my $80 a month 30meg by 3meg line is behaving worse than usual. I haven't gotten a down speed higher than 3.5meg in about 3 days, and pulling up a typical site would sometimes take 30-45 seconds, so there was some serious packet loss going on. The tech comes out and tells me a recent storm caused some issues and I could expect service to be restored to normal in a couple weeks. Really? Then he went so far as to tell me 'if you are lucky and fixing something else fixes your issue, it might be back in as soon as a week!'

Now, I could see if this was 1990 or so, but we live in the future. We work from home, we bank from home, the internet isn't really a luxury item to most people anymore. You don't have your internet and you start to struggle. I called Charter to ask to talk to a supervisor and was placed on hold, and shortly after that, straight out hung up on. This humorously happened four times. Four times I asked to talk to a supervisor and four times I was humg up on. Do you realize the ramifications of that? That would make it seem as though they are actually training people to do that, it couldn't have been a fluke at those odds. I went online and did the live chat. I asked the tech what my options were to escalate a customer service issue and was told there was no path to do that, there was noone to call, noone to contact.

The next day, my internet went out totally. I called back in, and I am sure by this time they have enough notes in my account that noone really wants to talk to me. I ask to have a technician sent out as I no longer have service at all and I want someone out the next day (I called on a Friday). The technician assures me I will have someone out between 9 and 11 am. Things are looking up, maybe I can at least have internet again. I get up semi excited the next day and wait around. And wait. And wait. I call in at 10:50 as their service said I would get a call 30 minutes before their arrival, and 11:00 minus 10:50 is less than 30 minutes.

The nice operator on the line then drops the final bomb. Oh, your service isn't set up for today, it is set up for Monday.

Shortly after that I was talking to the insistant lady in the cancellation department, who was valiantly trying to pitch me a story I didn't want to hear. I just wanted my service cancelled so I could move on.

I sure hope, as I sit here tied to cellphone that ATT loves me more than Charter does. Tell me again why we sell off areas to ISPs and don't let any competition in? It sure isn't in an attempt to improve the customer's experience...

<edit>Humourously, I called back in on 8-2 (I cancelled on 7-24) because I couldn't see any indication on my account management that I had cancelled, and the nice lady said my account wasn't cancelled and that the agent I talked to on the 24th reported that she had 'lost the call' with me. A good indicator that not giving them my business anymore was the right move. Too bad there really aren't any other options.</edit>

Tags:

Bob

Virtualizing Media Center courtesy of Remote-FX

by Robert Mills 23. July 2010 01:13

So, let us start with a bit of a backstory. About two years ago, I picked up one of those snazzy little HP Mediasmart servers and decided to rip all of my movies and put them on the server versus having to dig/find/scratch/destroy the physical DVDs.

Fast forward two years and our TV landscape has changes significantly. We don't have any TV reception except OTA (which actually provides a really, really nice HD signal), we have Media Center PCs hooked to all of the TVs, in the movie theater in the basement and an extender (my old XBOX 360) in the exercise room.

One day about 2 weeks ago, my buddy Dave at work brings RemoteFX to my attention and innocently states, "Why don't we virtualize our Media Centers using RemoteFX when SP1 comes out?" Before we get any further, for the uninitiated, you can read about remoteFX here (http://blogs.technet.com/b/virtualization/archive/2010/03/18/explaining-microsoft-remotefx.aspx) among other places, but I can give you the 2 minute overview.

RemoteFX is coming out with Windows Server 2008 R2 SP1 and Windows 7 SP1. It allows you to virtualize windows 7 in hyper-v on your server, and if you have a supported video card, provide and RDP experience that is more or less identical to your experience on your local machine, including, with some caveats, HD video.

Two weeks and about 10 format c:/reinstalls later, I think I have a passable build. I assume some of the issues I still see will be addressed before the RTM of SP1 and some probably won't.

First, my server is a Dell T605. It isn't the newest machine in the world, but it is new enough it is still under warranty and it supports Hyper-V. Having said that, I tried to install a PCIe 1x ATI 4350 in it and it just refuses to even acknowledge I plugged anything into the machine. The Dell website say there is a similarly specced Quadro that is on the compatibility list, but their online support personnelle insist it is an error on the website and Dell in no way supports discrete graphics cards in their servers. A week later, and I don't actually have a definitely answer there yet, so in the meantime, I have flattened my workstation to play server for the experiments.

So the hardware being used for testing is:
Playing server: AMD Phenom II X4 965BE, 8 gigs of RAM, 2 320 gig Raptors in RAID 0, ATI 4870
Client:Various low powered machines scattered about the house, minus the T60 that decided to pass with 4 short bios beeps the other day and has yet to return

So, we flatten the 'server', install Windows 2008 R2, install the beta SP1, pop it on the domain for good measure and get started.
Once you install Hyper-V, you realize that the RemoteFX graphics adapter is grayed out. Fortunantly there is a friendly tooltop, when you can get it to display, that tells you that you have to install RemoteFX under Remote Desktop Service, not under Hyper-V. As a side story, that makes sense since if you are using terminal services instead of windows 7 clients, you don't need hyper-v, etc.

So, once Server 2008 is up and configured, we went ahead and created a virtual in hyper-v and kicked off the install of Windows 7 Ultimate, and did a bit of multitasking and kicked off the service pack install on the 2 test client machines. Once Windows 7 was installed on the hyper-v, went ahead and installed the service pack on that as well.

A couple of oddities I found, once you install the RemoteFX video driver, you can't see the desktop of the virtual anymore in the hyper-v tools, it shuts it off. This is especially interesting, since both times I set it up, even though I was in the administrator group and could remote into the virtual, I couldnt remotefx in unless I specifically added myself to the list of authorized remote access users. It would seem that under the hood, remoteFX is treated a bit different than normal RDP. Something else that may have happened, though I havent taken the time to replicate it yet, I was able to RDP into the last virtual I set up, but the difference was I only let it set up the firewall exception for RDP instead of disabling it as I normally had done. When I added the remoteFX driver, I suddenly found the machine was not accepting remoteFX connections, so I had to take the driver back off, RDP in normally and turn off the firewall, so there may be a task here to see what ports/protocols might be different.

As for performance, I found that performance was struggling bad in Media Center. The desktop experience itself was very, very good. I added another core and bumped the ram on the virtual up to 2 gigs, and the experience levelled out a lot. In the end I settled on 2 cores per Windows 7 virtual, assigned to its own physical hard drive and 2 gigs of RAM seemed to be the closest I could get to a non-virtualized Media Center experience. One thing that did have me worried, as I was doing my research, I was informed in pre-remoteFX times, you couldnt watch live tv in media center through an RDP window, it would provide you a nice friendly message as it just blatantly refused to try, but part of the remoteFX documentation said that one way you could tell you were in remoteFX was you would have a shutdown option on the start menu instead of the default being log off, so I was rolling with the assumption that difference meant the remoteFX connection was treated more like a local session, and it luckily turned out to be true.

So at the end of the say, we end up with a workable for daily use virtualized media center, netflix works pretty good, though it starts out a bit grainy as the autodetector doesnt think the graphics card is all that strong. DVDs and live TV both play very well. Blurays though struggle in several ways, they drop a lot of frames, and I read the lossless codecs are not bitstreamed though, so sound would be an issue. This is still an awesome win, I will move the best of the media center machines to the theater room, and when the super low power, tiny size remoteFX devices come out, I can replace the rest of the media center machines with a device the size of a cable modem. I would have liked to have done some testing with one of the upcoming devices with the hardware ASIC to decompress the bitmap stream, I am curious if it would give more consistent framerates with the blurays.

One downside to the experiment, the original intent was to find a better solution than using extenders everywhere, and I didn't really do that. The two main places where the extenders fail are
1. Netflix is not in the main media center menu, and in the xbox instance is hard to get to from the media center interface. This is important for the WAF and for the small girls that live in our house ;) this is a requirement in the living room, so no extender there
2. The extenders don't support 7.1 lossless, and this is a requirement in the theater, but not such a big deal everywhere else

So, remoteFX was able to fix number one, and the experience performance wise is right on par with the experience you get in the extenders. Things are pretty smooth most of the time, with the occasional stutter here and there. It did not, however, do anything to address number 2, but I think I would prefer to have a full on media center in that room anyhow, it just seems like the right thing to do.

I know this was a long rambling, unorganized, disaster of a post, but I wanted to get it all down, I am sure I am going to need it again when SP1 hits RTM. And, by all means, I am interested to hear any experiences anyone else might have setting this up.

Bob

Tags:

Media Center | Hyper-V | RemoteFX

Trying BlogEngine.NET

by Robert Mills 22. July 2010 23:03

Well, I starting writing my own blog engine to be cool and all of that, and then realized just how much was involved to actually get the full feature set going, instead of just basic posts/comments and decided to find a canned solution. I have tried various engines in the past, the last 2 being subText and Community Server and figured I would try BlogEngine this time.

My blog has been inactive for the last year or so, but I have been feeling the urges to spew nonsense again for a bit, so if you happen to come across my pages, I apologize in advance.

Bob

Tags:

Bob

Why VB.NET is a Bad choice

by Robert Mills 3. November 2009 19:35

I posted earlier that I recently changed jobs, which means that I went through a good bit of interviewing trying to find the job I thought was right for me at this point in my career.

Some of you may find it silly, but one of the criteria that was pretty important to me was that all new code was going to be written in C# and not in VB.NET. One of my interviewers asked me why.

VB.NET in its very design tries to solve the wrong problem.

Visual Basic.NET is touted as a nice easy to use language for a novice to learn to make applications. The they learn to make applications in VB.NET and continue to write in VB.NET. This comes to the problem. Writing code is easier than reading code. Go ahead, Google it. VB.NET tries to solve the problem of writing code (the easy part) but makes the hard part harder (reading code).

So you spend 6 months creating that jazzy new VB.NET application that saves the world for you company. How long do you spend maintaining and extending that application? 4 or 5 years? Longer?

VB.NET is different.

In this case, different is not good. Different makes the above problem (writing code is easier than reading code) even more obvious. When you are integrating with other code, reading someone else's code, trying to replicate behavior from some other application in your application; most likely you are reading something totally unlike VB.NET. Hell, even if you are rewriting a legacy application, VB.NET isn't even like Visual Basic 6, so you aren't gaining anything there.

C# on the other hand, shares many structural simularities with C, C++, Java, Javascript and others. Even if you can't write in those languages just because you know C#, you can most likely at least get an idea of what is going on by reading them. C++ looks like Moon Language to a VB.NET developer.

Well, you know what? VB.NET looks like Moon Language to everyone except a VB.NET developer.

Tags:

ASPNET

MS Wish Responds to Bob

by Robert Mills 6. May 2007 08:10

So, I sent a SQL 2005 request to MS Wish last week, basically what I would like to see is a client side ability to set up database diagrams in a read only manner. It would be nice to be able to visually look at how tables are linked and interconnected without requiring the DBA to add the necessary permissions to allow you to do it on the server. DBAs get nervous about giving you the permissions you would need to do server side diagrams, especially since it adds one more attack vector and diagrams can allow you to *modify* the table schemas etc (yes, I assume you don't *need* modify permissions)

So, I get a response from MS Wish this morning.

<quote>

Hello Bob,

This is not a form letter response. This email is to inform you that Steve Ballmer has *personally* requested all future emails from all of your known address, and *any* address that could in any way possibly maybe sort of be from you be blocked until the end of time.

Thank you for taking the time to contact Microsoft and have a great day!
MS Wish Team
</quote>

Ok, so maybe that wasn't their *exact* response, but it is what it amounted to in my head.

Tags:

Bob

Writing a dynamic playlist out as an asp.net page

by Robert Mills 1. March 2007 19:40

I have an FTP directory that I keep my music in, and I have a Windows Play List file in it (.wpl). Windows Playlist Files are human readable xml files you can alter in notepad, so when I add a new song to the directory, I just open the file and add another line. A wpl file looks like this:

 <?wpl version="1.0"?>
<smil>
    <head>
        <meta name="Generator" content="Microsoft Windows Media Player -- 10.0.0.3646"/>
        <title>Playlist1</title>
    </head>
    <body>
        <seq>
            <media src="http://blogbybob.com/music/mysong.wma" mce_src="http://blogbybob.com/music/mysong.wma"/>
        </seq>
    </body>
</smil>

So, I had a thought one day. Just the one, of course. Would it be nice if I could add the file, and have it show up automatically when I opened media player?

Well, amazingly enough, it is actually pretty easy to do. The main thing to do is "trick" IE into thinking that your wonderful aspx page is actually a wpl file. Fire up Visual Studio, start a new Web Site and go into your default.aspx file.

Highlight all that crap and delete it. Wait, I mean, all of it but the first line. My bad. And I actually named my file music.aspx, but whatever.

Anyhow change the file contents to look like this:

 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="music.aspx.cs" Inherits="_Music" %>

<?

wpl version="1.0"?>
<
smil>
  <
head>
    <
meta name="Generator" content="Microsoft Windows Media Player -- 10.0.0.3646"/>
    <
title>musicbybob</title>
  </
head>
  <
body>
    <
seq>
      <
asp:Literal runat="server" ID="litPlaylist" />
    </
seq>
  </
body>
</
smil>

except your first line should still point to whatever code behind you are using. Right click that guy and choose View Code.

We are going to get rid of all but 2 of the using statements and add some code to the Page_Load event. When you are done it should look like this:

 using System;
using System.IO;

public

   

 

partial class _Music : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    Response.Clear();
    Response.ContentType =
"video/x-ms-wma";
    Response.AddHeader(
"Content-Disposition", "inline;filename=musicbybob.wpl");
    litPlaylist.Text =
string.Empty; DirectoryInfo d = new DirectoryInfo(Server.MapPath("music"));    foreach (FileInfo f in d.GetFiles())
    {
      litPlaylist.Text +=
"<media src=\"http://" + Request.Url.Host +"/"+ Request.ApplicationPath + "/music/" + f.Name + "\"/>";
    }
  }
}

Except your class name should match whatever is in your aspx page. Yeah, I used some crappy variable names and was all around lazy, but it works, and sometime I *like* to be lazy. This will read anything in the music folder below where this file lives. You can also add other wpl files in the music folder that point to other places if you have music spread around. Music added to those "other" places won't be dynamically added though. The code also doesn't navigate subdirectories in your music folder.

Or so I assume, I never actually tried it.

Tags:

ASPNET

About the author

My name is Robert Mills and I am a .NET developer in Charlotte(ish), NC. I promise to think of something snazzy to put here later.

Tag cloud

Page List