API Changes

UPDATE:

Due to popular demand, we will make this a opt-in change/version change. This will NOT affect previous versions.

We will add the ability to use the newer S3 URLs as a phased rollout where you can either explicitly ask for it, or for versions of the API later than the current one, it will be the default.

Your JSON being returned with whatever version you are using currently will NOT change. There will be NO changes necessary for existing customers (unless, of course, you want the new URLs, in which can you will need to request them explicitly).

We will have more information about the rollout and the changes you will need to make to get the newer S3 urls.

Original Post…

—————————

We are making a change across the board to the Blitline API.

We are changing canonical “s3_url” formats, from:

http://s3.amazon.com/{bucket}/{key} 

to the newer:

http://{bucket}.s3.amazon.com/{key}

which supports buckets outside of the US as well

(For buckets which have a “.” in them, we will revert to the older format to support https for those URLS).

This change will take effect across all versions.

Expected Impact:

We expect the impact to be minimal. Only those parsing Blitline s3_url’s and rebuilding them should be affected.

Imagga “Smart” Tagging

We are continually amazed by the functionality coming out of Imagga.

Their latest functionality is the coolest thing we’ve seen in a long time. Imagga can take an image, analyze the contents, and then suggest tags for what is IN the image. This is unreal. We’ve all seen facial recognition, which is cool, but the fact that Imagga can recognize cars, cats, people, even adjectives like ‘old’ and ‘fun’ in a photo is astounding! It’s something you should really see for yourself. You can check it out here:

http://www.blitline.com/docs/imagga_tags 

We are so excited to get to offer this to our users! 

New changes (“v” : 1.20)

In previous versions of Blitline, we have taken the ‘smaller’ is better approach to default values and opted to minimize the size of images. In the latest “v”ersion of Blitline, we are going to change one of the default values.

Previously we have defaulted to stripping out all metadata and color profiles. We, going forward, are going to automatically strip metadata but KEEP color profile information. You will need to ‘opt out’ of saving color profile information IF you are using “v”ersion 1.20 or higher for Blitline JSON.

Many people don’t even know we offer different “v”ersions. You can set the version by adding a “v” : X.XX to your JSON at the root level (where X.XX is the version number). Currently we suggest you use 1.20 (but you can check for the latest version on the website at http://www.blitline.com/docs/api).

The latest version (1.20) provides the following changes in functionality from the default (no “v” specified).

  • The content_type of the postback request is set to “application/json” (as it should be).
  • Long poll values for “results” are not string encoded (as it should be)
  • Image results on errors are a true Hash with “error”, and “failed_image_identifiers” as keys (as it should be).
  • Color profile information is preserved automatically


Many people do not use the “v” so for most people this will have no effect, and if it does, it probably just makes Blitline behave the way you would expect it to automatically.

If you wish to ‘opt-out’ of saving color profile information, in your “save” node you can add “save_profiles” : false, and we will strip the color profile information.

Vector Support


Blitline is happy to announce new support for converting raster filetypes to other types. You can now convert Adobe Illustrator, EPS, PDF, or SVG  to PDF, EPS, or SVG without rasterization.

You can read more about how to do it here:

http://www.blitline.com/docs/vector

8 Million+ Images in 1 hour Milestone

Blitline is excited to announce that we have just passed an exciting milestone. Our first 8 million images in an hour high water mark. While the ebb and flow of images through Blitline varies greatly, we do keep track of jobs and images flowing through our system and we noticed on Saturday that we passed the 8M mark for the first time ever.

Stats:

image

That’s about 2,361 images/sec.

To celebrate this exciting event, we are all going out to watch “The Wind Rises”…

We recommend you take the rest of the day off as well, you have been working very hard lately :)

Batik SVG Support

Blitline is happy to announce support for SVG based rasterization.

Although we were able to do some limited SVG rasterization before, we have now moving towards it being a fully supported format. We have historically found IM based rasterization of SVG images to be lacking in certain aspects, we have moved SVG rendering to being Batik based. As such, we find our rasterization supports many more SVG features than before.

