Multimedia Production Progress

I am making some progress with my multimedia production plans. I have discovered that I can make my recorded voice sound better by lowing the pitch by two semitones. Apparently this is a common problem because there are various VST plugins available specifically for correcting the pitch of a voice. The PreSonus Firebox came with Cubase LE and I was able to figure out how to process my audio with its pitch shift capabilities.

I am half way through my Adobe Premiere for Dummies book. It takes a long time to read because I have to try out various program features after I read about them. I have learned about editing clips and now I will learn about video effects.

Posted in General | Leave a comment

Firefox 2.0

A new version of the Firefox browser is now available. Firefox 2.0 has a close button on each tab making it less likely that you will accidentally close the wrong tab. The search box displays a drop down list of suggested search terms as you enter a word. It also shows a summary page of RSS feeds and lists various options for subscribing to the feed.

I mainly use Firefox for web sites like YouTube and Stickam that tend to crash Internet Explorer. Stickam crashes browsers so frequently that there is often a discussion on which browser is the best one to use. I also like the web developer tools extension for Firefox which is useful for troubleshooting web pages. The HTML Validator extension is also useful for web development.

Posted in General | Leave a comment

Internet Explorer 7

Internet Explorer 7 is now available for Windows XP. I have switched from Windows 2000 Professional to Windows XP so I am using Internet Explorer 7 now. I have not noticed too many problems yet except for Macromedia Flash. I had to uninstall the Flash Player and reinstall it before I could watch videos on YouTube.

Internet Explorer 7 will make it easier for the general public to discover RSS feeds. This should make blogs and other forms of RSS feeds more popular. My web site already has the special meta tag that tells Internet Explorer 7 there are RSS feeds present on this web site. You should see the RSS icon light up when you visit this web site’s home page indicating that a feed was detected.

Posted in General | Leave a comment

My Memory Is Improving

Today I received the 1 GB of RAM I purchased for my new DELL OptiPlex GX240. That gives it more memory than any other system I own. I used one of its 128 MB sticks of SDRAM in my old 500 MHz system to bring its RAM up to 512 MB.

I plan on some additional upgrades:

1. A 100 GB hard drive for the DELL which currently has only a 20 GB drive
2. A larger secondary hard drive for my current system
3. 512 MB of additional memory for my current system
4. An optical mouse for the old 500 MHz system

That will give me a decent spare computer and keep me in business. I’m selling an old 166 MHz computer with only 64 MB of RAM on eBay. I was running Windows 95 and Corel Linux on that system but it was my most obsolete computer so it is the one that has to go.

Posted in General | Leave a comment

Cubase And Adobe Premiere Pro

On Saturday I spent a lot of time experimenting and learning Cubase LE and Adobe Premiere Pro. With Cubase I concentrated on using the equalisers to adjust the sound of my recorded voice. I was able to get a slightly better sound but could not completely eliminate the peculiar sound of my recorded voice.

I also concentrated on audio effects in Adobe Premiere Pro. I discovered that it can normalize the gain of audio so very faint audio can be made audible by boosting the sound. That proved to be very useful because my voice recording was too low. Adobe Premiere Pro can also apply audio effects like a reverb which sounds similar to Cubase reverb. It has a plug-in directory for VST plug-ins which may offer some interesting possibilities. Theoretically I can install additional VST plug-ins such as used by software synthesizers to create a wide range of audio effects.

I also learned how to apply a video effect which appears to use Photoshop plug-ins. I may be able to install additional Photoshop plug-ins for additional video effects. I’m rather discouraged that I cannot make my voice sound decent but I am learning how to use some cool multimedia software.

Posted in General | Leave a comment

SQL Server 2005 – Export To Access Errors

Now that I’ve moved to Windows XP, I’m trying to use SQL Server 2005 rather than install SQL Server 2000. Unfortunately SQL Server 2005 makes some things more difficult. For example, exporting a SQL Server database to Access 2003 can generate many errors. I recently encountered numerous errors about unicode string conversion:

