Jan 23 2009

Linux Administration A Beginner’s Guide, Fifth Edition

Linux Administration: A Beginners Guide

Linux Administration: A Beginners Guide

As Wale Soyinka claims at the beginning, Linux Administration: A Beginner’s Guide, Fifth Edition; is a book for beginners, not for “dummies.” He assumes you know most of the basic terms and concepts needed to run a modest Windows network. This book explains the “why” for many of the facets in running a Linux server, to further complete your knowledge of your system and to understand the options available to you when setting up and tweaking your server to suit your needs.

It covers so many topics that it understandably doesn’t go into a lot of detail on some of them.  But then again, this is not an expert’s guide.  It will, however, help you get pretty familiar with the tools you’ll need and even provides background information about how certain programs evolved.  The content was kept fresh by the author adding gems of humor and making the text read a lot less like a math book than I expected.

There are plenty of command line examples strewn throughout the book, and human-readable explanations of each option you have available to you. Because sometimes, Linux’s man page documentation is too cryptic for those not intimately familiar with an application.  This adds to the book’s value as a reference manual for when you can’t remember everything you read.

This book filled in a lot of the holes in my education concerning Linux and administration in general.  A good investment for anyone looking to start their own solid Linux server, or a reference book for the more seasoned admin. From reading this book, I feel much more confident in my admin-abilities and have solid ground to reach higher levels of Linux administration.  All of which of course, adds to my value as an employee!


Jan 20 2009

firstPress Android Essentials (Apress)

firstPress Android Essentials by Apress

firstPress Android Essentials by Apress

Apress’s firstPress books are written as short and succinct as possible to engage the reader and provide them a starting point in a given technology. They are intented to be released and read as close to the technology release as possible to gain the maxiumum experience in the shortest amount of time. Unfortunately in some cases, this rapid-release structure doesn’t pan out so well, which is a flaw that this book suffers from. Thankfully this flaw does not render the book completely useless.

From the beginning of Android Essentials, it’s clear that Chris Haseman is passionate about mobile development and very excited about Android and its possibilities. He provides clear instructions and walks the reader through each part of an Android application, as well as providing hints and tricks within the Eclipse environment to make Android development even easier. While it’s not an instuction book on how to write Java, as Chris points out early on, most developers with a basic understanding of the language should be able to power their way through the examples and concepts. Chris doesn’t hold the readers hand through Java structure or development, but he progresses at a comfortable pace that should allow for any referential reading that may be  necessary.

The example code is where the reader may experience the most frustration. All code in the book was written using the M5-RC15 version of the Android SDK, which is two steps below the current release, 1.0-R2. While it may still be possible to run the M5 version of the SDK in a currect Eclipse installation, it is much easier and recommended to use the latest release so that any applications developed will work with current handsets. This means that only the first project in the book will actually build and launch correctly and all the others require small to moderately large adjustments. Anything from ‘add a line here and change that line there’ to ‘completely re-build this function from scratch’ is needed to get each example running. From a learning standpoint, this is where the book doesn’t hold up well. It can be difficult at best to find the correct solution, and even a web search may only yield a few hand-made solutions with the tag ‘your mileage may vary’.

Interestingly, this is can also be a saving factor for this book. Not everyone prefers to read a book where all the answers are laid out and available for download. Part of the enjoyment of development is knowing that you have created something for a purpose, and using this book’s code examples and the provided instruction is a great launching pad to discover your own way to build the same applications. So while it may take some extra time to make the examples work, the personal effort will usually leave a more lasting impression than just retyping the code into your favorite editor and verifying that the application does what it should.

Overall, I think that Android Essentials is a fair starting point for the beginning Android developer. For a serious developer, it’s a good book for idea reference, and for a beginner it’s a good start to see what is possible with Android. My final recommendation would be to wait and hope for an updated release of this book, or at least the code it contains. While I do enjoy discovering my own way through a particular application, more reliable starting code would have allowed me to spend more time developing my own applications instead of repairing another developer’s.


