The default behaviour for web browsers these days seems to be to stream MP3 files rather than download them. That’s been the case for a while, but it’s getting harder to find the option to get them to download. I maintain a site that sells content in MP3 format – explaining to purchasers how to download them is a recurring issue. Here’s what I know. It’s incomplete and, in some cases, untested. Corrections and additions are welcome. Chrome [tested on Windows] Ctrl+S OR Click the “…” on the embedded player and select Download. OR Right click the embedded player and select select “Save Audio As …”. Firefox [tested on Windows + Linux] Ctrl+S OR Right click the embedded audio player and select “Save Audio As …”. Clicking the background won’t work it has to be the player (Play button, time remaining counter, etc.) OR In the Firefox address bar, type “about:config” (without the quotes) and accept the risks. Use the search box to find the preference media.play-stand-alone. Double click (or right click + Toggle) to turn the value from True to False. It should now ask you if you want to save rather than just playing automatically. This will apply to all media so you may want to set it back to False once you’re done. Safari [untested] Click on the URL in the address bar and pressing the Option and Enter keys at the same time. This should bring up a save dialog. Internet Explorer 11 [tested on Windows] […]
The intersection of computer hardware and software can often introduce thorny compatibility problems. Sometimes they’re unforeseen. But sometimes they’re intentionally created by Microsoft. Intel have introduced a new range of processors based on the Kaby Lake architecture. They’re collectively referred to as “7th Generation” and they have a 4 digit model number starting with a 7 – i7-7700 or i3-7300 for example. And a newly invigorated AMD have introduced a range of processors, known as Ryzen or Bristol Ridge, which they’re hoping will compete with the Intel juggernaut. The Kaby Lake processors are already appearing in products – in laptops from Dell, Asus, and Lenovo for example – and AMD obviously hope their Ryzen processors will be popular too. Now, all those laptops come with Windows 10 installed. But there are often reasons why somebody (or some organisation) would want to install an older operating system instead – Windows 8.1 or even Windows 7. And that’s where the problem will arise. Beyond the technical challenges of installing an older OS on a new chip (such as getting Windows 7 to understand just what USB3 is when it’s been assured that USB only goes up to 2), Microsoft have thrown a new spanner in the retro-computing works. Microsoft’s Knowledge Base article 4012982 describes a situation where a device with a 7th Generation processor will be blocked from downloading Windows Updates for any OS other than Windows 10. So because Microsoft are not planning to test Windows 8.1 (a supported operating system) […]
There was a small uproar amongst online businesses a couple of years ago when it became clear that new EU regulations meant that sales of digital products (MP3s, ebooks and the like) to EU consumers would have to include VAT at the rate of the consumer’s (rather than seller’s) home country and that the seller would have to account for that VAT to the authorities of each country that they sold to. In the UK, this was simplified by VAT MOSS, the Value Added Tax Mini One Stop Shop, which lent its name to the whole kerfuffle. This is actually just the mechanism by which you can itemise your sales to each country in an HMRC (Her Majesty’s Revenue and Customs, i.e. the tax authorities) form so they can handle the payments to each country. But it was complicated by the fact that there was no threshold on digital VAT, meaning that UK businesses earning under £83,000, who had so far been exempt from the VAT regulations, would have to register as a VAT business in order to submit the VAT MOSS form. It’s two years on now and I need to set up some digital sales so I’ve been looking at what’s changed. Actually, very little – so far. Even Brexit isn’t going to make a difference as the EU considers the ruling applies to the whole world. So the requirement to account for VAT on sales to EU countries will still apply, although what effect Brexit will have […]
I updated Virtualbox on an Intel-based tablet and tried to boot a copy of an Ubuntu virtual machine. I got the message: VT-x/AMD-v hardware acceleration is not available on your system. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot. I’ve run Virtualbox on the tablet before but in the interim it’s been updated to Windows 10 and has had some compatibility BIOS and chipset updates. So I checked the BIOS to make sure Intel Virtualisation support was turned on – it was. A forum post suggested that enabling the Hyper-V feature within Windows will by default disable VT-x for everything else. I checked in Programs and Features and the Hyper-V Windows feature was indeed enabled – I vaguely recall enabling it for a lab exercise. I disabled it and rebooted – the virtual machine now boots.
I use the very handy free virtualisation software Virtualbox and usually it’s very well behaved. However, when I tried to start a Windows 8.1 virtual machine this evening, I immediately got the message: FATAL: Could not read from the boot medium! System halted. The memory and CPU settings for the VM also seemed to be wrong so I was guessing some kind of corruption. Not the end of the world in this particular case but still a pain. If you Google that message, you mostly find forum posts from people who’ve just started using Virtualbox and don’t know you need to mount an ISO in order to boot a brand new VM and install the operating system. But it’s also what you get if Virtualbox looks at your VM’s virtual disk and sees nothing that looks like an OS. I had a recent backup of the VM but mounting that got the same result. But I did notice that as well as the normal Virtualbox configuration file my-vm.vbox, there was a second one dated slightly earlier called my-vm-1.14-windows.vbox. I tried mounting that instead and it worked! The memory and CPU settings were also back to the expected values. I’m guessing that if I looked more closely, the hard disk settings in the apparently corrupt config file were also wrong and that’s why it couldn’t boot.
I had a problem today with our installation of Quickbooks – specifically 2010 Pro although I think this problem can occur on pretty much any version. When opening Quickbooks, you almost immediately get the following message and then the program closes: Quickbooks has problem in reading this registration file. You need to ask you system administrator to REMOVE this file and re-install Quickbooks. C:\ProgramData\Common Files\Intuit\QuickBooks\qbregistration.dat Googling turned up this Quickbooks support article which suggests first trying to change the UAC settings from On to Off … or vice versa. That ‘have you tried turning it off and on again’ approach didn’t give me a lot of confidence in the article (especially as it made no difference) so I was sceptical about suggestion 2, a repair installation of MSXML 4.0. Sure, qbregistration.dat is an XML file but wouldn’t other things be having problems if that was broken and not just Quickbooks? Then I ran across a post on Microsoft Community support which said they’d solved the problem by following that step. So I downloaded MSXML 4.0 SP3 and did a repair install with the suggested options: msiexec /fvaum msxml.msi My qbregistration.dat file looked OK so I left that as it was. I then re-registered the DLLs (on Windows 7 64 bit, I had to be in C:\Windows\SYSWOW64 to get the registration of MSXML4.DLL to work, that directory is not on the path I guess) and rebooted. It worked! I had messed around with the UAC settings but they’ve ended up as […]
I’m in the process of upgrading a Backup Exec installation to the latest version and adding Oracle backups using the Backup Exec Agent For Applications And Databases. The backup server and database server are both running Windows Server 2008. This was going reasonably smoothly (well, Symantec smoothly which is bumpier than most) until I ran into an issue with the Oracle backups that took a little while to solve. It turns out that if there’s a firewall between your backup server and database server, you’ll probably need to make some changes and these aren’t very well documented. When I ran an Oracle backup, I would get the following error: Final error: 0xe000846b – The resource could not be backed up because an error occurred while connecting to the Agent for Windows. The correct version of the Agent for Windows must be running on the target computer. This didn’t affect normal filesystem backups to the database server. Also, the Backup Exec job log helpfully includes the RMAN output from the Oracle end and this showed that the backup had started (so the initial connection to the agent had obviously worked) but then an error had occurred, presumably when RMAN tried to start streaming the data to the backup server. After several dead end searches, I eventually found Symantec Technote 209163 which explains that one possible cause is the Windows Firewall and that the solution was to disable the firewall on both servers. I did that to find out if this was […]
I’ve been demo-ing a project on Azure and happily publishing the project to a couple of different Azure sites during the testing phase. The time came a couple of days ago to publish to a package which I could deploy on the client’s server, which worked fine as well. But then I wanted to update the Azure site again and suddenly got an error – “The following exception was thrown trying to publish: Sequence contains more than one matching element” Some searching got me to this post by Dave Kidder. I found that the settings he mentioned were in the .ls3proj file rather than the .lsproj file (probably a feature of Lightswitch v3) but his fix did get publishing working again. Unfortunately it also broke the authentication on my debugging copy of the project such that Test User could no longer access anything useful. That was probably caused by deleting the .user file but the whole approach seemed a bit brute force so I decided to take a closer look at what actually needed to be changed to fix the error. Comparing the .ls3proj files from before and after publishing to a package, I found only two relevant changes. <RemotePublish>True</RemotePublish> had become <RemotePublish>False</RemotePublish> and <DefaultDatabaseName>My-Database-Name</DefaultDatabaseName> had been added. Changing False back to True and deleting the DefaultDatabaseName property got publishing back on track and the project still works under debugging.
If you’re used to the flexibility of SQL queries, you’ll probably quite quickly find limitations in the way you can query data in Lightswitch. Two common limitations are not being able to change the shape of the data (in other words you can only return complete Customer entities when quering a Customer table rather than just the fields that you want) and not being able to aggregate data using GROUP BY or SUM expressions. The best way around these is to implement a Custom WCF RIA Service and the best guide to doing that is the first half of Eric Erhardt’s article on displaying a chart using aggregated data. This looks complicated before you do it but is actually fairly straightforward once you get going. However even in VS2102, I’d noticed different behaviour in one aspect of this. Some projects do indeed generate the file Server\GeneratedArtifacts\ApplicationData.vb and for these projects the context you need to use in your class library is ApplicationData.Implementation.ApplicationDataObjectContext (ApplicationData is the name of your datasource so your actual name may be different, Eric’s is NorthwindData because he’s using the Northwind sample database). But some projects generate the file Server\GeneratedArtifacts\ApplicationDataObjectContext.vb and for these projects you need to use LightSwitchApplication.Implementation.ApplicationData as the context. I’m still not sure of the difference. I’ve just opened a project of the first type in VS2013 and after allowing the upgrade to happen had a number of errors relating to the file ApplicationData.vb and the context ApplicationData.Implementation.ApplicationDataObjectContext not existing. I presume the second […]
Visual Studio Lightswitch is Microsoft’s rapid development environment for Silverlight and HTML5. A common use case is to develop completely locally using the built in SQL database and then publish code and schema to a remote server and database. This generally works well but if you follow a develop-publish-develop-publish cycle then sometimes your local database schema changes will be rejected by the remote server. When this happens, you’ll typically get one of two unhelpful errors: An exception occurred when deploying the database for the application. Failed to instantiate Microsoft.Data.Schema.Sql.SchemaModel.ExternalPropertyAnnotation because it was not registered. or Incorrect syntax near ‘MULTI_USER These usually mean that there’s a change in your local schema which the remote server can’t apply. A typical scenario would be adding a One-To-Many foreign key relationship to a table with existing data, implicitly creating a required field. The foreign key constraint can’t be applied because there’s no data in the column yet. I had both errors trying to publish a Lightswitch application to Windows Azure. I tracked down and fixed the problem by using the tools available in Visual Studio. Since I’d seen only scattered references and hints to using the tools in this way, I thought I’d post this quick walkthough. This was originally written to update this thread on social.msdn.microsoft.com I’m using Visual Studio Professional 2012 Update 3 configured for Lightswitch development with the current version of SQL Server Data Tools (SSDT) installed. You’ll certainly need reasonably up to date versions of both and if you have […]