Thursday, January 26, 2006

rd.jpg

UPDATE: We used this today and it ROCKS! One point to note, you'll lose control of your caps lock and num lock keys. It was a total trip to have the person that was 'controlling' the remote session hit their num and caps lock and watch the lights change on my machine! The other cool thing is even though I'm not the one to initiate the remote control request, both parties still have the ability to move the mouse and interact in the session, even though it's two sessions. So be careful.

Again, this tip comes from a co-worker here. Have you ever wanted to Remote Desktop into a machine to do some work, but also wanted to allow another remote party to see what you're doing? I thought it was impossible, but apparently not. Here's what to do to allow another Remote Desktop user to watch what you're doing, as you're remoted into the machine:

   1.> Both parties remote desktop to the server (make sure you're both in the same monitor resolution)

   2.> Now that you're both in, the person 'in control' should go to a command prompt

   3.> Type 'tsadmin' and hit return

   4.> Locate the other remote desktop session, right click on the session and choose remote control.

Viola! This is going to solve some major problems on an upcoming rollout. Sweet!

 

Thursday, January 26, 2006 9:56:47 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [1]  | 
 Wednesday, January 25, 2006

I can't say enough about the company I host with. They do an amazing job. I pay like less than $8 a month, and have some very nice features, for a really inexpensive hosting company. All of my .NET stuff is on the 1.1 Framework, but I have plans of redoing it all in the 2.0 Famework, they support both.

Their admin tools are awesome too. Web based administration of email, dns, and some IIS features specific to my application space on their server. Throw in backups, and a ton of transfer, and it's such a great deal. Only once or twice in the past year have I ever had problems, short email outages, but they're a growing company and they're honest when things do go wrong.

From a development stand-point, I have yet to find a hosting provider with so many 3rd party controls they offer to their customers. They even have some cool things like being able to schedule a URL to hit (for a webservice for instance). They have over 40 components available for use, and typically development ones you can copy locally for offline development.

Even though FreeTextBox is an awesome WYSIWYG editor, these guys have RichTextBox which is also a really good control. They even have the rest of the Rich components, including the slider, and datepicker. They also have some great charting components.

Their customer support team does a pretty good job too, they generally respond to emails within an hour or two.

If you're looking for hosting, I'd definetly check them out. They were the Visual Studio Magazine Reader's choice hosting provider of 2005.

www.DiscountASP.net

Wednesday, January 25, 2006 7:40:25 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

Ok, I admit it, I didn't plan ahead, nor did I really educate myself as to how cool the new Xbox 360 was going to be. So I've pretty much heard from almost every brick and motar store, don't expect to get one (especially the premium one) before March - April.

So I broke down, and ordered one from Game Crazy. I figure if I find one online before then, I can cancel my order. I'm watching sites like www.notifywire.com and xbox.clambert.org. These two sites monitor online retailer stock, and notifywire will even send you email to your email account or phone when an online retailer has the specific model you want, in a price range that you define. (This used to be the notify360.com site, but the developer has abstracted the site out to handle all kinds of products - maybe PSP3?)

So let's get to the extortion. I could have purchased an xbox 360 premium every day this month from retailers like, Amazon, Wal-Mart, Barnes and Noble, or others. The problem is they are selling the units 'bundled' with anywhere from 6 - 10 games, extra controllers, and a ton of other things, that I'm guessing I'll eventually get. The catch? $1000. Yeah a grand.

I know to get into this thing I'll drop at least half of that, and that's already gonna be a purchase that is not going to make me a popular husband for probably a few days, but it's gonna happen.

I understand about supply and demand. I just think that it's crappy that Amazon, and even the horrible Wal-Mart are doing this, just to increase their sales.

Comment on your thoughts, if you have one, if you paid top dollar, etc. I'm curious.

Wednesday, January 25, 2006 12:11:55 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Thursday, January 19, 2006

 

When I snap a picture from my phone, with an extra click or two, I can send it to any email address I want.

I've seen camera blog sites, and thought it would be cool to do my own version. So I'm making this C# .net code available to you all, play with it, improve it, add it to your site. If you implement it, let me know I'd like to see!

Thanks to Scott Hanselman, who gave me the idea to use threads within .NET to accomplish some of the work. I was doing this before with a scheduled webservice that ran once every 15 minutes. While this worked fine, it was a pain to wait 15 minutes for a picture to be posted. It was also kind of lame because not all web hosts have the ability to schedule a web service. Using threading within .NET, when the web application starts, a thread is invoked to do the image checks to an email address you specify. The frequency that the thread starts and stops is also configurable.

Once the initial version of this was created (some time ago) I realized a few things. Initially I had set it up with essentially no security. All someone had to know was the address that I sent images to, and they could post an image to my site. I then added a check to make sure it was coming from my phone's address at least. So someone that wanted to post an image would have to know several things, a.>the address to post messages to, b.>your phone's address, and c.>that you even did this on the web site to begin with. After more consideration I added the ability to turn on one more level of security, a pin code. So if configured in the web.config your sms message must contain a pin that matches a value in the web.config.

Keep in mind that this was developed rather quickly, and there is definite room for improvement. It is currently working with Cingular phone service. I'm guessing that different providers handle messages differently, if there is enough demand, I'm willing to build processing models around the different providers. For instance, cingular's text is added to the message as an attachment, which I thought was odd.

The file included in this post is a C#, .NET 1.1 project, configured to work on Cingular (maybe others) celluar SMS service. The zip file contains the .NET Solution, respective dlls, and two sample images. I have the latest image control on the front page of my site, and it points to the camera blog page.

So here's how it goes:

  • You snap a picture w/ your camera phone.
  • You send the picture via SMS message to an email addrees that's on an POP3 compliant mail server
  • Your web application is always running and checking this address
    • The thread starts the check
    • It logs into the mail account
    • It finds a message from your cellular address
    • It finds an image attachment
    • If pin check is on, it determines if the pin in the message matches your pin setting
  • It posts the picture to your site
  • It deletes the mail message
  • The thread sleeps until time passes and it starts all over again.

On the web site:

 I have included one page of this project called default.aspx that includes:

  • A 'latest' image image control - this user control picks the latest image from directory where they're being stored.
  • The image blogger control that pages the images in a dataset, and allows users to page through them.


web.config settings are documented pretty well. contact me if you have questions.

Feature enhancements:

  • add ability to add text captions and display them w/ the picture, stripping out pin of course.
  • Ideas?

View the latest image control and the image blogger control in action.

Some basic installation instructions and files for download can be found here.

Thursday, January 19, 2006 7:51:15 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Wednesday, January 18, 2006

UPDATE: I played around with this last night, it's amazing. If you use SQL, you need to try this out.

When I'm programming an application that utilizes a SQL database. I often spend quite a bit of time using SQL Query Analzyer. Inside the query tool, I also seem to experience amnesia. I often forget table names, the columns in my tables, sproc names, and don't even get me started on syntax. Eric Hulbert at opus:creative pointed me to SQL Intellisense at http://www.promptsql.com/

I'm going to install it and try it tonight, but this looks just like the Visual Studio IDE's implementation of intellisense. This thing is even smart enough to parse your SQL code as you go becoming aware of things that you have already typed. So you're writing a select staement joining several tables? Those joined tables become part of the intellisense, and they'll even suggest how to complete your joins. Amazing.

It's super cheap too, $25 for an individual license!

Check out this image of the tool in action:

Wednesday, January 18, 2006 12:48:36 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, January 17, 2006

Are you still paying for plain old telephone service (POTS) from a huge conglomerate, like AT & T, Verizon, or Qwest? Do you ever ask yourself why? If you're paying more than $30 a month for phone service (think about voicemail, caller ID, call waiting, or features you pay for like *69) you should consider making a jump to a VoIP provider.

Do you get charged for long distance? It's 2006. It's time for these huge companies to be innovative, and if you pay attention, they're getting the message. AT & T now offers a VoIP service, but it's still almost 40%-50% higher cost than other new players in the market.

Vonage. Yeah, strange name. We've had Vonage for almost two years. Early on, it was dicey at best. I had several times where I thought I would lose the battle (with my wife) and have to switch back. But we stuck it out, and it's really great. We pay $27.xx a month and that includes unlimted phone service, with all the goodies. Caller ID, *69, call rejection, call waiting, ... the works. The best part is the voicemail. You can setup the system to email your voicemail messages to any address. You can also log into the vonage web site and listen to your voice mail messages. I wrote a tray application that notifies you of voicemail, grab it for free.

So the biggest issues people have switching from POTS to VoIP I see as the following:

  • I want to keep my existing phone number. - You can. Vonage will let you keep your existing number.
  • I'm worried about the call quality - It's really good now, truthfully every now and then we have a 'strange call'
  • I'm worried about 911, it won't work with VoIP right? - This is one of those things that's been so over hyped that I see this as one of the biggest barriers to entry. When you sign up w/ the vonage service you can establish a primary address as the place where you want 911 to be dispatched. The whole thing with VoIP phone service, is that I can take my phone adapter and plug it into any network. So even though I live across town, I could bring the box to your house, plug it into your network, and if you called my phone number, my phone would ring in your house. So this forces the providers to make you establish a default dispatch address for 911. So if you call 911 and have your vonage box at another address, they'll come to your house. I think you'll see that this is a situation that would probably not happen.
  • What if my internet is down? - You can configure a phone number to relay calls to. We use my cell phone, and there have been times where I've gotten a weird call in the middle of the day, and the person calling said, "I called you at home" Then a lighbulb goes off in my head, and I say to myself, "Ahhhh my internet connection must be down". It's happened so rarely that I'm usually suprised when it does occur.
  • How will I get it working on all my phones? - Another simple solution. Once you get the service, you unplug your outside phone box from the street (one screw and a painfully obvious connection to unplug from the inside of the box) and just plug your vonage box into any phone extension, it will then link all of your extensions to the vonage box.
     

That's it. I opened the adapter, which looks like a small answering machine, plugged it into my network, plugged it into the wall, and then plugged it into the phone jack, and that was it. It was up and running in 30 seconds. It's one of those things I take for granted now. I forget we even have anything different.

But I love the money we save, and that we're not being nickle and dimed to death for things like caller ID and voicemail. Let me know  if you have questions, if you want to sign up, I can get you a month for free.

Tuesday, January 17, 2006 9:48:11 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Monday, January 16, 2006

I've upgraded to the latest version of Das Blog. Working out the bugs now.

Monday, January 16, 2006 6:20:32 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

So a long time ago, I had written some code to automatically display images from folders. So on my personal site via login, family members can see pictures, and all I have to do is just upload a folder of images. Thumbnails and paging, etc. etc. is created automatically. It's nice because I can just dump pictures into a folder and forget about it. No coding, no hassle, no fuss.

The big problem I ran into was that there is no way using the FileSystemInfo object to sort by date. I think that is crazy. So I had to use the IComparer interface to do the comparison my self.

System.Collections.IComparer dateComparer = new DateComparer();

System.IO.DirectoryInfo mDir = new System.IO.DirectoryInfo(System.Configuration.ConfigurationSettings.AppSettings["KatherineImages"].ToString());
            
System.IO.FileSystemInfo[] mFiles = mDir.GetFiles("*.jpg");
Array.Sort(mFiles, dateComparer);

private sealed class DateComparer : System.Collections.IComparer
{
    public int Compare(object info1, object info2)
    {
       System.IO.FileInfo fileInfo1 = info1 as System.IO.FileInfo;
       System.IO.FileInfo fileInfo2 = info2 as System.IO.FileInfo;

       DateTime Date1 = fileInfo1 == null ? System.Convert.ToDateTime(System.Data.SqlTypes.SqlDateTime.Null) : fileInfo1.LastWriteTime;
       DateTime Date2 = fileInfo2 == null ? System.Convert.ToDateTime(System.Data.SqlTypes.SqlDateTime.Null) : fileInfo2.LastWriteTime;

       if (Date1 > Date2) return 1;
       if (Date1 < Date2) return - 1;
       return 0;
    }
}

This allows me to sort the files by date, so when uploading images from a digital camera session, people are not seeing the last images first. They are seeing the images in the date/time order they were taken.

 

Monday, January 16, 2006 5:33:29 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, January 10, 2006

This thing looks sweet. Ok, I'll be the first to admit I have an electronics habit almost as bad as some people's drug habits. This thing looks so damn cool.

Each key is an LCD display, allowing you to display any image to any key. Really cool stuff.

For gaming, this is huge. You can customize the keys to display “run“ “shoot“ or whatever the game requires. This is cool for obscure game settings that are critical during play, but not used for the basic game play.

There are some other cool things too. There's a bank of keys that you can assign to do whatever you want. Note the picture above, explorer's and iTunes icons appear on their own keys. I think that is neat. You could conceiveably have a screen saver that ran across the keys on your keyboard. I would imagine we will see an endless onslaught of 'skins' for your optimus keyboard just like all the bad skins for winamp.

There will be some good ones too I'm sure. The questionable things are that this company appears to be out of the former Soviet Union, but they claim the device will be available world wide. We don't know much about the weight, feel, and things like how much pressure / resistance it takes to push the keys.

It's supposed to be platform agnostic, working w/ any ccomputer (with drivers I'm sure). There will be an open source SDK

