Posted: April 8th, 2010 | Author: Aaron K. | Filed under: Video | Tags: HPX170, P2, Video | No Comments »

Panasonic AG-HPX170 Camcorder
Today I had to transfer a lot of DVCPRO HD footage from a Panasonic AG-HPX170 camera. I discovered that the USB 2.0 port transferred easily twice as fast, if not faster, as the 1394 FireWire port, when connected to a Macbook Pro. This was a surprising result! I suppose the FireWire port is more useful for direct video capture and monitoring than it is for transferring video from the P2 media cards. Adobe OnLocation plus a laptop with a high-resolution screen makes for a great field monitor, with scopes and annotation tools included!
And praise to Panasonic for releasing an update to P2CMS that now works with Snow Leopard!
Posted: April 4th, 2010 | Author: Aaron K. | Filed under: General | Tags: food, health | No Comments »

Sucralose - glucose with three evil green chlorine atoms!
Why does it seem that sucralose, an artificial sweetener made by chlorinating glucose, is appearing in more and more products where it doesn’t make sense? I don’t understand why beverages that are already full of sugars (typically, high-fructose corn syrup, nasty stuff that makes us fat) need to also include sucralose. These products are not marketed as low-calorie or low-carb. High-fructose corn syrup is already inexpensive and readily available, so I don’t see a cost benefit. What’s the deal? Is it some Giant Evil Conspiracyâ„¢ to poison people? Some economic benefit that I don’t know about? High-pressure marketing from the sucralose manufacturers?
I don’t want this crap in my food, drink, body, or environment. Stop putting it in everything! And, if anyone knows why this stuff is appearing with ever-increasing prevalence, please enlighten me!
Posted: March 7th, 2010 | Author: Aaron K. | Filed under: Audio | Tags: ableton, Audio, latency, macbook | 2 Comments »
Today I was attempting to determine the hardware audio latency of a MacBook Pro (late-2009 model, 2.8GHz dual-core 17″). This was to plug in to the Driver Error Compensation setting under Preferences > Audio in Ableton Live 8. I was following the Driver Error Compensation tutorial that ships with Live, and hooked the headphone output to the line input on the side of the MacBook. I used a straight-through 1/8″ TRS cable – two of them, in fact, which I also verified for correct wiring with a meter, after discovering a few disturbing facts.

MacBook Pro audio latency, tested with Ableton Live
First, something is out of phase, either the input or the output. When the output waveform zigs up, the recorded waveform zags down. That could be troublesome in certain circumstances.

