Skip to main content

Mobomo webinars-now on demand! | learn more.

some text

Last week, I found myself in an interesting Twitter discussion with my friend Brad Frost. Centered around home screen icons for mobile, Brad was lamenting on the lack of up-to-date, clean cut resources for them.

I couldn't agree more! In fact, over the last few weeks, that has been my baby; to create a simplistic guide for home screen icons. Initially, it was just an internal team resource, but now I'd like to share it with you. And after a lot of testing and research, here is what I came up with...

TL;DR: People are overdoing it. You can add great looking home screen icons for iOS and Android with a single image and two lines of code. Here's the Github Repo with the markup and a test image.

From Flappy Birds to the "Gloss" Effect

Before the days of App Stores and Flappy Birds, when the iPhone was first unveiled, there were no third party apps. Your home screen was a fixed set of icons and there was virtually no customization, not even rearranging capabilities.

The following year (still talkin' iPhone OS version 1.1.3 here) Apple added the ability to add (or bookmark) "Web Clips" to your home screen. Rearranging was finally implemented for apps and web clips on up to 9 home screens (hot dog!) - still no app store though.

Along with this feature, Apple provided the ability for developers to specify custom icons for "Web Clips" called a "Web Clip Icon." This could be accomplished in two ways; by adding the file to your root folder via predefined naming conventions or by adding a <meta> tag to the <head> of your document. The image was required to be an 8-bit (no transparency) square PNG. iOS automatically rounded the corners and added that sexy "gloss" effect icons. However, you could disable the gloss with a different naming convention in your file or meta tag.

Many iterations of the iPhone and iOS later, you still have access to this feature as you did way back in iOS 1.1.3. Additionally, Mobile Safari for iOS 7 uses the web clip icon when displaying your bookmarks. Oh, and home screen bookmarks are now available in Chrome (31+) for Android as well. Long story short, this is something everyone should be adding. No one wants to see the default icon.

If you look up documentation on these icons though, it will boggle your mind! Some of the sources out there recommend up to seven different size icons with varied meta tags for each. After a ton of experimenting, I found this to be totally unnecessary. iOS and Android are quite adept to scaling the icon to its necessary size without making a ton of versions or adding loads of code to the head of your document.

The Simplicity of Modern Touch Icons

Now with all that said, here are my simple steps for modern touch icons.

Step 1: Make It

Make your icon. My preference is 512x512px but as long as its at least 152x152px, you'll be good. In addition, double check it's PNG 8-BIT with no transparency. Note: It won't work if you use PNG-16 or have transparency enabled. Finally, make it square, the OS is going to round the corners for you. Save your file as touch-icon.png That's it.

Step 2: Add Code

Add these two lines of code to the head of your HTML document. The first is for Android, the second is for iOS.

<link rel="shortcut icon" href="touch-icon.png">
<link rel="apple-touch-icon-precomposed" href="touch-icon.png">

Notes:

  • iOS 7 doesn't show gloss regardless of whether you use "precomposed" or not. My recommendation? Use it. It'll ensure your icons have a consistent look across all iOS versions.
  • If you use Apple specific file names, you can simply plunk the images in your site's root folder and it will "just work" on iOS devices, however I prefer the pre-composed method. You already have to add a tag for Android, so you might as well keep them together. Also, there's a chance you project won't always be in the root folder of a site.
  • Bonus

    By default, both iOS and Android use the page's <title> tag for the bookmark title (you can still edit before saving them). However, if you're feeling crazy and want to add another line of code, you can use this undocumented tag, from Apple, to set a different default title.

    <meta name="apple-mobile-web-app-title" content="My App Name">

    Technically this tag is for full screen web apps (a post for another day), but it works with regular web clip bookmarks as well.

    Keep the conversation conversation going! We'd love to hear from you.

    Categories
    Author

    Processing big data requires a lot of CPU power and storage space. At the minimum, a cluster of powerful servers to process data in a distributed fashion is essential. Typically, the set up process can be very expensive. However, here are several relatively low cost options. Now, we're not talking petabytes big data at the major league scale, like FB or Twitter, but big enough that a traditional RDBMS - at 10s to 100s terabytes isn't enough.

    We will be focusing on building a 10-node cluster for Hadoop. This process can also easily be adapted for other distributed computing platforms, such as Cassandra, Storm, or Spark.

    1. AWS Elastic Map/Reduce
    2. DIY using AWS EC2 instances
    3. DIY using PCs built with off-the-shelf components

    AWS Elastic Map/Reduce

    Amazon's Elastic Map/Reduce provides the easiest way to setup a Hadoop cluster, so if your budget allows, this is a great option. Setting up a Elastic M/R cluster is simple - just a few clicks from the AWS console, and you'll be up and running. Depending on your requirements, you may keep the cluster running all of the time, or you can fire up a cluster and terminate it when you're done with your data processing tasks.

    The cost of the cluster is determined by the hardware configuration (type of server instances) and the software configuration (which Hadoop distribution: Amazon or MapR). Currently, Elastic Map/Reduce provides those applications: Hive, Pig, and Hbase.

    Here are the costs of some commonly used EC2 instance types, except hs1.8xlarge - the most expensive instance so far, is listed here for reference. The full EC2 instance pricing list is available here.

    For a 10-node cluster, the cost can be calculated using the AWS cost calculator

    • Pros: Easy to setup, can be lauched and terminated on demand
    • Cons: Expensive, limited choices of OS, Hadoop distro, and applications

    For a 10-node m2.4xlarge cluster the monthly cost is $16,435. Also, you'll need to budget around 1/5 of that to cover network i/o and storage costs.

    To process a petabyte worth of data, you'll need a 21-node hs1.8xlarge cluster, which costs close to $88,000/month.

    DIY Using AWS EC2 Instances

    AWS Elastic Map/Reduce adds management and software on top of the instance costs. If you want to avoid those cost, you can build your cluster using individual EC2 instances, and install and configure the cluster software yourself.

    • Pros: Relatively cheaper, install any OS, Hadoop distro, and applications
    • Cons: Need to manually install and manage the cluster

    For a 10-node m2.4xlarge cluster the monthly cost is $11,800. Also, you'll need to budget around 1/5 of that to cover network i/o and storage costs, plus labor and software licensing costs.

    If you don't plan to set up a permanent cluster, that's available 24/7, you can use spot instances to reduce cost. For permanent clusters, using reserved instances can lower your costs, you can find more details here.

    To process a petabyte worth of data, you'll need a 21-node hs1.8xlarge cluster, and it will cost close to $70,000/month.

    DIY Using Servers Built with Off-The-Shelf Components

    Your lowest cost option would be a complete DIY. Here's the current pricing for components and total cost for a mid-to-high end single server (more or less equivalent to EC2 m2.4xlarge, with faster CPU, much more disk space including fast SSD, but less memory):

    Sample configurations from low to high:

    Cost of a 10-node Off-The-Shelf Servers:

    • Pros: Cheapest, install any OS, Hadoop distro, utilizes physical hardware
    • Cons: Must manually install and manage the cluster and physical hardware

    So, a 10-node cluster similar to m2.4xlarge costs around $15,000 (with a much larger 45TB capacity), and a lower end setup equivalent to a 10 m2.2xlarge node cluster costs around $10,000 (with a much larger 22TB capacity)

    To process a petabyte worth of data, you'd need a 63-node cluster with the high end servers, and it will cost close to $200,000.

    Choosing a Hadoop Distribution

    You can choose a Hadoop distribution from one of the following competing offerings, they are all pretty good and easy to setup on a cluster, so anyone of those should more or less satisfy your big data needs:

    Cloudera CDH4

    Applications included: DataFu, Flume, Hadoop, HBase, HCatalog, Hive, Hue, Mahout, Oozie, Parquet, Pig, Sentry, Scoop, Whirr, Zookeeper, Impala

    Hortonworks HDP

    Applications included: Core Hadoop(HDFS, MapReduce, Tez, YARN), Data Services(Accumulo, Flume, HBase, HCatalog, Hive, Mahout, Pig, Sqoop, Storm), Operational Services(Ambari, Falcon, Knox Gateway, Oozie, ZooKeeper)

    MapR

    Applications included: HBase, Pig, Hive, Mahout, Cascading, Sqoop, Flume and more

    Resource Links

    Other distributed computing environments worth checking out:

    Categories
    Author
    1
    Subscribe to Diy