A client recently asked us to place a PowerPoint 2010 presentation with linked audio files on a website for delivery / download by visitors.  The request sounded straightforward but actually raised multiple issues such as the need to update mime types on the web server, unreliable behaviors across browsers (Firefox would play audio / IE would not, IE would launch slideshow automatically / FF would not), and the requirement that users have PowerPoint installed.  Thus, we ultimately decided to convert the powerpoint presentation to video format for more universal accessibility on the web.  But this also proved challenging.

After much research and trial and error, we used PPT2Video Pro for conversion from powerpoint to video to both mp4 and wmv file formats.  Learn more or purchase at http://www.wondershare.com/pro/ppt2video-pro.html.

Here are the steps needed to convert a raw powerpoint presentation with linked audio files into video.

1) In PowerPoint:  File -> Publish -> Package to CD – this will update all links to audio files and create a new folder with audio files and pptx file.  Delete the unneeded autorun files and DLLs created by Windows.

2) In PowerPoint: File -> Save as -> Powerpoint Slideshow into same folder.  This will create a .ppsx file that will launch a slideshow automatically with linked / synced audio for each slide.

3) Use this .ppsx file for conversion to .wmv video file using PPT2Video Pro.

4) PPT2Video Pro settings in order to capture linked audio in converted video file:   under Advanced Settings -> Other check the “Use Sound Recorder…” checkbox.

Depending on the size of the presentation, video conversion may need to run for an hour or more.  The end result is a video file that plays the powerpoint slideshow with audio synced to each slide.

Posted by Ryan Dingus on the 6th of December, 2010 at 4:39 pm under E-commerce.    This post has no comments.

As you probably know, or are about to learn, theme packaging has changed with the advent of Magento version 1.4. You can learn more details about those changes here: http://fishpig.co.uk/create-a-custom-theme-in-magento-1-4

The free, flexible, and very popular Telescope Theme can be downloaded and installed via Magento Connect with extension key ‘magento-community/TelescopeTheme-0.6′. Note that the beta version must be used.

Upon install completion, an error appears on the magento frontend:
Fatal error: Call to a member function toHtml() on a non-object in {your_path}/app/code/core/Mage/Core/Model/Layout.php

The fix:

The issue is with page.xml in the Telescope theme files:

Locate the file app/design/frontend/TelescopeTheme/default/layout/page.xml

Edit the file and replace the following line:

<block type="core/profiler" output="toHtml"/>

with:

<block type="core/profiler" output="toHtml" name="core_profiler"/>

Then clear your store cache via the admin or by deleting var/cache and var/session.

Activating the Telescope Theme in Magento 1.4:

Activating the newly installed Telescope Theme is also a bit different than in previous 1.3.x versions of Magento.  Here is a screenshot for reference as configured under System -> Configuration -> General -> Design.  Update values to those below, then refresh your cache again.  The Telescope Theme should now appear on the front end without error.

Activating the Telescope Theme in Magento 1.4

Activating the Telescope Theme in Magento 1.4

Posted by Doug Hays on the 30th of September, 2010 at 10:20 pm under iPhone Development.    This post has no comments.

We are working on a legacy iPhone app that uses the awesome SQLPO to persist my objects to a sqlite database. The app doesn’t have a lot of data (100’s of rows) but, in our testing, believe that we are experiencing a bit of lag with SQLPO especially when inserting records.

So, I decided to run a super-simple benchmark to see whether the move to Core Data would be worth the pain.

I created two apps, each with a single class that would be persisted to the database several times over, one that used Core Data and another using SQLPO. The initial aim of the test was to compare these two frameworks on older iPhone hardware. But, after seeing the results on an iPhone 4, I didn’t feel the need to blow the dust off of my 1st Gen iPhone:

Time Test SQLPO Core Data
500 Record Insert 27.5s 0.43s
500 Record Update 15.13 sec 0.44 sec
10000 Record Insert 360 sec* 5.72 sec
10000 Record Update 300 sec* 5.82 sec
* Test did not finish. App crashed

So, Core Data is faster, but does it perform better with memory usage? We noticed SQLPO was a bit liberal with its memory usage, so we were glad to see Core Data’s result:

Memory Test SQLPO Core Data
Max Live Bytes 99.5 MB 2.54 MB
Idle Live Bytes 3.02 MB 1.74 MB
Time to release 63 sec 1 sec

Clearly a move to Core Data is the smart way to go and it had been on the to-do list for a future release. But, with these numbers, I think it may get a bump in priority.

Posted by Doug Hays on the 22nd of September, 2010 at 9:04 am under iPhone Development.    This post has no comments.

I had the simplest of UIWebView implementations throwing me an odd issue. It was an iPad app with a UIWebView, stretched to fill the entire screen, loaded from a local HTML file.

If the view was loaded in landscape and then rotated to portrait, the content size of the web view would remain at 1024 pixels wide even though the HTML content only took up 700px.

I finally found a helpful post that suggested I add the following inside the HEAD tag of my HTML:

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;">

That does the trick!

Posted by Doug Hays on the 14th of September, 2010 at 10:28 pm under E-commerce.    This post has no comments.

I’m adding Authorize.NET to one of my client’s CakePHP apps and used the Authorize.NET CakePHP Component which saved me a world of time.

But, after setting everything up, I ran my first transaction and got this error: The merchant login ID or password is invalid or the account is inactive. I double checked my API Login ID and Transaction Key and they were correct. Finally, I stumbled on a helpful thread that set me in the right direction.

I was using the test.authorize.net URL but that is only for developer accounts. Even if you are in Test mode, but have a ‘Normal’ Authorize.NET account, you need to use the secure.authorize.net URL.