Archive for July, 2010

jQuery: Novice to Ninja

I was recently given the opportunity to fly to Florida and hire people to clean up oil from the BP spill. Given that I had some long flights (I live in Salt Lake City, UT) I picked up a Nook from Barnes and Noble and had on my computer a copy of jQuery: Novice to Ninja. What better way to spend my flight time than reading a jQuery book! So I dug in.

I have been using jQuery both professionally and personally for about a year now but this book still brought a lot to the table.

Earle Castedine and Craig Sharkie have a great sense of humor, and obviously know their way around jQuery, CSS, HTML and the likes. The book uses some real world examples of creating image galleries and user interfaces. They break down the jQuery code to it’s basic forms, and then explain why things work the way they do. They don’t get too deep into Javascript except to note that jQuery is nothing more than a fancy framework on top of Javascript and uses Javascript for everything! I thought it particularly neat when they would show the “hard” way to do things, then the better way to do them, and then finally a plugin that made all the work you had just done seem useless, but it isn’t useless because you now understand how the plugin works better than if you had just slapped it in place in the beginning.

The book is quite deep about animations, AJAX actions, DOM manipulation and the sort. Even if you know Javascript and you have been using jQuery there is something in here that will make you go “ah ha!”.

To the folks over at SitePoint (an O’reilly company) good work!

Samsung Galaxy S (Vibrant on T-Mobile): First Day

So technically yesterday was my first with the new phone, but it was late in the evening and I decided instead of try and formulate a review I would just get it setup and then use it for a day.

The phone is a dream! The 1GHz processor screams, and makes light work of heavy graphics and surfing. I am unfortunately stuck in an Edge network (Panama City, Florida) and so things are quite as snappy as they could be if I were back in SLC. All that aside things happen much faster still than they did with my old G1.

The Super AMOLED screen is dynamite! This is the best display I have ever seen on a phone (still haven’t seen a Retina display). The images are crisp and the colors are deep and rich. It is truly an amazing screen.

The internal memory is a big treat too. I have currently 14GB free with 1.4GB free on the external memory card. This is quite welcome as I was able to move all things from my phone over and keep going as if I never moved.

Running Android 2.1 is nice, but I had that on my G1, so nothing new there. I have seen and heard rumors that 2.2 is coming for the Galaxy phones, but we will have to wait and see. Rooting the phone was a cinch and I won’t look back. I can’t wait to find a good mod for the phone (hopefully Cyanogenmod).

The best thing I can report about the phone is the work that Samsung put into battery life. Android phones have been notorious battery monsters. The G1 on a good day would go 5 hours without a charge. These days are gone, and I brought proof. Today I charged my phone to 100% capacity, then I took the phone off the charger for the whole day. With the exception of 1 reboot (which fubbed the numbers to be shorter) here are the results:

As you can see from the screen shot I went over 11 hours and 27 minutes off the plug. This is just amazing! It wasn’t until the last hour or so that I noticed any real problems, like the camera not allowing pictures with such low battery.

The biggest draw back I have seen in the phone is that some features are turned off when on the phone or doing various tasks. For example you can’t take a picture while talking on the phone… I don’t know why.

The 5MP camera is nice, and quick to respond, would be nice to see a large MP but that is ok too.

Overall I think the Vibrant is a clear winner in the best Android phone category. Good work Samsung and kudos to Tmobile for picking it up.

Exciting Titles

I was looking through the No Starch Press catalog today to see what books Utahcon.com will be reviewing in the near future and there are so many I am excited for. In case I don’t get to them all I wanted to give No Starch a little love and post the books I think look exciting!


Network Flow Analysis

You know that servers have log files and performance measuring tools and that traditional network devices have LEDs that blink when a port does something. You may have tools that tell you how busy an interface is, but mostly a network device is a black box. Network Flow Analysis opens that black box, demonstrating how to use industry-standard software and your existing hardware to assess, analyze, and debug your network.

Unlike packet sniffers that require you to reproduce network problems in order to analyze them, flow analysis lets you turn back time as you analyze your network. You’ll learn how to use open source software to build a flow-based network awareness system and how to use network analysis and auditing to address problems and improve network reliability. You’ll also learn how to use a flow analysis system; collect flow records; view, filter, and report flows; present flow records graphically; and use flow records to proactively improve your network.Network Flow Analysis will show you how to:

  • Identify network, server, router, and firewall problems before they become critical
  • Find defective and misconfigured software
  • Quickly find virus-spewing machines, even if they’re on a different continent
  • Determine whether your problem stems from the network or a server
  • Automatically graph the most useful data

And much more. Stop asking your users to reproduce problems. Network Flow Analysis gives you the tools and real-world examples you need to effectively analyze your network flow data. Now you can determine what the network problem is long before your customers report it, and you can make that silly phone stop ringing.


Ubuntu for Non-Geeks, 4th Edition