Error 0xc02020f6: Data Flow Task: Column “PlayerID” cannot convert between unicode and non-unicode string data types.
(SQL Server Import and Export Wizard)

I was unable to find much help online in solving this problem but eventually I figured out how to create an Integration Service Project to deal with the errors.

Open Visual Studio 2005 – create an Integration Service Project. Open a SSIS package saved from the failed SQL Server Import and Export Wizard.

  • Drag Data Conversion item from toolbox.
  • Delete connection between Source and Destination
  • Connect Source to Data Conversion
  • Connect Data Conversion to Destination
  • Double click Data Conversion
  • Check off Available Input Columns
  • Change data type to "Unicode string [DT_WSTR]"
  • Rename Output Alias which will be named Copy of
  • Click OK button
  • Double click Destination. Select Mappings.
  • Select Data Conversion 1.Field from  Input Column

Data Flow
Data Flow
Data Conversion Transformation Editor
Data Conversion Transformation Editor
OLE DB Destination Editor – Mappings
OLE DB Destination Editor  - Mappings

Posted in General | Leave a comment

Web Service To Parse RSS Feed For Data

On Thursday I developed a web service to get the New York Lotto numbers. My web service is getting the numbers from a RSS feed because it is easier to parse XML than it is to find data in HTML source code.

I reused the code from my Stickam ASPX page which uses the HttpWebRequest class of the System.Net namespace to make a request to a web server and get the response. I had the same problem with extra characters appearing at the end of the XML making it invalid so I fixed the StreamReader problem. Instead of reading a fixed number of bytes I read an entire line:


Dim Reader As StreamReader = New StreamReader(resp.GetResponseStream(), System.Text.Encoding.UTF8)
Dim Writer As StringWriter = New StringWriter

Dim strLine As String
Do While Reader.Peek() >= 0
  strLine = Reader.ReadLine()
  Writer.WriteLine(strLine)
Loop

Posted in General | Leave a comment

Dude! You’re Getting A Dell!

Yesterday I got the DELL Optiplex GX240 computer that I bought on eBay. This will replace my old computer which I use as a spare computer. When my good computer crashed I discovered that my old computer was too obsolete to meet my needs. It did not have enough hard drive space to install all the software I needed and it ran a web application too slowly. My old computer was just a 500 Mhz system with 384 MB of memory. The Dell is a 1.8 GHz system with 256 MB of memory. I’ve ordered 1 GB of memory for it. My good computer is a 2.66 GHz system with 512 MB of RAM.

I used the Dell to erase all the data from 6 old hard drives I’m selling on eBay. I need to sell my excess computer equipment to pay for these upgrades and to make room for the new computers.

Posted in General | Leave a comment

USB Thumb Drive Write Protected Problem

My system crashed a few times with my USB thumb drive connected. The USB thumb drive was corrupted and now Windows XP and Windows 2000 insist the drive is write protected. I cannot copy any files to the USB thumb drive. I also cannot format it or run chkdsk on it. I keep getting this error message:

Thumb Drive Error Message

I see on a few message boards that many other people have experienced this problem and none of their solutions worked for me.

Yesterday I recorded some audio with my PreSonus Firebox and Cubase LE. I discovered that I need to hold the microphone closer to my mouth to increase the audio volume. Cubase was difficult to learn but I figured out how to apply a reverb effect to my voice which makes it sound like I’m talking in a big room. I still don’t like how my voice sounds when recorded but maybe I can figure out how to remix it in Cubase. Even if I can’t do anything to improve my voice recordings I can still use my little recording studio to do some cool audio effects.

Posted in General | Leave a comment

Power Switch Cable Was Disconnected

