Posts Tagged ‘oreilly’

Getting Started with OpenShift – easy reference by Steven Pousty & Katie J. Miller

January 11th, 2015

With the advancement of cloud technologies, the options of PaaS (Platform as a Service) for web applications are aplenty. It also helps that there are many available selections to support Java.
Although Red Hat was placed in Gartner ‘Visionaries’ Magic Quadrant, Red Hat’s OpenShift platform is my preferred choice of PaaS at the moment.

OpenShift is a cloud computing platform as a service product from Red Hat. A version for private cloud is named OpenShift Enterprise.

The speed of developing and getting up and running for a product is absolutely crucial for a quick go-to-market advantage, hence any PaaS with the easiest use will have an upper hand over the rest.

For a newer platform like OpenShift, having a book like ‘Getting Started with OpenShift’ is one of the best way to get impatient beginners for a quick run hands-on experience with it. There are many other ways offered such as following the Getting Started – online version or simply the forums, but those are beside the point of this book review.

About The Authors

Steve Poutsy is a Developer Advocate for OpenShift. He has spoken at over 50 conferences and done over 30 workshops including Monktoberfest, MongoNY, JavaOne, FOSS4G, CTIA, AjaxWorld, GeoWeb, Where2.0, and OSCON. Before OpenShift, Steve was a developer evangelist for LinkedIn, deCarta, and ESRI.

Katie Miller is also a OpenShift Developer Advocate. Katie is a polyglot programmer with a penchant for Haskell. The functional programming enthusiast co-founded the Lambda Ladies online community and co-organizes the Brisbane Functional Programming Group. She is passionate about coding, open source, software quality, languages of all kinds, and encouraging more girls and women to pursue careers in technology.

About The Book

The book is meant as ‘A Guide For Impatient Beginners’ but I am glad to say it is not as brief a ‘Getting Started’ guide as any average technical books.

For anyone who doesn’t need any introduction about PaaS concepts, they can dive right in from Chapter 3 as the first couple of  chapters provide conceptual details about PaaS and the basics about cloud computing.

There are 2 important terms in OpenShift, gears and cartridges.

Gears are secure containers for your code. Each gear is allocated CPU, memory, disk, and network bandwidth. A single gear can be used to create an entire web application complete with a private database instance. Multiple gears can be used to create multiple applications or configure your applications to automatically scale in response to web traffic. There are currently three gear types on OpenShift Online: small, medium, and large. Each size provides 1 GB of disk space by default. The large gear has 2 GB of RAM, the medium gear has 1 GB of RAM, and the small and small.highcpu gears have 512 MB of RAM.

Cartridges are plug-ins added to a gear. Cartridges are the plug-ins that house the framework or components that can be used to create and run an application. One or more cartridges run on each gear, and the same cartridge can run on many gears for clustering or scaling. There is quite a list of supported cartridges and OpenShift also supports D-I-Y cartridges, which means most of the popular technologies that you need are already supported by default. Example cartridges are the application servers (Jboss, Tomcat, PHP, Ruby, Node.js, Perl), databases (MongoDB, MySQL, PostgreSQL), and integration tools (Jenkins, cron).

Due to the nature of cloud computing, secure access is important for the application to be accessed or managed. A sub-chapter is dedicated for this and there are sufficient resource in the online guide to get the setup done.

Advanced concepts are also covered in the later chapters of the book, such as storage (it’s shared hosting), websockets, backup options and team collaboration.



Table of Contents

1. Introduction
    What Is the Difference Between IaaS, PaaS, and SaaS?
    The Three Versions of OpenShift
    Choosing the Right Solution for You
    Things to Understand
        Words You Need to Understand
        Technology You Need to Understand
2. Creating Applications
    Preliminary Steps
    Setting Up the Command-Line Tools
    Creating Your First Application
    Autoscaling and Why You Should Use It by Default
    Reasons to Move to the Paid Tier
