Monday, December 31, 2012

Trip to Disneyand, Anaheim

We did a 5 day trip to Disneyland, Anaheim and Universal Studios over the winter break.

Disneyland during X'mas and New Year's eve is a wonderful, lively place to be at. Having spent 3.5 days at Disneyland and California Adventure park around the 25th, we felt we got our money's worth (and more) from the 4-day park hopper tickets. The festive atmosphere in spite of the manageable crowd was as good as going on a road trip to a National Park.

New Year's even is probably more crowded than X'mas. We did not stay to find out.

One our way back we decided to spend one evening and the next day till noon at Universal Studios, LA. Universal in LA does not have as many real rides as the one in Orlando. What they have here are mostly 3-D, virtual rides. Some of them are pretty good but we still missed the old fashioned, gravity induced roller coaster rides.

Some things that we should've done/Note to self:

  • If you are driving down from Bay Area to LA and Pacheco pass/CA-152 is blocked/crowded, just continue down CA-101 and go to I-5 via Coalinga/CA-198. It's a little longer but was desolate when we drove
  • Book via AAA and save on parking fees at Disney (offers might keep changing)
  • Book via CityPass and save on our combo Disney-Universal entry fees (check if there are black-out dates)
  • Book cheaper hotel outside Anaheim since we had a car to drive around. We cancelled and booked at Fullerton after spending a night at an expensive but dingy hotel opposite Disneyland
    • All these parks charge a parking fee
    • The hotels also charge a parking fee (!) even if you book a room
    • Hotels in Fullerton are cheaper (like the Fullerton Marriott and much nicer)
  • Hotels a little further away from Universal Studios are also cheaper
  • Use a good phone app to book hotels like Kayak or HotelTonight or the latest new app
  • Wear good shoes as there always is a lot of walking and standing in lines

Some photos:


(Disneyland and California Adventure Park)

(Over the Tejon pass)

(Pyramid Lake)

Have a wonderful new year ahead!

Friday, December 14, 2012

Starving CPUs, slow multi-dim arrays in Java, cool infrastructure & more

A short list of articles/papers that I thought were worth sharing:

CPU and Assembly:

Polyglot analytics/programming - how startups are going full speed with Redis & MongoDB for simple analytics. Of course this leaves the heavy duty, complex analytics to Hadoop and columnar data warehouses.
Really educational, large scale, infrastructure talks:
Some misc notes:
Happy holidays and a happy new year!

Friday, October 12, 2012

A short list of interesting tech articles

A short list of stuff to read, that I came across in the past few months:

 JVM related presentations:

Some of the more interesting JavaOne 2012 presentations:
A few miscellaneous articles:
Until next time!

Saturday, August 18, 2012

7 day road trip to Bryce, Zion and Grand canyons

We did a 1115.9 mile road trip to Bryce Canyon, Zion Canyon, Grand Canyon and then spent a day in Las Vegas. We were on the road for a total of 7 days and visited 3 states Nevada, Arizona, Utah.

We flew from San Francisco to Vegas, rented a car and then drove to Bryce, Zion, Glen Canyon Dam, Grand Canyon, Hoover Dam, back to Vegas and finally flew back to SFO.

Here's our trip route:

View Larger Map

Bryce Canyon, Utah:

NV-AZ-UT/Aug 2012

NV-AZ-UT/Aug 2012

NV-AZ-UT/Aug 2012

NV-AZ-UT/Aug 2012

NV-AZ-UT/Aug 2012

Zion Canyon, Utah:

NV-AZ-UT/Aug 2012

Narrows hike, Zion Canyon:

NV-AZ-UT/Aug 2012

NV-AZ-UT/Aug 2012

South Rim - Grand Canyon, Arizona:

NV-AZ-UT/Aug 2012

NV-AZ-UT/Aug 2012

NV-AZ-UT/Aug 2012

NV-AZ-UT/Aug 2012

Until next time!

Saturday, July 28, 2012

Interesting notes on user interface design

[Updated Mar 5, 2017]

I've been bookmarking these notes on UX design. Some of them are worth reading over and over. Well, ideally they should be applied but I'm a server-side engineer. So, the most I can do is identify applications of these concepts in the tools and devices I use:

Some old notes I had made earlier (also read the links in the comments) - #1, #2.

Until next time!

Wednesday, July 11, 2012

Definition: Weird - When you see Google presenters at Google IO touting Macbooks and talking about building and using Android.

Tuesday, July 10, 2012

Some books I read, mostly sci-fi and mostly average

Short stories. Some were good. Some too dry, felt like filler - meandering time travel stories with no plot.

Line War (Agent Cormac 5)
Interesting. Some intrigue. Read like the Silver Surfer meets powerful AIs. Last book in the Ian Cormac saga.

The Fifth Head of Cerberus: Three Novellas
Surreal, feverish, strange, slightly disjoint, even satisfying at first a but mildly disappointing ending.

Influence: The Psychology of Persuasion (Collins Business Essentials)
A brief distraction from Sci-Fi. I bought the book after watching his interview on Youtube. Not a bad read.

