Category: Windows

WAMP Server Not Accessible on Port 80

WAMP Server generally runs fine without any problems, although sometimes we have to make some configuration changes because of other software monitoring ports. Skype, for example, is commonly using port 80 to communicate and stopping apache from responding.

If you’re using WAMP and apache at the same time, you need to left click the WAMP Manager icon in the system tray and go to apache -> httpd.conf and look for a line that says: Listen 80 to instead use a different port like: Listen 8080.

Hope this helps!

Windows Service – Marked For Deletion

Windows Services,especially managed .NET ones , can be extremely difficult to deploy if not done correct initially. Errors, of course, can also be very difficult to diagnose if theres a problem immediately after the server starts.

Occasionally, as a developer you need to uninstall the service whether it be through sc delete, or installutil /u . Sometimes, the service isn’t uninstalled immediately and still exists in the server management console. (services.msc) after the uninstall is done.

To reduce the need to restart the machine, we should do the following:

  1. Stop the service.
  2. Close services.msc
  3. Uninstall service.

Why A Restart Is Required

  • Windows 2000 machines, in my experience, have almost always had to have a restart.
  • If the service creates many worker threads, sometimes these threads will also hang around resulting in a restart being required.
  • This is done if CanStop = false in your service code.Windows knows this service shouldn’t be stopped and it will only mark it for deletion but will not delete it right away.

Hope this helps!

Subversion On Windows?!

It’s no secret that I have been contact almost daily by Technical Recruiters , often the job advertisements that the technical recruiters have been sending me include a requirement for Microsoft SourceSafe experience. I often wonder a company would choose SourceSafe to manage their code as it doesn’t really do a good job: the only go thing I guess is the integration with Visual Studio TFS.

The company I currently work for didn’t have any sort of source code management when I started. Literally, I had a budget of zero to string together something that was flexible enough and could integrate with Visual Studio 6 and Visual Studio 2005. I was able to find something that perfectly fit my needs, cost nothing other than a few hours to implement and about 1/2 an hour of research.

For the Windows server, I needed something that was mostly graphical because the other programmer basically has a fear of the change so I know he won’t be using any of the SVN commands. I also really wanted something that would use Active Directory for authentication if possiblex, because I absolutely hate having to remember yet another password that should be changed in three months. (If it uses Active Directory, I can do a Single Sign on which I believe is absolutely fantastic!) I chose to use VisualSVN Server Standard Edition because of the fairly simple graphical user interface, and Active Directory support. The only thing I’m a little disappointed about is that I have to Remote Desktop into the machine to do some remote tasks.

For the developer machines, I wanted to also have at least one graphical version for subversion. I chose to use TortoiseSVN which is absolutely fantastic and supports all of the SVN protocols that I know and also integrates very well with Windows Explorer even showing what files you have changed since you last commited!

For Visual Studio 6, I was able to use SVNVB6 which works okay but isn’t really ideal. It doesn’t really comply with any of the Microsoft Best Practices for plugins, some things aren’t really fully integrated and the project has really strange scheduled downtime each week.

For Visual Studio 2005, I wanted to be able to right click on any of the files or the project and of course be able to commit my changes. For Visual Studio 2003 + there are quite a few options, I ended up using VsTortoise but Anksvn is also a very good solution.

What Source Code Management system and plugins do you use?

Windows Server 2008 – SMTP Doesn’t Work on Restart

I have a few applications that use the Windows SMTP Server to send email or to send email from SQL Server Reporting Services and of course database error notification. Each time the server restarted or IIS crashed neither of which happens often, I would forget I needed to go into IIS6 and start the SMTP Server up again and the SSRS subscriptions would all fail to send their files.

On Windows Server 2008, Simple Mail Transfer is set to manual by default. We need to change it to automatic by doing the following steps:

  • Start -> Administrative Tools->Services
  • Change Simple Mail Transfer to be Automatic

How To Edit the Hosts File in Windows 7

I’m an Administrator on my installation of Windows 7 and had to edit the hosts file for one of my projects. I wasn’t able to make the changes though because it kept saying file was in use. I realized that I need to run notepad as the administrator and then I could make my changes!

  1. I went to the start menu, and typed in notepad.
  2. Right clicked on the notepad icon and selected Run As Administrator
  3. Clicked yes when it confirmed whether it should
  4. Navigationed to c:WindowsSystem32driversetchosts

Hope this helps!

Skype API Basics – Part 1

What is the Skype API?
The Skype API is an easy way to create plugins that can dramatically change the way Skype functions. For example, we could make a program that reads messages out loud as we receive them instead of having to check for new messages.

The Skype API is potentially very different for each of the operating systems Skype is available for. And, of course, there are different wrappers of the API available for some of the different languages.

What Operating Systems Are Supported?

  • Linux
  • MAC
  • Windows

What Languages Are Supported?
The Windows API,Skype4COM, is supported in literally any language that can import an ActiveX DLL or using a bit of hackery and some Skype commands we can also use Windows Messages via the Win32 SendMessage API .

Wrappers are available for additional languages that aren’t necessarily updated as frequently as Skype4COM. Skype4Java is a completely cross platform, language specific, implementation of the Skype API. Unfortunately, Skype4Java is infrequently updated and often lags behind the other implementations. Skype4Py is the other language specific implementation of the Skype API and can be used with Python on Windows and Linux.

What is Skype4COM?
Skype4COM is an ActiveX dll for use on Windows. Basically, it offers us a collection of properties, objects, and interfaces that we can use to manipulate Skype. By default, Skype4COM is installed with the Skype Extras although I always think it is prudent to provide it with our application and reference the included version.

What is Skype4Java?
Skype4Java is an older language specific wrapper for use with Java and is pretty much outdated and dying. I haven’t personally used Skype4Java, but have noticed it hasn’t been updated since 2006.

What is Skype4Py?
Skype4Py as previously mentioned is the language specific wrapper for Python and is fully supported on Linux and Windows. Skype4Py contains two different naming schemes: one follows the norms of Python, and the other set of naming conventions resembles Skype4COM.

Why use the Skype API?
There are a lot of interesting applications that make use of Skype to do telemarketing (predictive dialing even!), make Skype act like a fax machine, and even completely replace the need for a telephone! Unfortunately, my first use of the Skype API was to monitor employees that were deleting their Skype history and copy all of the messages sent and received to a location.

How should I get started?
Usually, I start reading a little bit about the API before, I begin to use it but I don’t ever focus in enough to learn the API completely unless I absolutely need to. Instead of spending your time focusing on learning APIs you should instead focus on learning computer programming fundamentals or some website development fundamentals.

More coming next week!