I've recently bought a new computer with Vista on it. I was very excited to get this new machine with way better specs than my previous machine. I was also excited to see Vista. So I turned on the machine and was quickly disappointed to note that my new "faster" machine ran a littler slower than my old machine. I also noticed some other things that didn't quite run right. So I wiped my drives and put Ubuntu on it. My wife wants windows back so I'm going to put XP back on the new machine and hopefully see the speed that I was expecting.
The one thing that I really liked about Vista was the Start Menu Search Box. This search box allowed me to type in a portion of the name of the program that I wanted to run and it would start it for me. For example, typing "fire" would start up my FireFox browser. It was really convenient.
I was thinking about this and thought, "Why not find a thirdy party app that can do this for me in XP?!" So I did and I found Launchy. It is a free tool that indexes the programs in your start menu and can launch your documents, project files, folders, and bookmarks with just a few keystrokes. It makes it very easy for me to quickly find all of my applications. You can set which folders are indexed which keeps too many bad results from showing up.
I found some other similar apps and I liked that this one did not mess with the current Start menu. I like the XP Start menu and don't want it to be replaced.
Check it out: http://www.launchy.net/
Thursday, December 13, 2007
Monday, October 29, 2007
Decent Looking File Upload Boxes
I found this interesting article about creating decent looking file upload input boxes. Check it out: http://www.shauninman.com/archive/2007/09/10/styling_file_inputs_with_css_and_the_dom
Ring Ring
See Update Below
So I have a new phone number. It's supposed to be the last one I'll ever have according to Grand Central. Grand Central is a new service that I'm playing with. Here's their own schpeel about their service:
I've been using them for over a month now and I've really enjoyed the service. I like people being able to be reach me without trying to play phone tag. I also like having a single voicemail box. They offer a lot more features than the ones listed above. For example, they have custom rings that you're callers will hear while Grand Central (GC) tries to call your phone numbers, some of them are quite funny.
They also have a phone switch feature that allows you to transfer your current call to another one of Grand Central phones. For example, if someone calls me on my GC number and I pick up on my work phone. Let's say that it's my wife and she talks more than I expected (happens all the time) and I need to head for home. I can hit the '*' on the phone and GC will have all my other phone numbers tied to GC ring. So I pick up my ringing cell phone, hang up the work phone and continue talking to my wife without her ever knowing that she's been transferred.
It's been a great service. I think they are still in private beta so not everyone can sign up for the service right now. I still have a few invitations left, so let me know if you want to try out the service.
Update: GrandCentral is not doing invitation right now.
Update 2: GrandCentral is now Google Voice. The service is essentially the same just run by Google.
So I have a new phone number. It's supposed to be the last one I'll ever have according to Grand Central. Grand Central is a new service that I'm playing with. Here's their own schpeel about their service:
What is GrandCentral?
Get all the same calls, but in a whole new way.
GrandCentral doesn't replace your phones; we just link them together and help them do more. How do we do that? We give people One Number...for LifeTM - a number that's not tied to a phone or a location - but tied to you.
With GrandCentral, you can be reached with a single number, answer a call at any phone you want, seamlessly switch phones in the middle of a call, and even know whether a call is important before you take it.
What else can I do with GrandCentral?
We're not your typical phone company. And these aren't your typical features.
- Check your messages by phone, email, or online
- Keep all your messages online for eternity
- Record and store your phone calls (just like voicemail)
- Quickly (and secretly) block an annoying caller
- Click-to-dial from your address book
- Surprise your callers with a custom voicemail greeting
- Forward, download, and add notes to your messages
I've been using them for over a month now and I've really enjoyed the service. I like people being able to be reach me without trying to play phone tag. I also like having a single voicemail box. They offer a lot more features than the ones listed above. For example, they have custom rings that you're callers will hear while Grand Central (GC) tries to call your phone numbers, some of them are quite funny.
They also have a phone switch feature that allows you to transfer your current call to another one of Grand Central phones. For example, if someone calls me on my GC number and I pick up on my work phone. Let's say that it's my wife and she talks more than I expected (happens all the time) and I need to head for home. I can hit the '*' on the phone and GC will have all my other phone numbers tied to GC ring. So I pick up my ringing cell phone, hang up the work phone and continue talking to my wife without her ever knowing that she's been transferred.
It's been a great service. I think they are still in private beta so not everyone can sign up for the service right now. I still have a few invitations left, so let me know if you want to try out the service.
Update: GrandCentral is not doing invitation right now.
Update 2: GrandCentral is now Google Voice. The service is essentially the same just run by Google.
Wednesday, October 03, 2007
Been Busy
Sorry I haven't posted in awhile. I started up my Master's degree in August and I've been a little busy. By the time I get done with work and school, I have very little desire to sit in front of a computer. I hope to catch up on some blogging during the fall break.
Monday, July 23, 2007
Picking Out Color Schemes
I hate trying to pick colors out for a website. If you're like me, you'll want to check this site out:
http://kuler.adobe.com/
Thanks Chris
http://kuler.adobe.com/
Thanks Chris
Another Handy Find
I'm sure everybody has a free online fax service that they use. I didn't for awhile and found faxZERO about a month ago. Their service is free but includes an advertising cover page. They accept Word doc or PDF files. They also have a pay version for $1.99 that doesn't have ad on the cover page (although this seems kind of pricey to me). What online fax services do you use?
Handy Regular Expression (RegEx) Tool
I found a handy tool that can help you quickly validate your regex expressions or validate text based off of your regex expression. It's not very fancy but it does the job.
Check it out: http://erik.eae.net/playground/regexp/regexp.html
Check it out: http://erik.eae.net/playground/regexp/regexp.html
Friday, July 20, 2007
My Brain is Full Now But Empty When I Need It
Have you ever had a great idea but by the time you can write it down, most of the details are gone from your mind?! Or what if someone tells you about some event that you should go to but don't have anything to write it down with. This stuff happens to me all the time. I think I just have too much garbage in my brain.
I recently discovered a service that I really like that helps me remember some of the important stuff until I can write it down. It's called BrainCast. It is a web/phone service. Here's how it works:
Check them out: http://braincast.viatalk.com
I recently discovered a service that I really like that helps me remember some of the important stuff until I can write it down. It's called BrainCast. It is a web/phone service. Here's how it works:
- You have something that you need to remember.
- You call the BrainCastphone number from a phone number that you have pre-configured with BrainCast.
- You immediately here a beep, and then you leave a message with the details of the thing you need to remember.
- BrainCast takes the wav file from your message and automatically ties it to your web account
- Later, log into your BrainCast account and organize/listen to your BrainCast messages.
Check them out: http://braincast.viatalk.com
Free PGP Software
At my day job, I deal with a lot of sensitive information. Sometimes I need to send files to someone or receive files from someone. My boss gets really nervous when I send social security numbers and salary information in clear text. So I found a free PGP application that lets me encrypt and decrypt these sensitive files. It doesn't have the cleanest interface, but it allows me to manage (add/delete/manage) my PGP keys, encrypt/decrypt, and sign files. I highly recommend this tool if you have any kind of sensitive data that you need to send across the public internet.
http://www.gpg4win.org
http://www.gpg4win.org
Thursday, July 12, 2007
My Security.Config files for .NET are missing
I went to modify the security rules for a server the other day and I could not find the security config file (usually found here: %WinDir%\Microsoft.Net\Framework\vx.y.zzzz\config). I did some research and found out that sometimes the security.config file is not created when you install .NET and the framework uses default security policies built into the framework. I found that you can get the framework to emit the default security policies into the security.config file by running the following command:
caspol -all -reset
Check back in the %WinDir%\Microsoft.Net\Framework\vx.y.zzzz\config folder and you'll see the security.config file. Now you can modify it all you want.
Source: http://blogs.msdn.com/shawnfa/archive/2006/02/09/527688.aspx
caspol -all -reset
Check back in the %WinDir%\Microsoft.Net\Framework\vx.y.zzzz\config folder and you'll see the security.config file. Now you can modify it all you want.
Source: http://blogs.msdn.com/shawnfa/archive/2006/02/09/527688.aspx
Friday, July 06, 2007
Pixel Guess
Have you ever played the pixel guess game? I play it all the time. I'm trying to figure out how big something is on a computer screen and you have to start arbitrarily guessing its size. My brother told me about tool that he uses to help alleviate this issue. It's called Pixel ruler. It shows a ruler with pixel increments on your computer screen that you can use to measure screen objects. It doesn't have a lot of options but you can flip it horizontally or vertically. It is a very handy tool.
http://www.mioplanet.com/products/pixelruler/index.htm
http://www.mioplanet.com/products/pixelruler/index.htm
Screenshot App
I've been using this tool for quite sometime but I went to put it on a new computer and couldn't remember its name. So I'm putting it here to remind me. The application is called Gadwin PrintScreen. It replaces the functionality of the Print Screen button with a whole lot better functionality. You can configure to capture a rectangular area (my favorite option), capture the current window or full screen. It has oodles of settings to customize it. This is a very handy tool.
http://www.gadwin.com/printscreen/
http://www.gadwin.com/printscreen/
Friday, June 29, 2007
Sharepoint Unexpected Error Page
Have you ever been programming in SharePoint and get the most wondrous and detailed error page:
An unexpected error has occurred.
I swear that I used to get that error everyday. Then I would have to try to debug what was causing the error. About a year ago I had found a way to turn this page off and get the actual error page with all the exception information (i.e. Error message, stack trace, source, etc.). Unfortunately I didn't blog about it and had to go looking for the solution again when I moved to a new server that didn't have the solution in place. For my notes and yours if you need it, here's the solution:
You must also ensure that the <customErrors > element is configured properly in the web.config file. Disable the <customErrors> element by setting the mode attribute to "Off":
<customErrors mode="Off" />
Originally found on the page: http://www.devx.com/dotnet/Article/17518/1954?pf=true
An unexpected error has occurred.
I swear that I used to get that error everyday. Then I would have to try to debug what was causing the error. About a year ago I had found a way to turn this page off and get the actual error page with all the exception information (i.e. Error message, stack trace, source, etc.). Unfortunately I didn't blog about it and had to go looking for the solution again when I moved to a new server that didn't have the solution in place. For my notes and yours if you need it, here's the solution:
- Open to the web.config file from the virtual directory containing your SharePoint application.
- Change the line <SafeMode MaxControls="50" CallStack="false" /> in the
element to: <SafeMode MaxControls="50" CallStack="true" /> - Save and close the web.config file.
You must also ensure that the <customErrors > element is configured properly in the web.config file. Disable the <customErrors> element by setting the mode attribute to "Off":
<customErrors mode="Off" />
Originally found on the page: http://www.devx.com/dotnet/Article/17518/1954?pf=true
Friday, June 22, 2007
Tuesday, June 19, 2007
Instant: The polaroid of Ajax
I found a javascript library that takes your image and replaces it with "polaroid" like images. It seems pretty cool. Check it out:
http://ajaxian.com/archives/instant-the-polaroid-of-ajax
http://ajaxian.com/archives/instant-the-polaroid-of-ajax
Wednesday, June 13, 2007
Professional Video Gaming
I totally missed my calling in life: http://www.thecgs.com/
If I had known that there was going to be a professional video gaming league when I was choosing my career, I definitely would have made a few different choices. Their site says that the total salary payroll will be $5 million. I'm soooooo jealous!!
If I had known that there was going to be a professional video gaming league when I was choosing my career, I definitely would have made a few different choices. Their site says that the total salary payroll will be $5 million. I'm soooooo jealous!!
Wednesday, June 06, 2007
TrueCrypt is Truly Cool
Security is a pretty big thing now a days. Everywhere you look there is personal information getting stolen and abused. A friend of mine mentioned to me several months ago about a security software he's been using for some time. I wasn't really interested at the time because I really didn't see the need for it. Recently I noticed that I'm having a lot of personal information sitting on my work computer that I'd rather not have my employer or coworkers getting access to. So I emailed my friend and he was kind enough to tell me again the name of the software. The software is called TrueCrypt.
This software is pretty darn cool. I was up and running in less than five minutes. I was a little daunted at first in getting started but they include a very good tutorial (PDF) on how to install (installation is optional) and start using TrueCrypt.
TrueCrypt let's you create an encrypted volume that then can be mounted as a drive. It has oodles of options for encryption types, hash methods, etc... When a volume is mounted, the encryption is seamless and done on the fly. When a volume is unmounted, the data is encrypted and unreadable. To mount a volume, a strong password is required.
One cool feature is that you can put TrueCrypt's software files on a USB flash drive and then put the encrypted volume on the same USB flash drive. This allows you to carry your information with you in an encrypted format and be able to access it whenever you need it (you will need admin privileges on the computer that you try to run TrueCrypt on).
Another nice feature is that they have both Windows and Linux versions of their software and their encrypted volumes are compatible with either version. The Windows version allows you to setup 'Hot Keys' that will mount the drive and unmount the drive quickly. Unfortunately the Linux version is command line only, which isn't terrible but makes it less usable for those wanting the 'Hot Keys' functionality.
I definitely recommend this tool.
http://www.truecrypt.org
This software is pretty darn cool. I was up and running in less than five minutes. I was a little daunted at first in getting started but they include a very good tutorial (PDF) on how to install (installation is optional) and start using TrueCrypt.
TrueCrypt let's you create an encrypted volume that then can be mounted as a drive. It has oodles of options for encryption types, hash methods, etc... When a volume is mounted, the encryption is seamless and done on the fly. When a volume is unmounted, the data is encrypted and unreadable. To mount a volume, a strong password is required.
One cool feature is that you can put TrueCrypt's software files on a USB flash drive and then put the encrypted volume on the same USB flash drive. This allows you to carry your information with you in an encrypted format and be able to access it whenever you need it (you will need admin privileges on the computer that you try to run TrueCrypt on).
Another nice feature is that they have both Windows and Linux versions of their software and their encrypted volumes are compatible with either version. The Windows version allows you to setup 'Hot Keys' that will mount the drive and unmount the drive quickly. Unfortunately the Linux version is command line only, which isn't terrible but makes it less usable for those wanting the 'Hot Keys' functionality.
I definitely recommend this tool.
http://www.truecrypt.org
Tuesday, May 29, 2007
Button Creator
I found a website that lets you create web 2.0ish image buttons. It seems to create very nice looking buttons.
http://www.mycoolbutton.com/
http://www.mycoolbutton.com/
Wednesday, May 16, 2007
Design Ideas for that "New Look" on your website
A previous coworker pointed me to a design website that has free website designs that you can use to create a template for your website. Some of their designs are aren't great but they have quite a few good designs. The site is http://opendesigns.org/.
My coworker's original post was http://ckcmoss.com/blogs/ckcmoss/archive/2007/05/02/looking-for-a-new-design-for-your-website.aspx.
My coworker's original post was http://ckcmoss.com/blogs/ckcmoss/archive/2007/05/02/looking-for-a-new-design-for-your-website.aspx.
Monday, April 23, 2007
Corners with JavaScript
I found a cool JavaScript library that allows you to create rounded corners to objects dynamically.
http://www.netzgesta.de/corner/
http://www.netzgesta.de/corner/
Sunday, April 01, 2007
Stripe Generator
I'm not sure how handy this will be but I found a website that allows you to customize and create your very own striped background:
http://www.stripegenerator.com/
http://www.stripegenerator.com/
Javascript Modal Boxes
I found a JavaScript library that has a lot convenient functions for creating modal boxes for your website:
http://livepipe.net/projects/control_modal/
http://livepipe.net/projects/control_modal/
Cool Password
Here's a cool way of signing into your computer:
http://news.com.com/1606-2_3-6171054.html?part=rss&tag=2547-1_3-0-5&subj=news
http://news.com.com/1606-2_3-6171054.html?part=rss&tag=2547-1_3-0-5&subj=news
How Small We Are
I found this link the other day. It's a flash site that shows perspective of the universe down to the atom. Kind of humbling:
http://www.nikon.co.jp/main/eng/feelnikon/discovery/universcale/index_f.htm
http://www.nikon.co.jp/main/eng/feelnikon/discovery/universcale/index_f.htm
Monday, March 26, 2007
Using VB keywords as Variables
This is something I figured out awhile ago but haven't bothered to post it until now. Like I mentioned in an earlier post, I have started using VB.Net at work. As I was trying to convert some sample from C# to VB.Net, I ran into a problem. In C#, a name of a get/set accessor was not a keyword but in VB.Net it was. No matter what libraries or how many different online code converters I tried, I could not get it to work. I finally resorted to google and found out that you can surround a keyword with brackets ([ ]) and than you can use that keyword however you need. In my case it allowed me to use custom sinks in .NET Remoting. Here's an example:
Dim [New] as String
New = "Blah"
As a very BIG note: Be careful when using it. When you can name something other than a reserved keyword, do so. It can cause many issues if you use this unwisely.
Dim [New] as String
New = "Blah"
As a very BIG note: Be careful when using it. When you can name something other than a reserved keyword, do so. It can cause many issues if you use this unwisely.
Rounded Corners
Every time I start a new web project I want to have create tons of little rounded corners for my web site. It's a pain because I'm not great at PhotoShop and it's a hassle if I want to change colors. I found a JavaScript library that does all of the rounded corners on the fly. It seems to have a lot of customizations that you can add and play with. The only bad thing is that it is a JavaScript library and you have to add a command to initiate the rounded corner creation. However, I think that you could very easily customize to pull the parameter from the div tags parameters and automate everything without any custom JavaScript in your HTML page. Anyways, check it out and use it however you can.
http://www.ruzee.com/blog/shadedborder
http://www.ruzee.com/blog/shadedborder
Wednesday, March 21, 2007
Typed Datasets
I've heard of typed datasets before but I just started using them on my current project. Wow, they're cool. Typed datasets are cool because you predefine the structure of the dataset (tables, columns, relationships, etc.) through Visual Studio 2005. Once defined, Visual Studio generates the code to create the class for the typed dataset. Now you get all the nice features of typical dataset but you can now also access the data in a type safe way. Instead of accessing the value of a column in row using:
currentColumn("ColumnA")
you can do this:
currentColumn.ColumnA
This is nice because a change of the data structure will cause compilation errors instead of runtime errors (runtime errors bad). Typed datasets are very cool. Microsoft has a very good tutorial on typed datasets: http://msdn2.microsoft.com/en-us/library/aa581778.aspx
currentColumn("ColumnA")
you can do this:
currentColumn.ColumnA
This is nice because a change of the data structure will cause compilation errors instead of runtime errors (runtime errors bad). Typed datasets are very cool. Microsoft has a very good tutorial on typed datasets: http://msdn2.microsoft.com/en-us/library/aa581778.aspx
Tuesday, March 20, 2007
FTP and .NET 2.0
One of my current projects has a requirement to send files programmatically via FTP. I found some great resources out there but the most useful is this one:
http://www.codeproject.com/vb/net/FtpClient.asp
The main point of his post is that he made a library for FTP'ing built on the FTPWebRequest object built into the .NET 2.0 framework. He does a great job of explaining the basics of using FTPWebRequest and then goes into details about his library. I found this article very helpful.
http://www.codeproject.com/vb/net/FtpClient.asp
The main point of his post is that he made a library for FTP'ing built on the FTPWebRequest object built into the .NET 2.0 framework. He does a great job of explaining the basics of using FTPWebRequest and then goes into details about his library. I found this article very helpful.
Thursday, March 08, 2007
Project Time Tracking
I do several side projects that require me to track the time I spend programming on each project. I found a site that allows you set up projects and start tracking their time. It works very well and is cool due to the AJAX features that it has. It also has very nice reporting feature.
http://www.toggl.com/
http://www.toggl.com/
Righ Click Context
I found this article about creating context sensitive right click context menu. You can display pretty much anything that you want. It's a very slick implementation:
http://www.harelmalka.com/rightcontext/
http://www.harelmalka.com/rightcontext/
Reading and Writing an Encrypted DataSet to Dis
My current project requires that I store a strong-typed dataset to the file system for offline storage. After doing some researching, I found this very helpful blog entry:
http://weblogs.sqlteam.com/davidm/archive/2006/06/13/10195.aspx
It basically serializes the dataset object, encrypts the serialization and then writes the resulting encrypted stream to file. It works great.
http://weblogs.sqlteam.com/davidm/archive/2006/06/13/10195.aspx
It basically serializes the dataset object, encrypts the serialization and then writes the resulting encrypted stream to file. It works great.
Wednesday, February 07, 2007
Running .NET Apps from Network Shares
One of my current projects requires that my application run from a network share. Not thinking that this would be a problem, I wrote my application and went to deploy it and amazingly, it didn't run. It threw a security error. After some digging I found out that .NET apps don't run with full trust when running from network shares (thankfully, big security problem if they did). They actually don't run with enough trust to even load the main form.
I found a thread that mentioned the solution: http://www.vbdotnetforums.com/showthread.php?t=1224 . Basically you just need to setup the security.config for the machine to grant full trust to your application. You can do it by hand or you can use the CASPOL utility that comes with .NET framework.
I found a thread that mentioned the solution: http://www.vbdotnetforums.com/showthread.php?t=1224 . Basically you just need to setup the security.config for the machine to grant full trust to your application. You can do it by hand or you can use the CASPOL utility that comes with .NET framework.
Config Files and Assemblies in the GAC
Be sure to read the update at the bottom of the post.
The 2.0 version of the .NET has improved the application configuration functionality a lot. Read/Write capability being one of the nicest new features. Combined with Visual Studio 2005’s
new settings dialog, using the app.config has gotten a lot easier.
The 2.0 version of the .NET has improved the application configuration functionality a lot. Read/Write capability being one of the nicest new features. Combined with Visual Studio 2005’s
new settings dialog, using the app.config has gotten a lot easier.
One of the main rules when using the app.config, is that the app.config file has to be in the same folder as its owning dll or exe. Which usually isn’t a problem unless your dll is sitting in the GAC. If you’ve had any experience with the GAC, you know that you can’t just add files to it. It only really accepts .NET dlls.
My current project requires a business layer that will be used by multiple applications, which is a great use of the GAC. There are some settings that will be needed by this business layer. So the question is: How do I get the app.config settings to work with a dll that is stored in the GAC?
It took some figuring out but I found a way. It's not the cleanest way but it works.
Copy your dll to the GAC (however you normally do it)Open command prompt (Start -> Run -> cmd)Change the path to Windows Root Folder\AssemblyDepending on what you have installed Change the path to:.NET 1.0 or .NET 1.1: cd GAC.NET 2.0: cd GAC_MSILIf you dir, you will see a list of all the assemblies installed into the GAC. Cd into your assembly's folderIf you dir again, you will see one folder with your assembly's version and public key token. Cd into this folderIf you dir again, you will be glad to see your assembly.Copy your config file to this folder via the command promptYour application should now be able to locate and use any configuration that you have added to that file.
UPDATED 2: Thanks to commenters on further research, the above option of serialization is not required. All you need to do is setup your settings for the built in app.config funcationality and then use the OpenMappedExecConfiguration method. Example:
Private Shared Function GetConfigurationSection() As Configuration.ClientSettingsSection
Dim codebase As String = System.Reflection.Assembly.GetExecutingAssembly().CodeBase
Dim fileMap As New Configuration.ExeConfigurationFileMap()
Dim p As New Uri(codebase)
Dim localPath As String = p.LocalPath
Dim executingFilename As String = System.IO.Path.GetFileNameWithoutExtension(localPath)
Dim sectionGroupName As String = "applicationSettings"
Dim sectionName As String = String.Format("{0}.My.MySettings", executingFilename)
Dim configName As String = String.Format("{0}.config", localPath)
fileMap.ExeConfigFilename = configName
Dim config As Configuration.Configuration = _
Configuration.ConfigurationManager.OpenMappedExeConfiguration(fileMap, Configuration.ConfigurationUserLevel.None) 'System.AppDomain.CurrentDomain.)
If config IsNot Nothing Then
Dim group As Configuration.ConfigurationSectionGroup = config.GetSectionGroup(sectionGroupName)
If group IsNot Nothing Then
Return DirectCast(group.Sections(sectionName), Configuration.ClientSettingsSection)
End If
End If
Return Nothing
End Function
Sunday, February 04, 2007
Another handy link
CellSwapper is a cool service that helps you find someone to take over you cell phone account by transferring your account to someone else.
http://feeds.feedburner.com/~r/Techcrunch/~3/73811460/
http://feeds.feedburner.com/~r/Techcrunch/~3/73811460/
VMware Converter
Found this news item the other day. This can change a lot how we do things.
http://news.com.com/2110-1010_3-6154353.html?part=rss&tag=2547-1_3-0-5&subj=news
http://news.com.com/2110-1010_3-6154353.html?part=rss&tag=2547-1_3-0-5&subj=news
Sunday, January 21, 2007
Fun App
I just found this cool app. It is an app launcher that has some of the look-and-feel of OSX (or Mac). I'm not usually an OSX nut but this is a handy tool. It's called ObjectDock Plus from Stardock software.
Check it out:
http://www.stardock.com/products/ObjectDock/
The demo version works great for all my needs.
Check it out:
http://www.stardock.com/products/ObjectDock/
The demo version works great for all my needs.
Subscribe to:
Posts (Atom)