I got my computer to boot up on Monday. It turns out the power switch cable became dislodged when I replaced the IDE cable. So whenever I pressed in the power switch the signal did not reach the motherboard. Boy do I feel stupid. I only figured this out after ordering a bare bones system and a back up computer which I didn’t really need.

Today I got a CMOS battery for my old computer but I will be replacing it with a better one I bought on eBay. I installed the hardware and software for my PreSonus Firebox and tested it. It works and sounds a lot better than a PC microphone although I was unable to get the audio loud enough.

Posted in General | 2 Comments

System Won’t Boot Up

I got a new hard drive delivered by UPS today. Car Accessories.com ordered it for me. http://www.caraccessories.com It is a 250 GB Western Digital 7200 RPM EIDE hard drive. I copied my Windows XP operating system onto this new drive using Drive Copy 4.0. Unfortuntately my system crashed twice after installing this new drive. I examined the Event Viewer error logs and Windows Help suggested replacing the IDE cable. I replaced the IDE cable with the new cable that came with the drive and now my system will not boot up at all. I tried reattaching the IDE cables various times but the system remains stone cold dead.

Car Accessories is ordering a bare bones system which they are going to ship to me. I’m also looking for a cheap back up system on eBay. I’m currently using my old computer which is only a 500 MHz system with 383 MB of RAM.

My hard drive is probably still good. I think the IDE controller is bad on the motherboard.

Posted in General | Leave a comment

Hard Drive Disaster Recovery

I am in the process of recovering from yesterday’s hard drive disaster. It is very upsetting to have another hard drive go bad when this already happened in July. I recovered most of my data and all client data. Today I am installing Visual Studio.NET 2003 Enterprise Edition and SQL Server 2005 on my Windows XP drive. I don’t think I’ll use SQL Server 2000 anymore. I am migrating to Windows XP because Adobe Premiere Pro only runs on Windows XP and my PreSonus Firebox also requires that operating system.

I’ve been too busy to do a lot of back ups. This hard drive disaster is yet another reminder to be better prepared. I have an old system to use as a back up but it is pretty old and needed a new CMOS battery which I ordered. I really should get a more current system to serve as a back up. It is also important to have all your software installed on your back up operating system drives or systems because it is very time consuming to install a lot of software.

But I would like to point out that it was my removable hard drive system which once again allowed me to recover from a major hard drive failure.

Posted in General | Leave a comment

Hard Drive Going Bad Again

Unfortunately, the hard drive on my computer is going bad again. My computer froze shortly after I booted up this morning. When I rebooted I heard noises coming from the drive and got the blue screen of death. Fortunately, the drive is not completely unusable, just unreliable, and I was able to boot up and keep running long enough to back up my data.

I am migrating to Windows XP which I have on another removable hard drive. I was unable to get any work done today because I had to repeatedly boot up the bad drive and copy data off it. I also needed to install a lot of software on my Windows XP drive.

This is the second time my hard drive has gone bad in recent months. It could be due to the video capture and editing I’m doing. That causes a lot of hard drive fragmentation and stress to the drive. I really need to back up my data more often. I also need to update my backup system in case my computer becomes completely dead. I need to set up Internet access and install a lot of software on that backup system before it will be ready in a pinch.

Posted in General | Leave a comment

ASP.NET Enumerate Query String Values

Although it is fairly easily to get a single query string value, I recently found it was very difficult to get the entire querystring which I wanted to include in an error report. In order to store the querystring in a variable you need to create a NameValueCollection from the System.Collections.Specialized namespace:


<%@ Import Namespace="System.Collections.Specialized"%>
<script language="vb" runat="server">
Dim param As NameValueCollection
param = Request.QueryString

Then you will need two For loops (i.e. nested loops) to get the collection’s keys and values:


Dim i, j As Integer
Dim arr1() As String = param.AllKeys
For i = 0 To arr1.Length - 1
    Dim arr2() As String = param.GetValues(arr1(i))
    For j = 0 To arr2.Length - 1
        strQueryStringValue = strQueryStringValue & arr1(i) & "=" & arr2(j) & "&"
    Next
