May 30, 2013

New tracks not appearing in the iTunes music library

By Mike Lewis

For several years, I've been happily using iTunes to organize my music collection and transfer tracks to my iPod. Then, quite suddenly, it stopped working. More specifically, I found I could no longer add new tracks to my music library. There was no error message, no unusual behavior. The newly-added tracks were simply nowhere in sight.

I eventually found a solution, but only after much searching and experimenting. I'll summarize the steps here, for the benefit of any Hex Central readers who face the same issue.

May 24, 2013

FileSystemObject performance issues

By Mike Lewis

In a recent Hex Central article, I explained how you can use the FileSystemObject to read and write large text files in Visual FoxPro. One of the main reasons for doing that is to work with files that would otherwise break VFP's 2 GB limit.

Unfortunately, that benefit comes at a price. In many cases, the FileSystemObject will be a lot slower than using native VFP commands and functions.

May 8, 2013

Welcome improvements to AdSense reports

By Donald Ritchie

Google have just made some small - but very welcome - improvements to their AdSense reports. They've made it easier for you to spot medium- and long-term trends in your AdSense data. They've introduced a number of useful new graph types. And they now let you see at a glance the effect of any changes you make to your AdSense setup, such as introducing a new ad unit, or blocking a sensitive category.

April 10, 2013

How to give focus to a FoxPro top-level form at start-up

By Mike Lewis

This is a question I often see in Visual FoxPro forums. An application needs to show a top-level form (typically a log-in screen) at start-up. But when you launch the form, it
appears behind other windows on the desktop. Even if it is at the front, it's not necessarily the active form. So how do you give the form focus programmatically?

April 8, 2013

Strong passwords? Yes, but let's not get carried away

By Lynn Evans

I'm getting a bit tired of over-the-top advice about strong passwords. Of course, we all need to keep our passwords secure. But a lot of what tech journals and websites write about the subject is exaggerated and alarmist - and often counter-productive.

April 3, 2013

Banish interest-based ads from your AdSense pages

By Mike Lewis

In an earlier post, I explained how you can opt out of seeing so-called "interest-based ads" on Google's search results pages and on third-party websites. This time, I'll describe how AdSense publishers can prevent these ads appearing on their own sites.

To recap, an interest-based ad is one that's based on the personal information that the advertising network (usually Google) has collected on you. Some people dislike being tracked and targeted for advertising purposes. There might also be times when these ads could cause distress or embarrassment (seeing an ad about a medical condition that you'd rather keep to yourself, for example). That's why you have the opportunity to opt out.

March 29, 2013

Opt out of Google's interest-based ads

By Mike Lewis

Imagine this scenario. It's your lunch break, and you start thinking about your next vacation. Out of idle curiosity, you use Google to search for accommodation on your dream Caribbean island. You visit a few of the sites that the search throws up. Then you get back to work.

For the next few weeks, whenever you do a work-related search or visit a work-related site, you see advertisements for tropical resorts, exotic hotels, and up-market tour operators.

What you are seeing are so-called "interest-based ads". They are ads served by Google, based on what Google knows about you. And you might be surprised at just how much Google does know about you. As well as your geographic location, Google knows about the things you're interested in (based on your search history and the types of sites you visit), where you hang out in social media, what mobile devices you use and where you use them, and quite a lot more. It also makes a good guess at your age, sex, marital status, and even your family income. It uses all that information to decide what ads to show.

You might not care about this. It might not matter to you that Google uses your personal information to send you targeted ads in this way. if so, that's fine.

March 12, 2013

Southwest Fox 2013 : Dates confirmed; call for speakers issued

Photo: Therese Schummer
By Mike Lewis

Geeks Gatherings have now confirmed that Southwest Fox 2013 will be held on October 17 - 20, at the SanTan Elegante Conference Center in Gilbert, Arizona. For the second year running, the conference will be combined with Southwest Xbase++, a conference which focuses on Alaska Software’s Xbase++.

If you're a serious Visual FoxPro developer, you should consider attending Southwest Fox. I've done that myself, and I can tell you that it really is a terrific event. It's now the leading VFP conference in the United States, and it attracts developers from all over the world.

February 1, 2013

Problems with the Kindle for PC app in Windows 8

By Mike Lewis

Kindle reading application for Windows 8After Microsoft released Windows 8 late last year, Amazon was quick to bring out a special version of their Kindle for PC app. This new release is specifically designed to work with the Windows 8 touch-based interface, and for the most part it does its job well. But I've found several annoying weaknesses with it - as have many other users.

The first thing that I noticed is that there is no internal search feature: you can't search for a word or phrase within a book. It's true that there is a search button in the Charms bar - as is the case with most dedicated Windows 8 apps. But this only searches the titles of books in your library or the Kindle store. If you want to search inside a book, you’re out of luck.

January 2, 2013

SCOPE_IDENTITY() and remote views in VFP

By Mike Lewis

In a recent Hex Central article, Lynn Evans recommended using the SCOPE_IDENTITY() function to find the primary key of the most recently inserted row in a SQL Server table. That function is a better choice than @@IDENTITY or IDENT_CURRENT(), because it is specific to the session and the scope.

As a Visual FoxPro developer, I often use SCOPE_IDENTITY() when inserting records via SQL Pass-Through (SPT). But I recently found that it doesn't work with remote views. Specifically, if you use a view to insert a row, then use SQLEXEC() to send a call to SCOPE_IDENTITY(), you always get back a NULL - even if the SPT call uses the same connection handle as the view. That's because the two operations occur in different scopes.