Jan 13 2009

Dropbox + Eclipse = Awesome

Developing a side project is a lot of fun. I have been working on a pet project for a little while now and I have found the biggest slow down for my project is that I think of small changes, or major fixes, when I am away from my code. I have tried using USB thumbdrives, and even Amazon S3 to take my code with me, but it never fails I will forget to update the code, or forget to take the thumbdrive with me. Finally I have found a simple way to make it all work.

Dropbox, if you don’t know, is 2.0GB of free online storage with an integrate synchronization program. It works on all three of the  major OSes (Windows, Mac, and Linux). You simply have to have internet access to use Dropbox anywhere you can install the application. This played a huge roll in my scheme for taking my code with me.

Basically what I have done is simple setting up Dropbox as my workspace for Eclipse. Let me show you what I did. I simply installed Dropbox on my laptop at home. Then set my workspace for my pet project as my Dropbox folder. Here’s the steps I followed, and some screen shots to show what I did.

Step 1: Switch Workspaces. File -> Switch Workspace -> Other...

File > Switch Workspace > Other...

File > Switch Workspace > Other...

Step 2: Select your Dropbox directory and add "workspace" to the end of the path
Setting the Path to Dropbox + "workspace"

Setting the Path to Dropbox + "workspace"

This will cause Eclipse to restart, so it can load the new workspace. Step 3: Repeat these steps on your other machine (office, desktop, etc). The sync between machines will take a few minutes. The basic drive home from work should be long enough for the sync to take place. When you get home simply refresh the workspace, or file directory in Eclipse and you will be ready to work right where you left off on your project. With 2.0GB of free space you should have plenty of space to develop any project you may be working on. You can also share links to your public folder in Dropbox, so if you wanted to share some code files with a friend you can send them a link to your public folder.

Jan 12 2009

Python Web Development with Django

 

Python Web Development with Django

Python Web Development with Django

Frameworks and patterns are really becoming strong fixtures of the web development community. They are giving developers the ability to do more and do it faster. Django is a great example of a framework that is enabling developers to developer faster. I just a few lines of code you can create a blog (Chapter 2), a photo gallery (Chapter 7) or a content management system (Chapter 8). Where Django is a quick way to learn Python and create great applications, Python Web Development with Django (the book) is a great way to learn Django.

 

The first chapter is a great quickie on what Python is and about the parts of Python. It’s a quick explanation of variables, tuples, lists, and more. The subsequent chapters walk you through all the inner workings of Django.

Jeff Forcier, Paul Bissex, and Wesley Chun really give you a great book, and plenty of great examples of what Django can do. In detail you are shown, explained what each part of Django you are working with is for, and the secrets to it’s inner part. Often you are given options and directions on how to expand and change your application.

Probably the sweetest parts of this book is the appendix on Google App Engine. GAE allows the use of Django, and this appendix explains what it takes to add that to the mix so your app can move seamlessly into the cloud with Google App Engine.

The book is published by Addison Wesley in their Developer’s Library. Check it out here or at Amazon.com


Jan 2 2009

Lighttpd from PacktPub.com

Lighttpd from PacktPub.com

Lighttpd from PacktPub.com

PacktPub never let’s me down, and did they ever live up to their goal of packing books full with this one.

Don’t let the small size fool you, this book has everything you need to know to install, setup, configure, tweak, and secure Lighttpd.

If you don’t know what Lighttpd is then you really need this book. Lighttpd is a smaller, faster, more secure web server, like Apache, only better.

Andre Bogus really breaks down what is great about Lighttpd by showing how to install Lighttpd. He also shows how you can use the power of regular expressions to tweak how your web server handles requests, and even how to secure your web server.

You will learn in depth how to secure Lighttpd and be prepared for an attack, and how to react when you are attacked.

You will also learn how to host multiple sites on a single server with Virtual Hosting.

Andre even covers how to migrate from Apache to Lighttpd, in depth.

This is really a great book, and if you are new to the world of web servers, or administration of a website it is a must!