Garry’s Bit Patterns: TortoiseSVN and Visual Studio Integration – Visual Studio 2008

Finally, I am getting around to an update to the TortoiseSVN Visual Studio Integration. The catalyst for this is the release of Visual Studio 2008 (formally codename Orcas) Beta 2, and making sure I can still play with Subversion through the IDE.

Garry’s Bit Patterns: TortoiseSVN and Visual Studio Integration – Visual Studio 2008

Adding some TortoiseSVN integration is pretty simple using Garry’s settings file. I used the SubversionMenuToolbarContextsVS2008.vssettings file.

Building the LAME MP3 Encoder using Visual Studio 8 Express

Recently I had been playing around with the Visual Basic version of Visual Studio Express and somehow mucked it up real good. It told me it could not create the Visual Basic compiler and I should re-install. I re-installed and it was still mucked up so I completely removed Visual Basic and SQL Server pending an epiphany of sorts.

A couple of days ago I decided to rip a copy of the songs on a CD I got for Christmas for my portable player. I used Windows Media 11 to rip the copy but then I remembered that I preferred using Exact Audio Copy for ripping CDs. EAC makes a persuasive argument that they make a better copy. Since I had re-built my desktop since the last time I ran EAC, I had to re-install EAC. As part of the installation I had to install the LAME MP3 Encoder, too. Although I had a binary version of LAME available I decided this might this might be a good time to work through my Visual Studio Express problems. I would be working with C++ rather than Visual Basic environment but I expected that what I learned from the Visual Studio Express framework under C++ would also apply to Visual Basic environment. I expect that Visual Studio reuses most of the IDE environment. Since I had already downloaded the DVD with all of the Visual Studio 2008 Express packages on it the installation should be relatively painless. So I installed the C++ package.

The big challenge would be to fix the errors and warnings from using the 2008 compiler version. The only error I had to fix was the errors resulting from a missing msacmdrv.h. Since I did not have access to the Window DDK, I decided to use the version included in the ACM\ddk directory. I copied it into the ACM directory.

It took a little research to get rid of the warnings. Someone advised that I compile LAME from the command prompt using the included Makefile for the Microsoft compiler.

To build LAME from the included Makefile I had to:

  1. Download a copy of NASM. Extract nasm.exe from the file, rename it to nasmw.exe, and copy into the lame-3.97 directory. The makefile we are going to use requires nasmw.exe.
  2. Open a command prompt from Visual Studio using the “Tools-Visual Studio 2008 Command Prompt” menu item. This opens a command prompt with the environment path variables set properly to use the command line versions of the C++ compiler and linker.
  3. Change the directory to the project directory, lame-3.97.
  4. Type “nmake -f Makefile.MSVC COMP=MS” and press Enter.
  5. A LAME executable was created and the only messages I got were warning messages about invalid /QIof and /QIfdiv compiler parameters.

Okay, that wasn’t too bad! Since I had not been humbled by a compiler in the last thirty seconds I decided to see if I could do the whole process inside Visual Studio.

To build LAME from inside the Visual Studio environment I had to:

  1. I saw that there was a sln file(probably a VC7 workspace) available so I decided to let Studio try and convert the workspace. I was a little leery since I tried converting a Visual Basic workspace recently and I really made a mess of it. In this case the conversion appeared to create a working environment.
  2. The first time I built the solution using the converted workspace, I generated a lot of warning messages and the executable seemed large. So I set out to “fix” the problems. Some of the warnings were related to deprecated I/O functions that may be unsafe. In this environment I deemed them safe so I “fixed” the problem by including a compiler parameter, /D “_CRT_SECURE_NO_WARNINGS”, on the command line page for the lame project. I deleted references to /QIof and /QIfdiv on the command line page since these are not valid compiler parameters. I added the compiler parameters, /O2, /Ob2, /Zp8, /GL, and /Zi, to the optimization page since the Makefile used these parameters. I changed these parameters on libmp3lame, mpglib, and lamemp3encdll.
  3. To build the solutions, you select a Solution Configuration and press F7. There are twelve different configurations but I was interested in the configuration to build the DLL, “dll release”, and the one to build the lame.exe, “LAME release”.  When I built these solutions I was only getting 24 warning messages. Almost all of the messages were related to type conversion(e.g. float to double). It would be nice if there were no warning messages but these message looks to be harmless. I am unwilling to mess with other people’s code unless it does not work. If everything compiles without errors(warnings are okay 😉 ), lame.exe and lame_enc.dll should be in the output folder.

