2016 Google Pixel vs Samsung Galaxy S7

A friend of mine asked for my opinion. Galaxy S7 or Google Pixel. Keep in mind that I wrote this with my friend in mind so if it sounds like a personal letter, it is.

The primary thing I look for in a phone is software. The Google Pixel does software well.

With the Google Pixel:

  • You are guaranteed the latest versions of Android as soon as they are available.

  • You have a phone that will always run Android like a champ.

  • You have NO bloatware. ( a huge plus for me.)

  • Every new feature added to Android will work seamlessly with the hardware.

With the Galaxy S7

  • You are still high up on the wait list for new versions of Android.

  • Your Phone will run TouchWiz (or whatever Samsung calls their skinned version of Android these days).

  • You’ll have a good bit of bloatware (“Try Peel smart remote even though you’ve never opened the app and dismiss all notifications!”)

  • Some features may be a bit clunky (“Ok Google” works fine but would be much more seamless on the Pixel)

You may have noticed that I’m leaning toward the Pixel already. This is true. The Pixel would be the best choice for ME and I’m just letting you know why.

The second thing I look for in a phone is design.

Again, this is highly subjective but here we go!

The Pixel is bland. Nothing special. The back even is a bit off-putting with that glass upper half that’s just kinda there. This is why I like it.

It’s minimal. No obsessive logos or markings. No textured back. The glass upper half actually allows your Bluetooth, wifi, and phone signals to pass more easily through the housing to their respective receivers. It’s a functional design choice.

With the S7 your getting a standard design that has been proven to work. While there may be more to its design, it’s the same design that everyone and their mom is sporting.

Alright, by now I’m realizing that I’m just spewing praise about the Pixel. Carry on.

On to hardware.

It doesn’t take much to run Android these days. Any flagship phone is going to be just fine and higher specs can actually end up eating your battery life for more than its worth. Both phones are in the same ballpark for RAM and processor.

The S7 has a micro SD card slot (huge plus) while the Pixel does not. The Pixel comes in 32GB and 128GB options and if I were buying one today I would have to go with the 128GB to hold my downloaded podcasts, Spotify playlists and all the junk that I would normally offload to my microSD card.

The Pixel has a great camera. Or rather, great photo processing software that puts its photos on par with the iPhone 7. I’m increasingly more concerned with the quality of my phone’s camera as I’ve been stuck with the HTC One M8 and its shitty camera for a few years.

So the Pixel isn’t all perfect.

It’s not water resistant and it has sub-par built in speaker placement. Again, these are not deal breakers for me because I rarely use my phone’s built-in speakers and I have never had a problem keeping my phone safe and dry. But these could easily be deal breakers for others.

Also, back to design choices, the puzzle on the Pixel is a bit thick when compared to the recent industry trend of super thin bezels or no bezels.

So if it were me buying a phone tomorrow, I would get the Pixel XL (maybe. I’d actually have to hold it first and see how it feels in my pocket) with 128GB storage in Black and slap a rad skin on the back to hide some of those logos.

So yeah, this turned out to be a circlejerk around the Pixel. What can I say? The S7 is a Samsung phone. When they aren’t exploding, they’re pretty much the same as the previous generation but with extra bells and whistles. The Pixel is a welcome change to the smartphone market boasting function over form and a pure Android experience.


Raspberry Pi Google Cloud Print Server

This comprehensive guide gives you the steps and the resources required to turn your Raspberry Pi into an always on, low power Google Cloud printing server.

Why? Having a Raspberry Pi as a print server not only allows a user to print from a mobile device but also allows for wireless printing through any network even if it is not shared by the Pi or the Printers.

If you are in an environment where printers are restricted or users are charged for use of the printer, this guide may also provide tips for getting around this.

Get your Pi to print.

First, we need to install CUPS (Common Unix Printing System).

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install cups

When prompted to continue press Y for “yes” and press enter. CUPS is a fairly large install so feel free to read ahead and get started on some of the other steps if you feel comfortable. Otherwise, go grab a coffee and settle in for the rest of this process.

CUPS has created a user group called “lpadmin” who has access to the print functions. We need to add ourselves to this group using:

sudo usermod -a -G lpadmin [user]

Put the username(s) you wish to give print access to in place of [user].

Great, now you have a working installation of CUPS on your Raspberry Pi. Next, we need to enable a web interface for adding new printers and such.

sudo nano /etc/cups/cupsd.conf

Look for:

# Only listen for connections from the local machine
Listen localhost:631

Comment out <code class=”language-xml”e>Listen localhost:631</code> and replace it with the following:

# Only listen for connections from the local machine
# Listen localhost:631
Port 631

This instructs CUPS to listen for any contact on any networking interface as long as it is directed at port 631.

Keep scrolling until you find the location settings. Modify this section so it looks like this:

< Location / >
# Restrict access to the server...
Order allow,deny
Allow all
< /Location >

< Location /admin >
# Restrict access to the admin pages...
Order allow,deny
Allow all
< /Location >

< Location /admin/conf >
AuthType Default
Require user @SYSTEM

# Restrict access to the configuration files...
Order allow,deny
Allow all
< /Location >