Significantly longer latency, after disconnect/reconnect!
Second, the actual latency changes every time you disconnect and reconnect the cable plugged in to the headphone jack. Apparently, the Mac is reconfiguring its drivers, so that it knows what’s connected where, or something. But when it does this, the latency changes! A lot! While the cable is connected, it doesn’t seem to vary, but since the connector is so delicate (and over-engineered, sigh..) it is easy to accidentally dislodge the cable a tiny bit, which is enough to trigger this problem.
Each of the two screenshots above show the playback waveform (top) and the recorded waveform (bottom). You can see the phase difference, and I included two examples that were on the more extreme ends of the range of latency. The time scale along the bottom is in fractions of seconds. You can see that the latency has changed from approximately 0.0025s to 0.0225s – that’s a 20ms difference! Why the heck does it do this?
Moral of the story: buy a professional audio interface for any serious recording work.
Posted: October 19th, 2009 | Author: Aaron K. | Filed under: General, Websites | Tags: book, magento, review | No Comments »
I must be doing more Magento work than I realized, as Packt Publishing has asked me to review their new book Magento: Beginner’s Guide
for them.
I’ve just received my review copy and I’ll be delving into it in the coming days as I have time.
My first impression is of a good quality softcover book. It’s an on-demand printing, and obviously they are doing it correctly. The book itself is targeted at the store’s operator, and not a theme designer or Magento coder. If you want to set up your own Magento store, having a book like this to explain exactly what everything does, even just in the Admin panel, is a great help.
Stay tuned for the full review!
Posted: September 22nd, 2009 | Author: Aaron K. | Filed under: Websites | Tags: development, ecommerce, magento, php | 7 Comments »
Magento has a setting in admin under System > Configuration > Web > Default Pages called “Default Web Url”. Normally this is set to a value of cms, and you specify which CMS page to use in the next option “CMS Home Page”. Magento (of course!) doesn’t use the Default Web Url as you would expect – it is not a simple url string that will redirect the visitor. If you’ve tried to set this to land your users, for example, on a category or product page, you’ll have found out it doesn’t work the way you might think.
The Default Web Url value is interpreted by Magento using the three-part front controller scheme that runs the entire site. The format is like this: frontname/controllername/actionname and you can only have up to three parts specified, the way it’s interpreted (as of 1.3.2.3). For those who aren’t familiar with this scheme, here’s a very brief overview. (visit http://alanstorm.com/magento_controller for a more in-depth discussion) The frontname is defined in a module’s config.xml file. Look in the frontend section under routers and you’ll find a frontName tag. (Magento core modules are all under /app/code/core/Mage). The frontname routes the request to the module’s front controller, which are in the corresponding ModuleName/controllers directory. In there are all the controller files, named as ControllernameController.php and inside those files are the action methods, named actionnameAction().
Throughout the code examples below, replace Mycompany and Mymodule with whatever names you want to use. Be sure to pay attention to capitalization; it’s important and it’s not necessarily consistent or intuitive!
To set up a module that will let you redirect an incoming root website link to wherever you want, first set up a module xml file under /app/etc/modules/Mycompany_Mymodule.xml containing this code:
<?xml version="1.0"?>
<config>
<modules>
<Mycompany_Mymodule>
<active>true</active>
<codePool>local</codePool>
</Mycompany_Mymodule>
</modules>
</config>
Then, create your company’s module directories:
/app/code/local/Mycompany/Mymodule
/app/code/local/Mycompany/Mymodule/controllers
/app/code/local/Mycompany/Mymodule/etc
Create your config file in /app/code/local/Mycompany/Mymodule/etc/config.xml:
<?xml version="1.0"?>
<config>
<modules>
<Mycompany_Mymodule>
<version>0.1.0</version>
</Mycompany_Mymodule>
</modules>
<frontend>
<routers>
<mycompany>
<use>standard</use>
<args>
<module>Mycompany_Mymodule</module>
<frontName>mycompany</frontName>
</args>
</mycompany>
</routers>
</frontend>
</config>
You will see that we specify a frontend router, called mycompany, indicating that the frontName mycompany should direct the code to Mycompany_Mymodule.
Now, create the controller file in /app/code/local/Mycompany/Mymodule/controllers/PageController.php (the file can be named for whatever controllername you want to specify after the frontname on the url line, in this case the controllername would be “page” all lowercase. The file name should be your controllername with an uppercase first letter, followed by Controller.php)
<?php
class Mycompany_Mymodule_PageController extends Mage_Core_Controller_Front_Action
{
public function indexAction()
{
$this->getResponse()->setRedirect('/products.html');
}
}
Here we define a class named after your module name and front controller name. In that class we have an indexAction() method, which is what gets called if you don’t specify an action name (like mycompany/page). If you want a different action name (like mycompany/page/discounts) you would create a method called discountsAction(). In our indexAction method above, we do a simple redirect, which will send the website visitor to whatever url we want, with no Magento shenanigans to mess with us. Set the admin Default Web Url to “mycompany/page” and it will fire the indexAction and redirect our visitor! Here we have it hard-coded, but it would be simple to set up a definable config setting in admin, if you want a fully-functional module.
Posted: September 17th, 2009 | Author: Aaron K. | Filed under: General | No Comments »
The smallest shift in our own attitudes will have an impact on our lives. Seeing your life from a new perspective can show us doors that have been open for years, but we thought were closed. This new self-assessment often yields a fresh confidence, and burst of energy, which we can harness to achieve our own greatness.
What are you doing to achieve your dreams, something which should be everyone’s goal? Whatever it is, it’s difficult, and it requires a leap of faith, a belief in yourself, the confidence and chutzpah to chase after what you want and never, ever give up. I give my mother a lot of credit for digging about inside herself, and finding her strength to be who she really is. It’s hard work. It’s the most rewarding kind, however. Try it yourself, and once you’ve achieved even a little bit of your dream, you’ll never go back.