Next

This problem came up because I was trying to troubleshoot some code which I did not write. The previous developer gave a form the GET method and was passing a memo field in the querystring. This is bad programming because the querystring is not meant for lengthy amounts of text. There is a limit to the allowable length of a querystring. Many firewalls will truncate a querystring because lengthy querystrings are used to cause buffer overflows in web servers and browsers. Therefore I wanted to get the length of the entire querystring for my error report.

Posted in General | Leave a comment

Recording Studio

I don’t like how my voice sounds when recorded with a PC microphone so I ordered over $500 of audio equipment. I bought a PreSonus Firebox 6×10 FireWire Recording Interface, a Shure SM58 Dynamic Handheld Microphone, a Sony MDR7506 Large Diaphragm Foldable Headphones, and a CBI HiZ Microphone Cable.
Audio Equipment for Recording Studio
Unfortunately my computer does not have any firewire ports so I cannot try it out yet. I thought my computer had firewire ports but they turned out to be USB ports. So I had to order a 3 Plus 1 Port Firewire PCI Card which has not arrived yet. If my recording studio allows me to record the natural sound of my voice I will be able to narrate my screen capture videos.

Posted in General | Leave a comment

Complicated SQL Queries

Yesterday I spent the most time working on some complicated SQL queries. I learned how to use table aliases to reference the same table twice. My query was returning multiple records for a customer because some customers had multiple addresses. I wanted just the last address based on the maximum Address record ID number.

So I needed to select the Address ID from one table alias that matched the Maximum Address ID from the second table alias. The query is shown below:

SELECT Customers.uid, Customers.FirstName, Customers.LastName, Addr.Address1, Addr.Address2, Addr.City, Addr.State, Addr.Zip, Addr.Country, Addr.Phone, Customers.Email, CustomerPriceGroups.GroupName, Customers.Member_Expiration, MAX(Orders.DateOrdered) AS DateOrdered
FROM Customers, CustomerPriceGroups, Orders, OrderItems, Addresses Addr, Addresses Addr2
WHERE CustomerPriceGroups.uid = Customers.CustGroupID
AND Addr.CustomerID = Customers.uid
AND Addr2.CustomerID = Customers.uid
AND OrderItems.Category LIKE '%Partner%'
AND OrderItems.OrderID = Orders.uid
AND Orders.CustomerID = Customers.uid
GROUP BY Customers.uid, Customers.FirstName, Customers.LastName, Addr.uid, Addr.Address1, Addr.Address2, Addr.City, Addr.State, Addr.Zip, Addr.Country, Addr.Phone, Customers.Email, CustomerPriceGroups.GroupName, Customers.Member_Expiration
HAVING Addr.uid = MAX(Addr2.uid)
ORDER BY Customers.uid

Notes:

  • use two table aliases to reference the same table twice
  • apply any WHERE conditions to both table aliases
  • select fields from one table alias
  • include the ID field in the GROUP BY clause
  • HAVING is very similar to WHERE except the statements within it are of an aggregate nature.
  • ORDER BY must be after HAVING clause
Posted in General | Leave a comment

Stickam API and ASP.NET

I’ve been spending so much time chatting with YouTube celebrities on Stickam that I’ve decided to put the time to good use and do some programming with the Stickam API. The Stickam API allows you to determine if a user is online or live, i.e. hosting a webcam chat.

The Stickam API returns XML in response to a request at a web address like http://www.stickam.com/api/user/robrobbins/profile.

I wrote an ASPX page in ASP.NET that gives me the status of four users. Unfortunately I could not extend it to handle more than four users due to the need to wait for the response. This project allowed me to learn a few new ASP.NET tricks. I learned how to use the HttpWebRequest class of the System.Net namespace to make a request to a web server and get the response. I also learned how to read through a XML document in order to get the value of a particular node. I had to play around with the syntax of a regular expression to remove some garbage at the end of the XML document. I’m not sure how the garbage wound up in the XML. The web response is being written into a buffer of 512 character bytes so the sample code I used must fail to clear the buffer properly.

