Jeff Friesen is a freelance tutor and software developer with an emphasis on Java and mobile technologies. In addition to writing Java and Android books for Apress, Jeff has written numerous articles on Java and other technologies for SitePoint, InformIT, JavaWorld,, and DevSource.

Jeff's articles

  1. How to Present Code Listings on Kindle Devices: 3 Solutions

    Amazon’s Kindle e-readers are great for presenting fiction. However, they’re problematic when displaying technical content. One problem is that code listings often look terrible, causing many developers to shy away from using Kindle as a distribution medium.

    In this article, I first review the problem of poorly formatted code listings. I then offer three strategies for presenting nicely formatted code. I rely on the Kindle Previewer’s e-reader simulators to show results.

    First: A Note on PDFs

    Instead of creating a native e-book, you could create a PDF that all but the oldest Kindles can display. However, there’s a problem with PDFs: Although code listings and other content are nicely formatted, PDFs are hard to read. Either the font is too small when a PDF page fits completely on the screen or a larger font is required that necessitates excessive horizontal scrolling.

  2. Don’t Fear the Evil Twins (the == and != Operators)

    JavaScript developer Douglas Crockford has referred to JavaScript’s == and != operators as evil twins that should be avoided. However, once you understand them, these operators aren’t that bad and can actually be useful. This article examines == and !=, explains how they work, and helps you get to know them better. The Problematic == […]

  3. Augmenting JavaScript Core Objects Revisited

    My recent Augmenting JavaScript Core Objects article showed how to introduce new properties and methods to JavaScript’s Array, Boolean, Date, Math, Number, and String core objects. I followed in the tradition of other articles and blog posts, including those listed below, that show how to extend these core objects with new capabilities: Extend Math.round, Math.ceil […]

  4. Augmenting JavaScript Core Objects

    JavaScript defines several objects that are part of its core: Array, Boolean, Date, Function, Math, Number, RegExp, and String. Each object extends Object, inheriting and defining its own properties and methods. I’ve occasionally needed to augment these core objects with new properties and methods and have created a library with these enhancements. In this article, […]

  5. My First Kindle Book: A Case Study

    For several years, I’ve thought about creating and publishing a Kindle book. However, other projects came first and I shelved this idea until recently. A couple of months ago, I bought my first Kindle e-reader device, which pushed me over the edge into creating my first Kindle book, which I tested on the device and […]

  6. Getting Started with Android Library Projects, Part 2

    This entry is part 2 of 3 in the series Getting Started with Android Library Projects

    This entry is part 2 of 3 in the series Getting Started with Android Library ProjectsGoogle offers Android library projects as a way to manage reusable code. In the first part of this three-part series on Android library projects, I introduced you to library project fundamentals. In this article, I move from theory to practicality […]