3. Making Code Modifications
    Cloning Code to Your Local Machine
    Modifying Application Code
    Building and Deploying Your Code
    Action Hook Scripts
    Hot-Deploying Code
4. Adding Application Components
    Database-Related Cartridges
    Nondatabase Cartridges
        Continuous Integration
        Metrics and Monitoring
    Finding Cartridges and QuickStarts
        Adding Third-Party Cartridges
5. Environment and Application Management
    SSH Access
        Using SSH to Interact with a Database
        Importing SQL in an SSH Session
    Environment Variables
        Preconfigured Environment Variables
        Custom Environment Variables
        Overriding Preconfigured Environment Variables
    Log Access
    Changing Application Server or Database Settings
        Application Server Configuration Changes
        Database Configuration Changes
    Using Marker Files
6. Library Dependencies
    Where to Declare Dependencies
    Incorporating Your Own Binary Dependencies
    Modifying Your Application to Use the Database
        Code to Connect to the Database
        Code to Close the Database Connection
        Code to Query the Terms for the Insult
        What We Have Gained by Adding a Database
7. Networking
    SSH Port Forwarding
    Custom URLs
    SSL Certificates
    Talking to Other Services
    Addressable Ports
8. Disk Usage
    Where You Can Write “to Disk”
    Determining How Much Disk Space Is Used
    Copying Files to or from Your Local Machine
    Other Storage Options
9. Backup
    Managing Deployments and Rollbacks
        Manual Deployments
        Keeping and Utilizing Deployment History
    Application Snapshots with RHC
    Backing Up Your Database
        Writing a Cron Script
        Moving Data off the Gear
10. Team Collaboration
    Managing Multiple SSH Keys
    Domain Access for Teams
    Possible Workflows
11. Summary
    What We Covered
    Other Areas to Explore
    Final Words
Appendix A. Basic Linux for Non-Linux Users


I’m going to make known that I do prefer OpenShift over many PaaS providers.

My preference of OpenShift over other PaaS competitors:
– Low barrier of entry, free tier with no credit card required
– A free tier provides 3 gears – that is 3 web applications hosting for free!
– Minimal technical restrictions, non-proprietary platform API or database
– Easy upgrade from free tier to paid tier, affordability
– Backed by a reputable technology corporation

My preferred key benefits from those listed on OpenShift website:
– Application portability
– Extensible cartridge system for adding services
– Automatic application stack provisioning and application scaling
– Choice of cloud infrastructure – preventing lock-in
– Minimized vendor lock-in – built on open source technologies

You can now download this book in ebook format for FREE or optionally you can purchase it from

Books, Java, Software, Technology , , , , ,

Learning Android – Marko Gargenta

January 27th, 2014

Learning Android is a book published by O’Reilly, recently updated with newer content in its 2nd Edition.

The first edition was published in March 2011 with the following content:

What’s Inside
Chapter 1, Android Overview
Is an introduction to Android and its history
Chapter 2, The Stack
Is an overview of the Android operating system and all its parts from a very high
Chapter 3, Quick Start
Helps you set up your environment for Android application development
Chapter 4, Main Building Blocks
Explains the Android components application developers use to put together an app
Chapter 5, Yamba Project Overview
Explains the Yamba application that we’ll build together through this book and
use as an example to learn Android’s various features
Chapter 6, Android User Interface
Explains how to build the user interface for your application
Chapter 7, Preferences, the Filesystem, the Options Menu, and Intents
Covers some of the operating system features that make an application developer’s
life easier
Chapter 8, Services
Covers building an Android service to process background tasks
Chapter 9, The Database
Explains the Android framework’s support for the built-in SQLite database and
how to use it to persist the data in your own application
Chapter 10, Lists and Adapters
Covers an important feature of Android that allows large data sets to be linked
efficiently to relatively small screens
Chapter 11, Broadcast Receivers
Explains how to use the publish-subscribe mechanism in Android to respond to
various system and user-defined messages
Chapter 12, Content Providers
Shows how to design a content provider to share data between applications, in this
case using it to enable our app widget to display data on the home screen
Chapter 13, System Services
Introduces various system services that an app developer can tap into
Chapter 14, The Android Interface Definition Language
Covers building an inter-process communication mechanism to allow for remote
access to a service from another application
Chapter 15, The Native Development Kit (NDK)
Introduces how to write native C code as part of your Android application

