Category: Blog

Simple DIY Product Photography

A friend asked me to try and make some nice product pictures for his website.
Since I mostly shoot landscapes, I thought I would like to try  a simple setup, to shoot product photography without any specialised equipment (except for an external flash and camera offcourse 🙂 ).

I wanted some reflection of the product, so I used my old Ipad as a glass plate to place the product on, you can use any other glass plate or tablet you have available.
I first tried flashing right on the bracelet (on a white table) which gave a lot of flash reflections in the product picture:

OLYMPUS DIGITAL CAMERA
First try, not too bad, but not that great eather..

It could be worse, but I’m not super thrilled about the result. I need to bounce the flash, and place the flash inside a small space, to get a nice effect.

So for my “product photo studio” I used one of the cubes in my ikea kallax closet, you can use any space you have preferably with a white ceiling to bounce the flash off), or create a box with some white wood
As you can see in the picture below, my wall has a little blue-ish color, which I think adds to the end result.

OLYMPUS DIGITAL CAMERA
Product Photography Setup

Result (unedited):

OLYMPUS DIGITAL CAMERA
Bracelet On Ipad In Closet 🙂
OLYMPUS DIGITAL CAMERA
Other Side
Different bracelet
Different bracelet

 

Simple DIY Product Photography

A friend asked me to try and make some nice product pictures for his website.
Since I mostly shoot landscapes, I thought I would like to try  a simple setup, to shoot product photography without any specialised equipment (except for an external flash and camera offcourse 🙂 ).

I wanted some reflection of the product, so I used my old Ipad as a glass plate to place the product on, you can use any other glass plate or tablet you have available.
I first tried flashing right on the bracelet (on a white table) which gave a lot of flash reflections in the product picture:

OLYMPUS DIGITAL CAMERA
First try, not too bad, but not that great eather..

It could be worse, but I’m not super thrilled about the result. I need to bounce the flash, and place the flash inside a small space, to get a nice effect.

So for my “product photo studio” I used one of the cubes in my ikea kallax closet, you can use any space you have preferably with a white ceiling to bounce the flash off), or create a box with some white wood
As you can see in the picture below, my wall has a little blue-ish color, which I think adds to the end result.

OLYMPUS DIGITAL CAMERA
Product Photography Setup

Result (unedited):

OLYMPUS DIGITAL CAMERA
Bracelet On Ipad In Closet 🙂
OLYMPUS DIGITAL CAMERA
Other Side
Different bracelet
Different bracelet

 

Caching repetitive requests

For a client I created a php script that gets certain user profile statistics from another website and returns it as JSON to the ajax request that our own website sends.
This was the easiest way, since saving it ourselves and keeping the data up to date with all the changes would be too much work.

In order to lower the loadtime & keep the other website from being swamped with requests (every profile load) I used memcached to cache the data for 12 hours.
Caching data with memcached is fast and simple.

If you don’t have memcached yet, you can install it on ubuntu with the following command:

sudo apt-get update
sudo apt-get install php5-memcached memcached

It should instantly start a memcached process, or you can start it manually:

/etc/init.d/memcached start

the config file will be in /etc/memcached.conf or /etc/sysconfig/memcached

Here you can change the port (default it runs on 11211)

Now whenever my php script gets a request for a profile, I check if we have the data cached in memory:

mc = new Memcached();
$mc->addServer("127.0.0.1", 11211);

$result = $mc->get($cachekey);

if ($result) {
   return $result;
}

the cachekey can be anything you wan’t wich will identify the data you are looking for (in my case I used the url encoded as the key)

If no result was found, I then get the result from the remote website, and save it in my memcached server for 12 hours

$mc->set($cachekey, $stats, 43200);

This way only the first request for every profile in 12 hours will be sending a request to a remote server, decreasing the average loadtime of the pages for the visitors.

Don´t forget we can also use memcached for caching results we get from database queries on our own database, to decrease loadtime and database cpu load.

Personally I prefer varnish for full page caching solutions (I will talk about that in another post), but for smaller stuff like a hand full of objects / results memcached is a very nice option.

 

Magento isSaleable() false

If you are having problems with products not being saleable in magento, make sure you add the price attribute to the select, otherwise it will always return false!

$collection = Mage::getModel('catalog/product')->getCollection();
        $collection->addAttributeToSelect('name')
                ->addAttributeToSelect('image')
                ->addAttributeToSelect('price')
                ->addAttributeToSelect('url_path')
                ->addAttributeToSelect('status')
                ->addUrlRewrite();

 

 

Pushover push notifications for opencart

Get opencart push notifications on your phone!

This App uses the pushover app to send push messages to your Android or IOS device if a new order is received, or a customer is created.

To receive notifications you will need to purchase the Pushover App for Android (http://pushover.net/clients/android) or iOS (http://pushover.net/clients/ios)

Then download and install the opencart extension:

https://www.opencart.com/index.php?route=extension/extension/info&extension_id=14803&token=2a91840bddb0b8cefeb4a4317cac88f7