I tested LAME by running LAME with the input file, testcase.wav, and comparing its size to the testcase.mp3 file included in the distribution. I got the same size files so it must be working. 😉

Implementing the Change Password feature with Outlook Web Access

 

SUMMARY

This article discusses how to implement the Change Password feature in Microsoft Outlook Web Access (OWA) to allow OWA users to change their domain passwords. This article also describes some of the common troubleshooting scenarios where you might use this feature.

Implementing the Change Password feature with Outlook Web Access

If you are running SBS and ISA(aka SBS Premium) this can get a bit more complicated. With the default ISA setup you will get the infamous 403 page when you click on the Change Password button under OWA Options. This 403 is coming from ISA. To fix this 403 message you need to go to the SBS OWA Publishing Rule properties in ISA. I clicked on the Paths tab and added a new path, “/iisadmpwd/*”. When I tried the Change Password button again, I got a new and different 403. I got a 403.6 from IIS.

My solution for getting rid of the second 403 was to go to IIS Administration and bring up the properties for IISADMPWD. I clicked on the Directory Security tab and then clicked on the IP Address and domain restrictions button. I added a new exception using my external static IP address. I used the external IP address since the ISA log said that was the client address. I tried to use the IP address for the WAN adapter but it did not work.

Enjoy! 🙂

Silly HTML mistake – different response from FireFox and IE

Recently I found an interesting problem. A person complained to me that a link on a web page did not work. When I went to the page I was able to duplicate the problem with my default browser, Internet Explorer. Since I was pretty sure the developer who composed the page would have tested their links, I was puzzled. So I tried FireFox. The link worked! When I looked at the html code I saw the error immediately. He was using an <input> tag inside the link tags, <a>, to display a graphic. The <input> tag would have been appropriate if he wanted to display a graphic in a form but the <img> tag would have  been the correct way to create a click-able graphic link. It looks like the developer had used some code from a form but he was sloppy in converting the code and had not tested the page with IE.

What was interesting was the way Internet Explorer and FireFox responded to the coding error.  FireFox ignored the error, displayed the graphic, and let the link work. It was a mistake but FireFox did not care. Internet Explorer on the other hand displayed the graphic but did not let the link work. Now that is typically a surefire way to get a developer’s attention. Too bad the developer forgot to test his page with IE! I ran the page through the W3C HTML validation service and it did not flag this as an error. Hmm!

nabber.org – Appupdater

 

Appupdater provides advanced functionality to Windows, similar to apt-get or yum on Linux. It automates the process of installing and maintaining up to date versions of programs. It is fully customizable for use in a corporate environment.

nabber.org – Appupdater

I have been playing with this program this week. It looks promising for those of us who use open source programs On Windows PCs and like to stay up to date. I think I have found a few problems. The GUI version looks a little raw so I opted to use the command line version(0.8.1).

  1. I have Autoit, Notepad++, Synctoy, and Winmerge on my PC. Appupdater says it supports these applications but it did not find them during the update process.
  2. My first “upgrade” recommended upgrading QuickTime, Flash Player, and Powerpoint Viewer. I let it install all three updates. The QuickTime installation installed some shortcuts but it did not install the program. When I clicked on the shortcuts it told me QuickTime was not installed. I ran the QuickTime update from the cache and it is working now.
  3. The Flash player update installed the player but not the ActiveX component. I found this out when I went to the Adobe site to confirm the installation. I ran the ActiveX update from cache.
  4. I get a downloading versions.xml warning during the update process. I guess this is normal since this is a warning and everything else works.
  5. When I perform the list process, I get duplicate program entries for Java, Windows Media Player, and Windows Messenger. I guess I am a little surprised that Windows Media Player and Windows Messenger are on the list since I think they are supported by Windows Update.

Re: SMB VARs Guide To Overcoming The Lonely 13 Year Old Girl Syndrome

From Vlad we get this jewel:

I am not going to claim that I am, ever have been or ever will be a lonely 13 year old girl. However, I am rapidly becoming more and more familiar with grown men and women that act like 13 year old girls when it comes to communication. Apparently, many had missed out on that little bit of socialization that comes about in your early teens so here is a refresher course on birds and bees:

“You are turning into an attractive young lady, and with that comes a great deal of responsibility. You have noticed changes to your body and boys are starting to pay more attention to you. Here are some common sense tips on how to behave with dignity, get the happiness you deserve and have fun along the way without missing out….”

Now, here is the one for the VAR’s:

“You are becoming a real business now, not just a person that can fix a computer and with that comes a great deal of responsibility. You have noticed changes to your bottom line and revenues and vendors are starting to pay more attention to you. Here are some common sense tips on how to behave like a business, get the increased revenues and opportunities and not miss out on success you deserve….”

Semantics. Not a heck of a lot of difference between becoming a grownup and becoming a successful business. So, to eliminate the risk of being preachy, I’ll mix the 13 year old lonely girl advice with the SMB VAR advice.

Always keep two phone numbers.  One for the boys you want to talk to and one for the boys you never want to hear from but still want to be polite to. If you have the same number, the boys that you don’t want will constantly call you and the boys you like will never be able to get through.

Always be nice to the boys you like. If the boys you like leave you a message and you don’t call them back, they will not chase you anymore.

Always chain the dog if the boy you like wants to come over to hang with you. If the boys you like can’t get by your SPAM filter they are likely not going to keep on emailing you – add them to the whitelist if you expect them to get back to you!

Always be available to the boy you want to talk to. Boys have a short attention span and if you aren’t around this week they might fall in like with someone else.

Always give a boy your correct address if he is taking you out on a date. If you give the boy a wrong email address, wrong phone number, wrong extension don’t expect him to knock on every door on your street (or extension in the PBX) to find you.

If you are interested in a boy and you really, really like him tell him more than once. Boys are stupid. They can’t read your mind. If you want the boys attention, make him pay attention to you.

Don’t wardial the boys you like. They will think you are a crazy psycho.

“Be nice to the boys you like. Try to be around the boys you like. If you ignore the boys you like and scoff at the boys you don’t like everyone will think you are a mean girl and you will be very lonely. If you become a slut and give your information to everyone, only the desperate boys you don’t like will call you all the time. And never, ever, ever have sex before marriage (never prepay or buy into partner programs) because if the boy really likes you he will wait till marriage.. Oh, and never call boys from the toilet.”

…

So in summary – if you don’t know how to leave a voicemail, you aren’t getting your phone call returned: Name, phone, reason why you are calling and where you are calling from. Sound it out, annunciate. Never leave the voicemail from your convertible while speeding down I-95. If you expect to receive the email response back, add the person you are emailing to your whitelist. If you don’t get a callback or an email response, try again. Be patient, you may not get a callback within 2 minutes or 2 hours.

What is ridiculously ironic about this post is that you’re reading a technobiz blog yet the advice to the 13 year old is more believable than the advice to a VAR. Sadly, 13 year olds have an excuse to be innocent, grown men and women have no excuse for not being able to leave a voicemail.

SMB VARs Guide To Overcoming The Lonely 13 Year Old Girl Syndrome

A little bit of 529’s

Susan says:

Health Monitor Alert screen

So let’s say you want to be alerted when someone does a password attempt on your system. Go into the health monitor, copy the Account Lockout alert service and edit it to look for event 529 in the event logs. Adjust the Actions to not only log to the system but to email you when someone does a bad password attempt and voila… you now have a early warning system when someone from remote is banging on things.

I personally limit the access to port 25 to only those ports that need access to the servers at ExchangeDefender.com and don’t get drive bys… but if you are concerned…..

A little bit of 529’s