The book is a good reference to learn Android development, as a supplement to online references.
You can develop an Android app just by going through forums, internet articles and most importantly Android Developers website.
However, nothing beats having a book, at least for me.

Learning Android expects you to know the basics of Java, XML and Eclipse IDE.

If you have the above basics, then this book can be easily followed because it shows you step-by-step how to build a simple application using all the features that the Android platform provides.
Diving deeper into each subject or chapter will be on your own accord but nevertheless this book gives enough guidance for you to have a clear understanding of the Android platform.

While the author has now joined Twitter University, the book’s related source code is still available online.

About Author

Marko is the director of Twitter University, where he manages the training of Twitter Engineers in Android and other open source technologies. Previously he was co-founder of Marakana (acquired by Twitter), a firm that trained thousands of Android developers at Intel, Cisco, Qualcomm, Motorola, the Department of Defense, and other institutions. Marko is also the creator of Android Bootcamp course and co-founder of San Francisco Android Users’ Group.

Books, Review ,

Being Geek by Michael Lopp – A must read for software developers

January 3rd, 2011

My Review
This is one of those books that should be read by software developers in particular. Just like the subtitle, this is 100% – The Software Developer’s Career Handbook.
It’s not a programming guide book, but definitely one that is full of valuable advices and facts for your career advancement, if you intend to stay in software development.
I would have appreciated if I got to read this very much earlier, but it’s better late than never.
If you do not have an elder sibling in software development that could give you advice on how to progress in your career or what’s in store in the world of software development, this book is definitely for you.
The author, Michael Lopp, is/was a software developer with many years of experience, in various companies. He started writing about software development and various topics in his popular blog Rands In Repose.
Most of the content in this book is a compilation of the writings from his blog.

Michael has split the content into a few chapters that you can read individually, and to provide all the experience and facts he had gathered for your own decision-making.

Software Developer Career
How to actively engage and perform better in an interview. Identification of the different types of people who you can have a better interview with certain strategies.
Negotiation of a salary and how it should be calculated.
In the end of the chapter though, the love of what you do is still important as your career is your business and nobody else.

According to Michael Lopp, everyone is a manager. Every manager is different but a manager should have 1:1 or 1 to 1 session with every subordinate.
Find out what type of meetings you should participate and which that you can skip, and would not jeopardize yourself.
Like the chain of command, the chain or flow of information and decisions should be strictly followed in any organization to ensure flawless communication.
Again, the author is able to identify the few types of managerial personalities that you can relate to.
There are also a few personalities when it comes to a knee jerk (change) situation.
Team building, including introducing games and ways to keep the group doing things well.

Understanding Nerds
Only a geek or nerd knows what it really is to be a nerd. Some of the personalities of a nerd include having control issues, building himself in a cave, loves toys and puzzles, has an amazing appetite for information, builds an annoyingly efficient relevancy engine (the part that I liked most), and according to the author, is fucking funny.

Looking for the next Gig
Considering your next career move? Again some valuable tips for the interview and also your performance or yearly review.
And before you do jump into your next gig, some questions to consider before actually making the jump. Are you going to a startup or established company? A branded corporation? Development or Managerial?
The author has valuable insights for such questions leaving the decision making entirely up to you, making them informed decisions.

Yes, this post is summarized because being a geek/nerd will automatically extract relevancy from any given piece of incoming information.
So if you’re a geek, Being Geek is surely for you.

Books, Review, Software , , , ,