Batik itself is not safe enough to run in a public environment (for example https://issues.apache.org/jira/browse/BATIK-1018). Thus allowing untrusted SVG files to be uploaded to our servers was not previously possible. We have now sandboxed Batik into our cloud containers so that it runs in a secure private and empty environment. File data disclosure would be limited to whatever files exist on a default ubuntu installation. This keeps both Blitline and our customers safe during the rasterization processing.

We are actively working building out our vector rasterization support, so if you have any questions or features you would like to see, please feel free to contact us at support@blitline.com

Additionally, if you are interested in some tangential features, such as SVG to PDF functionality, please contact us as well and we can get you started in the right direction using Blitline as your processing platform.

See an example of our rasterization here:

http://www.blitline.com/docs/gist_runner?gist_id=8795129

Changes to How Discounts Will Appear on Your Bills

What is changing?

Blitline is changing how bulk discounts appear on your bills. It is a change in appearance only, all the charges will stay exactly the same.

Currently, we charge the standard rate of $0.79/hour and, at the end of the month, calculate how many dollars have been accrued and issue a percentage off coupon in accordance with our bulk pricing grid.

Going forward, we are going to retroactively reduce the price of the per hour cost when you get above the dollar thresholds. For example, once you reach the $99 threshold, the price per hour will go down 20% retroactively and going forward (so $0.632/hr), or if you get to the $299.99 threshold the original price will go down by 30% (to $0.553 for ALL your hours). Again, there is NO CHANGE IN PRICE, just how it appears on the bill.

The exact same functionality will happen for the Imagga pricing as well. Again, there is NO CHANGE IN PRICE, just how it appears on your statements.

Why the Change?

There are a few reasons…

  1. Seeing the total bill for a large number of hours is shocking and confusing, especially when the percentage off coupons are not obvious (or the total actual bill). We feel these statements are confusing and would be better served by the new format.
  2. It allows us to break up the Blitline hours and Imagga image processing into separate buckets so you can see better where percentages were applied.
  3. Our current billing provider only allows for a single coupon applied to an account, so we don’t have the ability to offer discount coupons to large customers because the coupon would be overridden by the bulk discount coupon. We are moving to billing in the “best practices” way of Chargify.


When Will this Change?

We will probably be rolling out the new billing statements sometime before the new year. Some people will get the new statements and some the old until the rollout is completed on or around Jan. 3rd.

Run your OWN scripts on Blitline

Blitline is excited to announce our newest feature!

Do you have a library of scripts (like ImageMagick scripts) that you run for your image processing? Blitline now offers you a virtual environment to run those scripts out of the box. While Blitline has it’s own JSON API, sometimes converting complicated scripts into JSON API calls is difficult. Now you can run those exact same scripts on our platform and leverage all the massive parallel and easy manipulation and storage that Blitline already provides. It’s like having your own mini-VM to run image processing scripts on.

Check out how to do it here:

http://www.blitline.com/docs/scripts

Blitline Error Results

There are 3 different types of errors one can encounter when communicating with Blitline.

Submission Error:

This means that the attempt to submit a job to the Blitline server failed. This is often because of a missing ApplicationID or perhaps you are trying to write to a bucket you do not own. 

These manifest themselves as a http server code of 400, with the body of the response having JSON of the following format { “result” : { “error” : REASON_FOR_FAILURE } }

Processing Error:

A processing error happens when something happens during the processing of the job. Sometimes this can be an image is unavailable, or invalid params for a function. These error manifest themselves only on postback or polling. 

Since you can submit many jobs and those jobs themselves can have many images, only 1 of those images might fail. Thus, the errors are contained within the “images” array of the “results” field. If an entry in the “images” array has an “error” element, that image failed for the reason described in the “error” text. 

Postback Error:

If there is a postback error, there will obviously not be a postback and if polled or looked at in the Dashboard, you will see a “postback_error” field with the error message.

Supported Formats

A common question we are asked are for a list of format which we support. So it is worth a blog post about this subject. There are functionally two answers to this question. One is the list of image formats “allowed” and the list of image formats truly “supported”.

By “supported” we mean ones that we promise should work and will actively make tickets to fix problems surrounding them. This list of “supported” formats include:

PNG, JPG, TIFF, BMP, PDF, PSD, GIF, CALS, DICOM, AI, SVG, and EPS.

That is the list of officially Blitline supported formats.

"Allowed" are formats that can be used but are more obscure and may or may not be officially supported. Those formats are the ones common to IM and are listed below.

Read More