This post will talk about what integer range partitioning is, how to leverage it, and finally walk through a few scenarios demonstrating the benefits of it.
In this post I will walk through how to use BigQuery’s new capability of querying Hive Partitioned Parquet files in GCS. It is a really cool feature.
If you are looking for an easy way to query a public dataset you should definitely check out Big Query’s publicly available datasets.
Notes from Brian Goetz’s talk on Evolving Java.
On Deciding Between PUT and POST When Creating a RESTful Resource
My thoughts and experiences with migrating my blog from Wordpress to Octopress
So far, so good with my new Eee PC (1005PE) Netbook. The machine came pre-installed with Win 7 Starter edition, so the first task for me to do was to get rid of Windows 7 and install Ubuntu Netbook on it. So I downloaded the Ubuntu Netbook 10.04 daily build image (yes, I am daring), and was on my way.
If you are trying to debug Ruby code in RubyMine 2 IDE, but are having difficulties such as, the IDE freezes after you try to step in, step over, or step next and are wondering if your configuration is wrong? It is not, if you happen to have installed the
ruby-debug-ide19 gem from the command line (not from IDE), you need to patch the actual gem code to get things working nicely.
If you haven’t heard, the latest version of Groovy was released this week and included with it, among many other great features, was Grape (Groovy Advanced Packaging Engine). Grape is an annotation based dependency management system that provides functionality similar to that of Maven and Ivy with one clear advantage, namely, no build file.
This post describes the steps involved when setting up Time Machine to backup to a Network Drive. These steps are only required if you want to back up to a device other than a Time Capsule. It is pretty quick and easy, so without further due, lets get started.
In this second installment of Scala Sugar, lets put the lists that we created in the previous post to use.
If I want to become a real Scala Ninja, I am going to have change the way I think about coding. For the past 10 years I have been programming primarily using the object oriented paradigm. Although Scala supports pure object oriented programming, it is my desire to learn to program in Scala in a complete functional paradigm.
This post was updated on November 19, 2009.
For the past few months, I have been running the iPhone OS 3.0 betas on my iPhone without too many issues. Thus I assumed that when the final version of OS 3 was released, it would be easy to upgrade to it. This has not been the case. The current beta on my iPhone was beta 5, and then yesterday when the final version was announced, I assumed after a simple plug in to iTunes, I would be upgraded to the released version. Nope, iTunes kept telling me that I have the latest version of iPhone OS 3. It seems as though it is not checking the build number, only the OS level. The next thing I tried was doing a restore, this didn’t work either because it gave me an error saying it could not connect to the site to download the file.
Who doesn’t like easy upgrades? Easy upgrades are great when implemented correctly. There are two speciifiic easy upgrades I have been (enjoying) using recently, namely, Wordpress and Ubuntu Server.
It has been a while since a single program changed my workflow as much as Quicksilver has.
Lately it seems like functional programming has been the talk of the town, the new (old) paradigm that is making a comeback in a major way. For a while, I resisted the urge to follow the paradigm de jour, being the hard core OO guy that I am, but now it is clear to me that it is more than just hype. There are many reasons functional programming makes sense as a paradigm for developing software today, but the one that I am most interested in is the fact that it handles concurrency so well, thus providing us the building blocks to develop extremely scalable applications.
Just noticed a new and important feature released with the latest nighty build of Webkit, namely, an option to check for updates automatically. Mozilla has had this feature in their browsers for a long time, and it was hard not having it available in Webkit. Just got used to downloading a new version every so often.
Do you want to learn all of the keyboard shortcuts to your favorite Java IDE, but just don’t have time to study a cheat sheet? Are you envious of your team lead because when you peer program with them, they are able to get things done without using the mouse?
In part one of this series, we examined one potential solution that turned out to be not so good. In this post lets try to find a solution using the same design, but a better implementation.
This is going to be the first in a series of posts discussing potential ways of securing bi-directional RESTful based HTTP services. For this series we are going to make the requirements quite simple, namely, “secure” simply means the caller of the service is authorized to invoke it. Lets assume that this solution is being deployed along with a simple IP addresses restriction mechanism. Since IP address’s can easily be spoofed, this solution is the next level of defense to ensure the identity of the caller.
Was just presented with a unique (to me) requirement which is to implement a single sign on across multiple domains within the same page via a cookie. Huh? Let me elaborate, in simple terms it means that there is a base site, lets call it foo.com, and then there is a partner site, lets call it bar.com. On foo.com’s main page we want to be able to iFrame in bar.com with the credentials of the current user logged in to foo.com transparently sent over and in turn logged in to bar.com as well.
It took all of 15 minutes, and that included upgrading TinyMCE to version 3.1 as well. WordPress is one of my favorite open source packages.
How many times have you written the following code:
How many times have you written code where you have something along the lines of:
The purpose of this post is to give you a “high” level overview of Amazon’s EC2 (Elastic Compute Cloud), and how you can benefit from it. Amazon defines the EC2 as
The purpose of this post is to wrap up my thoughts on this past Java One Conference. There are both positive and not so positive thoughts in my mind right now about the conference. Rather than merely stating this fact, let me describe the details to you.
In case you haven’t noticed, this site is finally looking a bit more, dare I say, “professional”. All it took was a little bit of time, and some minor *nix commands. Since this site is based on the latest version of Wordpress (2.5.1) , it provides a lot of usefulness out of the box when dealing with the overall layout of the site, the layout of the widgets, and ease of plugin configuration. Wordpress is a brilliant piece of software.
Well folks, another year, another Java One has passed. This conference has definitely got me thinking about a lot of things, especially the future of Java “The programming language”. You must be thinking, why in the world did I add that little blurb about “The programming language”, I mean, Java is nothing but a programming language right?
Here is a list of the main topics of discussion during the Java One Keynote Address:
I installed the latest Groovy Beta, (1.6) and no doubt it feels quite faster. Everything looks good from a performance perspective.
If you are like me, and you like to use the latest and greatest software regardless of whether they are GA or not. Then you probably ran across this problem too. After migrating to Firefox 3 Beta, I found that many of the Firefox 2.x plug-ins did not work. I didn’t know this for sure, since Firefox would not even attempt to load them. There is a feature in the Firefox plug in manager that verifies each plug-in is compatible with the current running version of Firefox prior to installing it. There are some plug-ins out there updated to work with FF 3 beta, but many of them have not been updated yet. I found a workaround. Simply add the following value to your config: Here is the procedure:
I have been using Eclipse for the past 5 years. During that time, there have been projects where I have been exposed to Intellij. Recently, after a conversation with a colleague, they convinced me to give the latest and greatest Intellij a try. They bragged about the wonderful Spring integration and code inspection. So I decided to give it a try. After using it for about a month now, I must admit, I have seen the light. It took a while to get used to the different keyboard shortcuts even though Intellij has the default Eclipse key bindings available as a selection. I decided to do a clean break from Eclipse, and learn the new keys.
Today was my first day at work with the new MacBook. Going in to today, I had several concerns on my mind, but after a little bit of work, and some patience, I was able to connect to all of the essential corporate resources. Here is a break down of the concerns I faced going in, the actual issues I ran in to, and what I did to work around them.
Have you ever wanted to scan recursively through a directory to find out how much space each sub directory was taking up? Well, there is an easy way of doing this on *nix. Just run du “Disk Usage”.
Since I just received my new MacBook Pro, I am tasked with setting up my development environment. Since most of my development is Java/Java EE based, the first thing I need to do is decide on the file system layout for all of the Java artifacts. I.e., JDK, IDE’s, Open Source Packages, App Servers, etc… I also need to decide on how I will control the Java runtime environment. I.e., Run App Server under Java 5, run a build under Java 1.4, run a Java Swing app under yet a different virtual machine. Here are my thoughts on each of these:
After listening to the Maccast, I heard Adam mention this program called MarsEdit developed by Ranchero Software. He said that it was a great program that he uses quite often. So, of course, I had to give it a try. I downloaded the trial version, and within the first 10 minutes, I saw the value of it. Basically, it gives you an “inbox” view of your blog. Where each “message” corresponds to a blog entry. You “compose” entries as if they were an email, and then when you are done composing you “send” them to your blog. Maybe now I will follow my new years resolution of blogging more often.
What happens when you try to synchronize on a static method? When a static synchronized method is called, which object are we referring to? A static method does not have a notion of a this reference. It is not possible to obtain a lock on an object that does not exist.
What happens if two different object hash to the same hashcode and then are placed in a HashMap?
In Java, access to shared resources can be controlled by using synchronized methods. An instance method is declared to be a synchronized method by adding the modifier synchronized to its declaration. For example:
The basis of using ssh without typing your password is public key based authentication. You need to generate a pair of public/private keys for this.