You can learn more about the keyboard here and subscibe to receive updates as they are available.
http://www.artlebedev.com/portfolio/optimus/


Tuesday, January 10, 2006 11:47:10 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Sunday, January 08, 2006

So a co-worker sent me an 'invitation' to install MSN Messenger 8.0 Beta. I have completely hated 7.5, I think the user interface is childish looking, and all of the 'extra' crap like winks, and nudges, etc. are totally stupid.

I'm glad I installed 8.0. I like the look of it, and there are some great new features. I can finally name my contacts what I want them to be! No more "captain kick" I can now name that person by their name... people change their screen names all the time, and I have to constantly click to see the email address to spark my memory of who someone is. The video is sweet. Sound, a little sketchy.

There are of course down sides. My first attempt at the new 'File Sharing' feature was seriously disapointing. Scott Hanselman and I were chatting via MSN video and voice, and all of that data was working relatively well. He sent me a photo of his new son, and it chugged along for a couple of minutes. Scott's comment was, “man the video is coming accross fine, why can't the file transfer work better?“ I totally agree.

The advertising seems a bit more exageratted in the main IM client window. I like the fact that Google Talk, and Skype don't do this.

Another cool thing is you can add notes, and key search words for contacts. So if you have a friend that is a co-worker, you can add a keyword called work and friend to each contact. You can then search for a term, showing all the contacts that matc. Kind of a hack I suppose, but still nice.

I have invites, so if you would like to try it out, post a comment and I'll send you one, I'll need your email address.

 

 

Sunday, January 08, 2006 12:17:23 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [13]  |