We’ve inserted “Allow all” into these fields to allow any computer access to CPUS on our Pi. Alternatively, you can use “Allow @local” to only allow computers on your local network, but in my environment, Google Cloud could not communicate to CUPS even when the printing device was on the same network. So I just set the permissions to “all”.

Anytime you make changes to the CUPS configuration, restart the CUPS for the changes to take effect.

sudo /etc/init.d/cups restart

Add a printer to CPUS

Open a web browser and navigate to [your Pi’s IP]:631 You should be greeted with the CUPS homepage. Navigate to the “Administration” tab…

and click “Add Printer”.

You will see a popup prompting you to login. Use the username you added earlier using lpadmin and the corresponding password.

From here, you can follow the prompts to add a local printer, discovered network printer, or configure your own network printer.

Adding a local printer and a discovered network printer is straightforward just follow the prompts (lucky dog!). However, adding your own network printer can be more difficult especially if CUPS does not recognize your printer protocol or drivers.

If all you have is an IP address for the printer then I would recommend using another Linux machine to add the printer using whatever built-in printing manager GUI come with your distro(I used Ubuntu). Then after the OS does its magic, finding protocols and installing drivers etc. look up the printer properties and transfer them to CUPS on your Raspberry Pi. For drivers, visit for a complete database of printer drivers for GNU/Linux.

Download the appropriate PPD and upload it to your Pi through CUPS.

While adding your printer make sure you check the “Share Printer” option as this allows Google Cloud to access it later. If you don’t check this option now you may have to delete the printer and add it again from scratch.

Finally, perform a test print and to ensure everything is working so far.

Google Cloud

While there are other ways to set up Google Cloud functionality on the Pi, installing Chromium is by far the easiest.

However, it isn’t painless.


sudo apt-get install chromium-browser

If this works for you congratulations! (lucky dog!)

If you get an error message attune to “sorry, this package doesn’t exist or has been renamed”, then you probably are running Raspbian Jessie which does not have official support for Chromium.

No worries! kusti8 of the Official Raspberry Pi Forums hosts the last working version of Chromium 45 on his dropbox for people like us to use. See his Guide on Installing Chromium on Jessie or continue following along here for the gist. Of course, if you would rather get Chromium from the official repos you are welcome to do so.

wget -c --tries=0 --read-timeout=20

wget -c --tries=0 --read-timeout=20

wget -c --tries=0 --read-timeout=20

sudo dpkg -i chromium-codecs-ffmpeg-extra_45.0.2454.85-0ubuntu0.

sudo dpkg -i chromium-browser-l10n_45.0.2454.85-0ubuntu0. chromium-browser_45.0.2454.85-0ubuntu0.

The -c --tries=0 --read-timeout=20 between wget and the URL are to force wget to retry the operation where it left off automatically should it time out or fail.

Using the code above, you should have downloaded the Chromium Browser packages and codecs and unpackaged and installed them.

Now you need some way to access your Pi’s desktop GUI. If you are unable to hook up a monitor look into installing a VNC for a virtual remote desktop server on the Pi.

Startup Chromium and log in using a Google account. For ease of use, you should use the same Google account you use on your other devices so that you automatically have permission to use the Google Cloud print service. however, it is possible to share printers on Google Cloud so any Google account will do.

Go to Chromium’s Settings.

Then to “advanced settings”

Navigate to Google Cloud Print and “Sign into Google Cloud Print” if you have done so already, simply click “Manage”

From here we will navigate to “Add a Classic Printer”

You should see the printers you added via CUPS here just add the printers to Google Cloud! Finally, perform a test print using Google Cloud Print and enjoy your always on, low-cost raspberry Pi print server.


Cyanogenmod: A new Player in the Smartphone Market?

I love Android. When I get a new phone my first steps are downloading my favorite launcher and installing customization tools like Multi-Picture Live Wallpaper and Zooper Widget Pro. I then spend hours creating custom widgets, setting up custom animations for wallpapers and tweaking every available aesthetic aspect available to my liking. The result is often a device which none of my friends can use when asked to do something as simple as launch the camera app. But to me, my phone is just as personal as ascetically pleasing and functional. I have often pondered rooting my HTC One M8 but have either not had the time or was just too scared of bricking the device. Why root? To flash a new ROM of course.

The Android OS is famous for being open-source and everyone from single developers to phone manufacturers like Samsung and HTC has used this open sourced code to modify the stock Android experience to a custom version for their devices. While many ROMs change the appearance from stock Android, others add functional differences that alter the way notifications appear or how tasks are accessed. However, the main reason that millions of smartphone users are willing to go through the trouble of rooting their phones and risking bricking their devices and voiding their warranty is to add customization options or to remove bloatware apps that are pre-installed and irremovable from their devices. Enter Cyanogenmod.

