Best practices for character sets

You may not understand every language, but that doesn’t mean your applications can’t. Regardless of your customer’s language choice, your application should be able to process, transfer, and store their data. Even if you don’t provide a localized user interface, your application should allow your customer to enter text in their own language and in… Read More »

Using Jersey (JAX-RS) with Spring

Spring does a great job for what it does — dependency injection, transaction management, database query simplification, and plenty of other things. Jersey, the reference JAX-RS implementation, is also excellent for what it does — it simplifies the creation of RESTful web services by providing a framework for defining resources, accessing them, and creating their… Read More »

The absolute minimum you should know about internationalization

Internationalization is a design and engineering task that prepares your software product to be localized. It doesn’t create a localized product; instead, it puts your product in a state that allows localization. The goal of internationalization should be a single code base that can be used as-is to create multiple localized versions of your product.… Read More »

Internationalization as a form of technical debt

The term technical debt is often used to label implementation choices that trade long-term goals for limited, short-term solutions. Technical debt has a negative connotation because it means that you have accrued a technical obligation that must be resolved before you can make future progress. Teams take on technical debt for many reasons: short schedules, insufficient… Read More »

Enumerating Android Calendars

Android APIs allow you to query information about calendars in your system. Your application can perform typical read, write, update, and delete (CRUD) operations on calendars using a combination of several classes. To retrieve calendar data, you’ll use the following classes: Context ContentResolver Cursor Android security requires that you announce your application’s intentions for calendar… Read More »

Comparison of the Instant and Date Classes

Java 8 has a new java.time package, and one of its new classes is Instant. The best counterpart to this in past platforms is the java.util.Date class. There are a couple notable differences between Date and Instant: Date has very few useful methods, and Instant provides many. Instant provides finer time granularity and a longer timeline. Most… Read More »

The New Date and Time API in Java 8

It’s no secret that developers have been unsatisfied with the existing Date and Calendar classes of previous Java versions. I’ve heard complaints that the Calendar API is difficult to understand, lacks needed features, and even causes unexpected concurrency bugs. As a result, developers sometimes migrated to the popular Joda Time library, which apparently satisfied their… Read More »

Using the HAXM Accelerator for Android

Developing Android applications on Mac OS X is easy, especially if you are using Google’s new Android Studio or JetBrain’s IntelliJ. Also when you install Google’s SDK, you’ll get plenty of tools for creating virtual devices to test on. I created a Nexus 7 virtual device, and although it ran slowly, it did run smoothly.… Read More »

Tool Options for Android Development

When developing applications for the Android platform, you have several choices of integrated development environment (IDE). The environments are free and easy to download on the web. The best known IDE is the combination of Eclipse and the Android Development Tools (ADT) plugin. This option has been around for the longest. As the most mature… Read More »