Posted in General | 1 Comment

Smithsonian Natural History Museum

Yesterday I visited the Smithsonian Natural History Museum rather than hang around the National Book Festival. The 2006 National Book Festival was pretty boring. You could only buy books by the featured authors, stand in a long line to have your books autographed, or watch authors read in various tents. I bought Thank You For Not Smoking by Christopher Buckley and Stone Bow Prayer by Amy Uyematsu although I’m not very interested in reading either book.

There was a light drizzle so I decided to visit the nearby Smithsonian Natural History Museum instead. It was really amazing! On the first floor I saw lots of dinosaur skeletons; including a Tyrannosaurus Rex and a Triceratops. They also have mammal fossils. The most impressive mammal fossil was a giant sloth that was as huge as a dinosaur. I also saw a woolly mammoth skeleton fossil.

Smithsonian Dinosaurs

The first floor also has a mammals exhibit were I saw stuffed animals; tigers, lion, monkeys, gorilla, bear, bats, kangaroos, zebras, etc. There was also a special exhibit of the Sikhs from the Punjab region of India. I liked this exhibit because I’ve never heard of the Sikhs so their culture appeared quite exotic. There was a model of the Harimandir Sahib, a golden temple, and images of their ten gurus.

The second floor has the gems and minerals exhibits, the bones exhibit, insect zoo, and meteorites exhibit. I saw the Hope diamond which had a crowd around its glass case. The gems and minerals exhibit was a spectacular collection of crystals in many different shapes and colors. I saw some moon rocks and meteorites. The bones exhibit had skeletons of many animals including very large sea turtles. I saw a live tarantula in the insect zoo.

At the museum store I bought two books; Tyrannosaurus Sue by Steve Fiffer and Vanished Kingdoms: The Wulsin Photographs of Tibet, China and Mongolia 1921 – 1925 .

The Smithsonian Natural History Museum made me feel some existential angst because it presents you with the physical evidence for the vastness of time and space. The animal skeletons and dinosaur fossils seem a grim reminder of how short any lifeform’s existence is compared to the time required for crystals to form and grow or meteorites to travel through space.

From a distance, I saw the Capital Building, the White House, and the Washington Monument.

The bus trip was arranged by the James V Brown Library with a focus on the 2006 National Book Festival. The bus stopped at a Cracker Barrel restaurant for diner and I was forced to watch the Whoopi Goldberg movie Sister Act on the bus.

Posted in General | 1 Comment

2006 National Book Festival

Tomorrow I am going to the 2006 National Book Festival on a bus trip sponsored by the James V Brown Library. I will be out of town for the entire day and will not be able to get any work done.

The 2006 National Book Festival, organized and sponsored by the Library of Congress and hosted by First Lady Laura Bush, will be held on Saturday, Sept. 30, 2006, on the National Mall in Washington, D.C., between 7th and 14th streets from 10 a.m. to 5 p.m. (rain or shine). The festival is free and open to the public.

Posted in General | Leave a comment

More Dummies Books

Today I received in the mail ASP.NET 2.0 For Dummies and Adobe Premiere Pro For Dummies. I like reading Dummies books because they are a good way to get an introduction to a subject without spending a lot of time reading. I can usually finish one of these books in a couple of days. In addition to these books, I also have Dummies books on PHP 5.0 and C#.

I’ll probably read the book on Adobe Premiere Pro first because I’m very interested in video editing right now and I have not made much use of that software. The ASP.NET 2.0 For Dummies book did not come with the CDROM that it should have so I had to contact customer support to have a replacement sent.

ASP.NET 2.0 For Dummies

Posted in General | Leave a comment