Marooned in Realtime (Peace War)
Takes post apocalyptic novel to a new level. Pretty impressive time scales, although a bit sad and disappointing in the end.

Duplicate Effort: A Retrieval Artist Novel (Retrieval Artist Novels)
Average. Beginner writer. Starts off in a mildly interesting, vintage Asimov type of setting but the writer's inexperience shows.

Courtship Rite 
Couldn't finish it. Waste of time.


Wednesday, July 04, 2012

Summer reading (if you like technology)

I've been meaning to share these links for a while now.

I spent a few days digging up a few, interesting computer science algorithms we were introduced to in school (a while ago). Back then we didn't have ubiquitous internet access nor did we have 10 years of cumulative collective knowledge via Wikipedia, blogs, articles and tangible "computer sciencey" use cases like the ones at Google, Twitter, LinkedIn to demystify them for me. During my recent wanderings on the interwebs I found these nice articles:

Folks doing interesting work experimenting with BerkleyDB and also LevelDB type of LSM stores at Yammer, VoltDB and LinkedIn.

A very detailed and thoroughly researched presentation on the state of the art in Metrics-monitoring-logging.

The Google Chrome and Android guys have been writing and presenting about the how they've been pushing browser and mobile technologies. I'm pretty sure Apple also does these things but they don't seem to talk about them openly. What impressed me was how far Web technologies have come - in terms of tooling and profiling. The sophistication is almost at par with high performance server side technologies
The confusing array of Java Web technologies requires some sorting out - Comparing JVM Web frameworks

Being a Java developer (meaning clueless about lower level, system stuff), sometimes I try to find articles about what others are doing in lower level languages, to help me stay grounded (I wish). Last month I found some on bit twiddling and other native stuff. Although I have to admit I forgot almost everything the moment I finished reading them.
Networking and latency - they go hand in hand.
The guys working on and using Lucene also have interesting things to report

I know all this has been "nice to know" or "file it for later" kind of reading. So, here's a really useful, simple Java article on handling properties and configuration files in Java using Apache Commons Configuration.

Enjoy your 4th of July holiday (for those in the US)!

Wednesday, June 06, 2012

Trip to Mt Shasta

2 weeks ago we visited Mt Shasta over the Memorial Day weekend. It was not too bad, we visited Hedge Creek Falls and McCloud Falls. We also went kayaking on Lake Siskiyou because the water was too cold to go swimming and almost didn't get to see the summit of Shasta because it was always covered in clouds. Nothing spectacular but a relaxing weekend.

On our way we visited Sundial Bridge near Redding and on our way back we spent 2 hours around Whiskey Town Lake which was a lot warmer than any of the lakes any near Shasta.

View May-2012-Memorial-Day-Trip in a larger map

Sundial Bridge, Redding:
Sundial bridge, Redding CA



Hedge Creek Falls, Dunsmuir:

McCloud Falls, McCloud:
McCloud falls



Mt Shasta, at last:
Finally, a clear view of Mt Shasta

Sunday, April 15, 2012

LSM, HMM, SQL, JVM and other TLAs (Three Letter Acronym)

Here's a bunch of articles that I read recently and were worth sharing. But before that, a minor digression:

Just JVM!

I remember having a conversation with my manager at my first job, she told me that I should stop learning Java and move to C# because Java will never survive. I just smiled politely and went and did exactly the opposite. That was almost 11 years ago. Today you see so many high end startups in Silicon Valley and in other places (including the hipsters who are not Ruby'ing) running a lot of their infrastructure on the JVM.

C# is a great language but you also need libraries and a lot of shared, community knowledge to develop good software. I think C# lacks in that area.

And then there was J2EE which was absurdly complex, but not as bad as CORBA which it replaced. That led to Spring and now Spring is complex and bloated. Just last week, my wife (she is doing her Masters in Software Engg) had to use JEE and Spring for a project submission said "The JEE 5 project was cake walk" compared to Spring. I burst out laughing saying how things have changed (again).

I've always wondered what Spring was all about. Then I watched this presentation that had "NoSpring movement" on a slide - borrowed from NoSQL movement but very apt, it brought a smile to my face.

A random and incomplete list of folks using the JVM platform for high volume data/transactions - #1, #2, #3, #4, #5, #6, #7, #8 and so on...

For a variety of reasons I love Coherence. In my mind it is the original Java NoSQL system - at least for the enterprise. Here are some recent articles I read up about Coherence:
Some stuff about SQL and it's cousin NoSQL.

If you've managed to reach this paragraph, then here's a nice treat for you - real Comp Sci stuff:
Until next time!

Saturday, March 03, 2012

Redis (and Jedis) - delightfully simple and focused NoSQL

Redis is an open source NoSQL project that I had not paid much attention to. Largely because it didn't seem very special at the time nor did it have a good persistence and paging story. Also, there is/was so much noise out there and the loudest among them being Memcached, Hadoop, Cassandra, Voldemort, Riak, MongoDB etc that it slipped my mind.