Cyanogenmod, like many software startups, began as a hobbyist project. Steve Kondik was tinkering with Android as early as 2009. Way back in the Android Cupcake, Android Doughnut, and Android Éclair days. Kondik began making changes to improve performance and battery life of smartphones running his “CyanogenMod and began to attract a community of interested developers and customers. Meanwhile, Kirt McMaster a college dropout and Silicon Valley techie had an epiphany. He was frustrated that his Samsung Galaxy S3 did not have the new Jelly Bean update (as I often feel when my phone is on the waitlist for a new version of Android). He flashed CyanogenMod which already incorporated Jelly Bean’s features. The act of flashing his phone made him begin to think about the potential of custom ROMs. You could change the way voice commands launch apps,d” add functionality in new ways that big league companies overlooked and best of all, let the open source community advance the entire smartphone experience instead of large corporations.

Needless to say, Kondik and McMaster teamed up and are currently the CTO and CEO of Cyanogen, respectively. The attitude of Cyanogen is a sort of underdog mentality. The company views the “big dogs” Google and Apple as their #1 enemies. The company seeks to make a superior product while also removing as many Google services as possible. By using non-Google apps like Bing, Outlook, Dropbox, OneDrive, and Spotify, Cyanogen is sort of biting the hand that feeds it while also directly positioning itself as a potential player in the mobile OS duopoly that is Android and iOS. Some say that excluding Google services as a default is a critical move that has the potential to ruin the validity of a phone. Others rejoice that a startup has come to save them from the “big brother” Google invading every aspect of their phone.

Either way, Cyanogen is entering a highly competitive market with a product that can easily be replicated by the big dogs. Whether Cyanogen becomes the underdog or is shut out by its competitors, the end result is clear: users want customization. The want to own their device and add/subtract from it whatever they want. Cyanogen’s impact on the market and the future of mobile OS is sure to be interesting.

Source for this article from Forbes


Thoughts on Smart Watches

Smartwatches have been the buzz for a while now and during my time in San Francisco this February I noticed a few of them on the wrists of some individuals I’ve come into contact with. I was only in the city for a weekend and didn’t explore it to much but I noticed two Moto 360s, a Samsung Gear 2, and two other smart watches that I couldn’t identify at a distance. This was a few months before the Apple Watch release and I did not see any Pebble watches.

This post will be divided into three sections: Android Wear in general, The Apple Watch, and Pebble.

Android Wear

For me, Android Wear as an OS takes the cake. It works seamlessly with Android phones (and more recently iOS devices) offering voice controls and a beautiful card style navigation. The drawback, however, comes with the types of devices that are capable of running the OS. While LCD or OLED displays are beautiful they do require a lot of power to operate. With such a small form-factor and current battery technology, the types of watches that run Android Wear just aren’t up to snuff.

Android wear OS examples

When I use a smartwatch, I expect it to be a watch first and a smartphone companion second. If I have to manually wake up the watch to see what time it is, or have the battery die after a long day, I want no part of it. Call me old fashioned but I still wear a watch daily. Checking the time shouldn’t be an obvious motion as removing a phone from my pocket or blatantly tapping or turning my wrist to activate the display. I love nearly everything about Android Wear and the devices running it but the battery is a deal breaker.

Apple Watch

With the recent release of the Apple Watch, the reviews are circulating. And the result? “Meh.” The Apple watch tried to be everything in one package. WiFi sensor, heart rate monitor, built-in speaker, and microphone make the Apple Watch thicker, and have less battery life. Another drawback, the watch is proprietary to Apple and can only pair with iOS devices.

Apple watch models

The Apple Watch will likely return with a gen 2 version that will be leaps and bounds ahead of this model. Apple will likely listen to feedback from this model and re-prototype the second gen to include those features that customers want and exclude the rest.

“If the Apple Watch succeeds, it won’t be because it’s a better watch. It’ll succeed if it can create a new way for its users to be rude, exclusionary assholes.” – AWL

The Apple Watch will likely be a success because of the resounding customer loyalty and branding that goes with any Apple product. As for me, an Android user with a budget and high standards when it comes to reliability, customization and functionality, the Apple Watch is a definite “No!”.


Last summer I was tempted to buy the “Pebble Classic” as they are calling it now. But I was turned off by the black and white e-paper screen that reminded me of those calculator watches from the 80’s. What made me want one was the always on screen and week long battery life. With Pebble announcing its new Pebble Time smartwatch on Kickstarter this spring, I instantly jumped on the Pebble train.

The Pebble Time’s tagline “No Compromises” holds true. The full-color e-paper display is beautiful, low power, and daylight visible. The battery life is exceptional and the announcement of smart straps (interchangeable hardware straps that bring extra functionality to the Pebble Time) make the Pebble watch an excellent contender in the growing smartwatch market.

Pebble time models

The Pebble Time meets all my criteria. It’s an always on display with 7 days battery life. It is extremely customizable. It is easy to develop for and design new watch faces. And I’m super excited to see what third-party developers will do with smart straps. I think that of all the smartwatch companies, Pebble is doing it right. They make a watch first and a smartphone accessory second.

For the dozens of times every day that I fish around in my pocket for my phone during the day, a smartwatch seems like a natural move away from the antiquated habit of removing my phone just to check for notifications. Plus, the added functionality like activity tracker and voice control make smartwatches a natural companion with any smartphone. Smartwatches are still in their infancy and are likely to change drastically in the c