February 28, 2006

Virtual Earth Preview

Filed under: General — Marcus Tettmar @ 10:46 pm

Check out this Virtual Earth Technology Preview. Drive a car through the streets of Seattle or San Francisco. The database for Seattle contains 10 million images! You can search for businesses and see them on an aerial map. But the cool bit is how you can drive around the map. According to Scoble the guys at Microsoft stuck 10 cameras on a van and drove it around the two cities. They’ll be adding more cities in due course.

Telephone Tennis

Filed under: General — Marcus Tettmar @ 3:54 pm

As most of you know, we are based in the UK. Those that have called us on the phone will also know that we have a US phone number. It is listed on our contact page. That phone number comes straight through to us here in the UK. We don’t have an office in the US – there is no US mailing address on our contact page – just a US number. We set the US number up a few years ago because we wanted to make it easy for our US customers to contact us, and we realised that many companies in the States don’t allow international calling. Calling outside your country is expensive, and with low, flat-rate calling plans, optimised for mostly local calls you may not even be able to call internationally. Why pay for the option when you hardly ever need to do it? So to make life easier for everyone we set up a US phone number that routes straight through to us here in the UK. If you’re in the US and you call it you’ll only pay for a national call (or local if you are in WA). But you get to talk to us in the UK. Simple!

So, five minutes ago I took a phone call and the guy said “Is this the US office?”. I said “No, you’ve come through to the UK, we don’t have a US office”. He said “So it’s just a mail drop?”. I said “What’s just a mail drop – there’s no US address on our contact page where you saw the number you’re phoning on”. “Ok”, he says. I said “We provide a US number so our US customers can get through to us easily”. He said “Thanks”. I was just about to say “So, anyway, how can I help you?” when I realised that he had hung up. That was it.

So what was all that about? I was slightly concerned that he was a potential customer who was put off when he found out there was no US office. But surely I am being paranoid. He didn’t even give me a chance to ask him how I could help. Perhaps it was a cold caller trying to sell something, and finding we had no US office decided the service or product he was selling was of no use to us. Hopefully the latter, not the former. I certainly don’t want to be scaring customers away. Is it a problem that we don’t have a US office? In nine years it hasn’t been yet! But either way, I was surprised he disappeared without explaining why he had called.

Anyway, if you ever need to call you will find the numbers on our contact page. The only issue with us being in the UK is the time zone – we’re 5 to 8 hours ahead of the US – but because of that we work late most days, so the only time our US customers may fail to catch us is if they call late in the day. So here’s a tip – call in the morning, your time, and you’ll be sure to get through!

February 23, 2006

Enhance your Clipboard for Free!

Filed under: Announcements — Marcus Tettmar @ 12:26 pm

We’ve just re-released our ClipMagic product as freeware! ClipMagic extends the Windows clipboard by keeping all the items you copy to the clipboard and making them quickly available to paste back into other applications. I depend on ClipMagic when I’m copying and pasting bits of text around the place. Without it you only have access to one item at a time and that can be a real pain. I’m often having to paste more than one piece of text into an email, script or html file and without ClipMagic I’d have to jump back and forth between the source and target windows. Sometimes the text comes from more than one window and it gets awkward. Well with ClipMagic I can just copy each item, knowing that each copy won’t obliterate the last, and later I can paste them all in without leaving the application I’m working on.

ClipMagic has a really cool feature called PastePicker which I assign to the CTRL+V shortcut – the paste key. Now when I hit CTRL+V I get a little menu of the most recent clips (I have it set to the 10 most recent) and I use the arrow keys to choose the one I want. The PastePicker menu pops up next to the caret in whatever application I’m working in – so I don’t even have to leave the application to get recent clips. Makes life a lot easier.

I also use ClipMagic to store snippets of info I find on the web. When I see something useful I just highlight it and hit CTRL+C or Edit/Copy. It’s speedier than creating another bookmark, especially if I just want a piece of the page, rather than the whole page. ClipMagic automatically stores the URL of the page that the clip came from so that later I can get back to the source page if I want to. I have filters set up for different kinds of clips so that when I hit CTRL+C the clip is filed away in a suitable folder.

Well we wanted more people to benefit from ClipMagic so it’s now free! You can download it here.

February 22, 2006

Remote Support

Filed under: General — Marcus Tettmar @ 6:12 pm

I’ve been evaluating various remote support solutions lately. For a while we’ve been using a reverse VNC system, which is free, and works well for the most part. Being a reverse connection there are usually no firewall issues, since the customer adds us as a listening viewer and therefore the connection is from inside out, rather than outside in. However, some very strict firewall policies do actually prevent VNC traffic in either direction. So we have had to seek alternatives.

One of the most well known desktop sharing solutions is WebEx, but at prices starting from $149/month it’s not cheap! Other solutions such as Citrix’s GotoMeeting are more reasonable at $49/month. Another I’ve tried is LogMeIn which costs $99/month and seemed a bit complicated to set up and use. So I’ve been on the lookout for something more affordable and workable.

Well I’ve just discovered BeamYourScreen.com which starts at $19 a month (for a one:one connection – all you need for remote support) and there’s 25% discount to be had for a 2 year subscription. Seems like very good value. I’m currently evaluating it and it seems to work really well. The system is web and Java based so as long as java applets are permitted it should work and shouldn’t suffer the same security issues that VNC often does.