Last weekend I thought I'd give Redis another try. This time I just wanted to see Redis for what it is and not compare it with other solutions. So, as it says on the site:

Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
Seemed interesting enough to warrant another look. There are so many projects that need:
  • Simple, fast, light
  • In-memory (with optional checkpointing)
  • Fault tolerant / Sharded / Distributed
  • Shared access from many processes and machines
  • Some real data structures instead of just wimpy key-value
  • Flexible storage format - without needing crummy layers to hide/overcome limitations
  • Clean Java API
So, I downloaded the Windows port of Redis and Jedis JAR for the Java API.
  1. Unzip Redis Windows zip file 
  2. Copy the Jedis JAR file
  3. Go to the 64bit or 32bit folder and start "redis-server.exe"
  4. Write a simple Java program that uses Jedis to talk to the Redis server
  5. That's it
The size of the files, elegance and the simplicity reflect the fact that Redis and Jedis are written by individual, smart developers. With contributions of course but still...

This is what the program looks like:

This is what the output looks like:

Redis offers many of the things you'd have to look for in separate products like cache, expiry, key-value, flexible column-family store, load and data distribution, fault tolerance and more. You can also experiment with transactions, pub-sub, sharding, master-slave, persistence etc.

It cannot do super heavy data volumes (like multi-terabyte) as it's disk persistence is quite primitive, lacks complex querying and indexing features (which is a common limitation in NoSQL), multi-threading, more advanced/robust/consistent sharding/replication/distribution/expansion.

Having said that we as architects sometimes over engineer things or try to look for tools that can do everything well, which really ends up as "everything mediocre".

Some useful links:

Until next time!

Saturday, January 28, 2012

Kotlin, Unix Philosophy, Cypher and loads of tech stuff to read

There are so many JVM based languages out there and yet none of them seem to be able to take over from good old (has it really been that long) Java. From my point of view (I'm sure it's shared by many others) most of these languages like Scala, JRuby, Groovy, Gosu, Clojure, Ceylon etc feel too far away from the center. They either propose radical syntax and idioms, seem overly clever, too flexible and hence not clear/safe for the average developer, or just not performant enough.

Take Scala for example. If you pay no heed to the sensation Yammer's leaked email to TypeSafe caused and just read between the lines, there are some very real truths there about what a large population of developers, team leads, managers expect from a language before they can invest time, training, money, people and their careers into it.

Which is why, I find JetBrain's Kotlin and to some extent for non-server side Google's Dart to be promising. Neither of these languages are about revolutionary/radical new concepts or "paradigm" shifts (ahem) nor do they hide their Java roots. Dart is definitely not JVM based but neither is Kotlin planning to stick to just the JVM (LLVM plans). They are both intended to be evolutionary cleanups with some state of the art language features. Only time will tell if they succeed.

To add to our distractions we have Node.js with some appeal if you are just out of school and easily impressed or have a very specific need. Sigh...I'm already sounding like a weather beaten veteran who's seen too many "flash in the pans".

If you didn't know and are wondering what the actual JVM team has been doing in response to the demand from these new JVM-based languages in Java 7, here's a hint (JSR 292, MethodHandles, InvokeDynamic ..). Be warned, this is not for the faint of heart.

Enough of that. Now on to BloomFilters, a wonderful data structure heavily used by all NoSQL systems like Hive, Cassandra etc. Here's a very nice visualization.

I've written about Neo4J the graph database before. I really like the concept but I haven't found an excuse yet (partially because it's LGPL) to use it. They even have a nicely done graph access language, sort of like SQL for graphs called Cypher. Here's a nice demo of Neo4J, Gephi and spatial data. Makes sense for desktop use but I don't know if they have many server/enterprise grade users with many concurrent transactions.

If you are looking for some general tech reading, like while on a place, here's a nice set of essays (also a book) - The Architecture of Open Source Applications.

Speaking of Open Source, I had not read or heard about The Unix Philosophy. I like the simplicity and focus. Obviously it has had great success but it applies to other software too. Sort of like Deiter Rams ideas on design but for software.

If you've made it till here and are dying for some hard core tech, then here's some on CAS concurrency, Azul's proposed Linux kernel patch and thread affinity.

These days, any blog is incomplete without mention of BigData. So, here's some BigData reading material - slides from the Cassandra 2011 summit.


Monday, January 02, 2012

An 8 day, 3228 mile long road trip

We did an 8 day, 3228 mile long road trip from the Bay Area to Arizona, New Mexico, Nevada and back via Los Angeles. A proper road trip with just a rough idea of our route, no prior hotel bookings, a rental car and friends.

View Trip/Dec2011 in a larger map

Sunset over San Luis Reservoir

Long goods train (5 engines and a mile long) near Palm Springs, Arizona

Roosevelt lake, Arizona

Apache trail, Arizona

Apache trail, Arizona

Apache trail (22 mile dirt road), Arizona

Apache Trail, Arizona

After the 22 mile Apache trail drive

White sands missile range, New Mexico



See those people way up there?

Dolls Theater

Petrified/Fossilized tree - tree turned to stone

Painted Desert - Petrified Forest National Park, Arizona

Petrified tree stump for display

X'mas tree at The Venetian, Las Vegas

The Stratosphere, Las Vegas - the red tube at the top is also a ride!

"The" Fountain at The Bellagio, Vegas

Until next time!