The Ubuntu Linux distribution makes Linux easy, and Ubuntu for Non-Geeks makes it even easier. Full of tips, tricks, and helpful pointers, this pain-free guide is perfect for those interested in—but nervous about—switching to the Linux operating system.

This revised and expanded fourth edition is packed with new material that covers all the latest features of Ubuntu 10.04, Lucid Lynx. It includes five new chapters that take you step-by-step through common tasks like installing and playing games, accessing your favorite social networks, troubleshooting common hardware and software problems, connecting with the Ubuntu community, interacting with your Windows installation, and more.

By following along with the book’s straightforward explanations and step-by-step projects, you’ll learn how to:

  • Install Ubuntu and keep it updated
  • Set up printers, scanners, USB flash drives, and other hardware
  • Install and play free games like Frets on FireFrozen Bubble, and Warzone 2100
  • Watch DVDs, listen to music, and sync your iPod, iPhone, or other mobile devices
  • Edit and share digital photos and videos
  • Create documents, spreadsheets, and presentations
  • Customize the look and feel of your system
  • Work with the command line (or avoid it altogether!)

If you’re looking for a pain-free way to learn Linux, Ubuntu for Non-Geeks is just what you need to get started.


Autotools

The GNU Autotools make it easy for developers to create software that is portable across many UNIX-like operating systems. Thousands of open source software packages use the Autotools, but the learning curve is unfortunately steep, and it can be difficult for a beginner to find anything more than basic reference material on using the powerful software suite.

In Autotools, author John Calcote begins with an overview of high-level concepts; then tackles more advanced topics, like using the M4 macro processor with Autoconf, extending the Automake framework, and building Java and C# sources.

You’ll learn how to:

  • Master the Autotools build system to maximize your software’s portability
  • Generate Autoconf configuration scripts to simplify the compilation process
  • Produce portable makefiles with Automake
  • Build cross-platform software libraries with Libtool
  • Write your own Autoconf macros

Autotools also includes a variety of complete projects that you’re encouraged to work through to gain a real-world sense of how to become an Autotools practitioner. For example, you’ll turn the FLAIM and Jupiter projects’ hand-coded, makefile-based build systems into a powerful Autotools-based build system.


Linux Programming Interface

The Linux Programming Interface is the definitive guide to the Linux and UNIX programming interface—the interface employed by nearly every application that runs on a Linux or UNIX system.

In this authoritative work, Linux programming expert Michael Kerrisk provides detailed descriptions of the system calls and library functions that you need in order to master the craft of system programming, and accompanies his explanations with clear, complete example programs.

You’ll find descriptions of over 500 system calls and library functions, and more than 200 example programs, 88 tables, and 115 diagrams. You’ll learn how to:

  • Read and write files efficiently
  • Use signals, clocks, and timers
  • Create processes and execute programs
  • Write secure programs
  • Write multithreaded programs using POSIX threads
  • Build and use shared libraries
  • Perform interprocess communication using pipes, message queues, shared memory, and semaphores
  • Write network applications with the sockets API

While The Linux Programming Interface covers a wealth of Linux-specific features, including epollinotify, and the /proc file system, its emphasis on UNIX standards (POSIX.1-2001/SUSv3 and POSIX.1-2008/SUSv4) makes it equally valuable to programmers working on other UNIX platforms.

The Linux Programming Interface is the most comprehensive single-volume work on the Linux and UNIX programming interface, and a book that’s destined to become a new classic.

Art of Assembly Language, 2nd Edition

I am always amazed at the books that No Starch Press suggests for us to review, and The Art of Assembly Language truly wasn’t even on my radar. When it was suggested to me I couldn’t resist the opportunity to break out of high level coding and dive into Assembly.

Wikipedia says of Assembly:

Assembly languages are a type of low-level languages for programming computersmicroprocessorsmicrocontrollers, and other (usually) integrated circuits.

Sweet! This book will teach me how to work with microprocessors and microcontrollers! That is what I thought, and I was close.

The Art of Assembly Language from No Starch Press covers the basics of all low level programming but has a pretty heavy slant toward intel based CPUs. With support for Linux, Mac and Windows, and even FreeBSD.

The book is big, heavy and full of knowledge. It covers the HLA (High Level Assembly) which is the best match of high level coding with low level code. The author, Randall Hyde, starts with the absolute basics explaining what each part of the controller (cpu) is and what it is meant for. He explains why things are setup the way they are and even how things have changed over the history of computing.

If you are asking yourself why you need to pick up this book, take this quick little survey:

  • Have you ever wondered how a computer actually works?
  • Do you ever dream in code?

If you answered yes to either of those then you probably want to go get this book right now.

The Art of Assembly really opened my eyes to what goes on in the underbelly of the computer, and I have a better understanding of why my code works now. Learning HLA has truly been an experience, and it is one I think the whole world of programmers should have.