I found BeamYourScreen really easy to set up and use too. Once I had created an account and installed it all I had to do to start a session was click on the system tray icon. That gives me a session URL to give to a guest and a link to send it by email. The guest simply visits that URL and gets connected. Very simple. I’m running a seven day trial at the moment so we’ll see how it goes, but so far, I think this could be the one. If anyone wants to try it out, and get some free remote Macro Scheduler support at the time, let me know 🙂

February 20, 2006

Accessing Databases

Filed under: Scripting — Marcus Tettmar @ 1:08 pm

Update 7th April 2008: Macro Scheduler 10.1 now has native database functions built in so in most cases it is no longer necessary to use the ADODB object in VBScript as described below. See Using Macro Scheduler’s Database Functions

The best way to access (retrieve, modify, or insert) data from a database with Macro Scheduler is to use VBScript and the ADODB object. This lets you access any SQL data source which provides an ODBC driver. E.g. Microsoft Access, Oracle, Informix, Microsoft SQL Server, MySql, etc.

We have a tutorial which shows how to access and update data in Microsoft Access using ADO. It is on the VBScript Resources page, here.

Recently I created an example showing how to retrieve data from a CSV file and insert it into two Access tables. This was in response to a post on the forum. You can download a zip containing a sample CSV file, the Access database and the script file here. To make it work you just have to change the path in the script.

In reality, as I mentioned in my post on the forum, it would be just as simple to create some Access queries to do what this example does within Access itself, but there may be reasons why you’d need to do everything from within a Macro Scheduler script and the demo is valid for any database, not just Microsoft Access. You may want to insert data into a SQL Server database, or a MySQL database held on another server for example. And this may need to be part of a greater automation process.

The examples mentioned here work with Microsoft Access. The code is almost identical for any other type of database. To work with a different database provider you just need to change the “connection string” which is used in the MyDB.Open line. The connection string can be just a data source name if you have a system data source set up. If not it needs to identify which datasource driver to use, where the database is and, if necessary, a username and password to access the database. Depending on the type of database there may be other paramaters that can be used to specify how to access the database.

How do you find out what the connection string should be? Well, the documentation that comes with your database server software should tell you. But if you can’t figure it out here’s a really useful site I found which lists a whole bunch of different connection strings for different types of databases:
http://www.carlprothman.net/Default.aspx?tabid=81.

The only other thing that may need changing is the syntax of the SQL itself. SQL is fairly standard but there can be differences between database providers, and some proprietary statements and functions that may be specific to one particular database.

For more examples try searching the forums for the term ADODB.

Become an Affiliate

Filed under: General — Marcus Tettmar @ 9:05 am

The people we outsource our payments processing to, Plimus, also run an affiliate sales program. So if you find yourself recommending our products to clients, friends or colleagues, why not sign up as an affiliate and have folks click through your links to receive 10% when they purchase.

Once you’ve signed up as an affiliate with Plimus, find Macro Scheduler under “Product Catalog” and click the “Sell this Product” link.

Plimus carry hundreds of other titles too, so you could earn commission on all sorts of other products from other vendors. Don’t forget to add your affiliate links to your website, if you have one, and tell people how useful Macro Scheduler is.

February 17, 2006

February 16, 2006

Scripting File Upload Boxes

Filed under: Scripting — Marcus Tettmar @ 7:02 pm

I helped someone today who was trying to record a web form that performed a file upload. File uploads are handled using an INPUT tag of type FILE. Unfortunately it turns out that these can’t be scripted for security reasons. Microsoft has prevented applications from setting the value property of these types of object. The solution was to send keystrokes to the Internet Explorer window to simulate a user entering the file name in the file box. You can view a demonstration of how to modify the WebRecorder code to handle this here.

February 15, 2006

Seventeen Minutes with Bill

Filed under: General — Marcus Tettmar @ 6:50 pm

Interesting video interview on Channel 9 with Bill Gates. Find out what he thinks about the Web and what the future holds for software. Microsoft have really become much more transparent lately. Channel 9 is a great way to get an insight into what goes on at Microsoft and meet some of the key people. Watch the interview.

February 14, 2006

Getting Data From Dynamic Web Pages

Filed under: Scripting — Marcus Tettmar @ 6:38 pm

I’ve just posted an example in response to a message on the forum where someone needed to extract data from finance.yahoo.com. The easiest way to create code to extract data from a page is to use WebRecorder‘s Tag Extractor. Unfortunately, finance.yahoo.com shows random adverts above the data and the HTML used to display the adverts is not always the same. What’s more the adverts are not always shown. This results in the HTML of the page being dynamic and the number of table elements can be different each time the page is loaded. Therefore the code that gets data from a specific table element may not always retrieve the correct data.

My proposed solution is to have the script search for the start of the data table. If you go to http://finance.yahoo.com/q/ae?s=UPS you will see that the first element in the table has the text “Earnings Est”. So the script uses the ExtractTag function in a loop. The loop starts with tag TD, index 30. If the content of that element is “Earnings Est” it stops, if not it loops back, incrementing the index. So on the next iteration it looks at TD31 and so on. When the value “Earnings Est” is found it jumps out of the loop and we now have the index of the first TD tag in the data table.

Now all we need to do to extract the data we want is to apply an offset to the located index. E.g. the value for Avg. Estimate, Current Qtr is in the 6th cell after the starting TD. So we add 6 to the index and use that with ExtractTag to get the data. And so on.

For the code and my explanation see the forum topic How do I pick numbers off a webpage?