WANTED: Image Website Tool Not Suck

Per my 13-years old daughter’s request I’m searching for some tools to build her own image website, so she can publish and manage all her drawings and photos. To my surprise after all these years there are still very few such tools that not sucks.

Gallery, Piwigo, Zenphoto, E2 Photo Gallery, etc. They are old, powerful and actively developed. But all of them are so last-century. They are ancient content manage systems and just not work for modern creative artists, like my daughter of cause. Here is my requirements:

  • Free and open source (optional)
  • Easy to deploy to shared hosting service and/or VPS
  • Easy-to-use uploading tool which supports single and multiple files
  • Support imagesets (“albums”)
  • Support tags
  • Manageable commenting and rating system (built-in or integration with Disqus)
  • Support direct hyperlinks to the images (can be toggled on/off per album based)
  • Sharing button for Twitter and other social networks
  • Automatically EXIF/IPTC handling
  • Thumbnail view with AJAX based in-place zooming and editing (for meta info)
  • Cool built-in themes (at lease 2 for dark and light backgrounds), simple but working customizing system
  • Support iPhone and iPad-size mobile devices
  • Support i18n
  • Easy to backup/restore or export/import
  • Acceptable performance for hundreds of images

read more

A Brief Guide of (RESTful) SOA, Part I

Many say that XML SOAP WS-\* suck and SOA is over or becoming profit tool for big consultant companies. But I would say: SOA is not evil, IBM is. Look at these principles of SOA:

  • reuse, granularity, modularity, composability, componentization and interoperability.
  • standards-compliance (both common and industry-specific).
  • services identification and categorization, provisioning and delivery, and monitoring and tracking.
Wikipedia Service-oriented architecture

All these are perfect software architectural styles(well, except those words your spell checker complains), our best dream. These can’t be wrong. The problem is in the implementations. Fortunately the rises of RESTful services on the open web prove that the spirit of SOA can really matters. Maybe one day similar architecture and implementation will eventually change enterprise computing in return.

I always believe the service-oriented architecture will be the future of massive distributed software system. And RESTful services will replace web sites and eventually become the main body of the Internet. So I often think about how to help approaching it. I know that lots of people want to implement RESTful style services in their system (though they may not know what for). What they need is a brief and clean(maybe not extremely accurate and complete) guideline when practicing RESTful services. It can help to make things right and avoid traps such as using HTTP request as RPC protocol - it can be used as RPC protocol but it’s not RESTful and cannot provide key benefits which REST want to apply.

read more

Soul Link

Apple AppStore’s biggest news this week is that, FiftyThree’s Paper became the iPad App of the Week in just 2 days. I think that it’s far from coincidence.

I tried Paper for several hours. It offers no unique features. It’s much less powerful than AutoDesk’s SketchBook Pro, a full-featured paint tool especially designed for the new iPad’s Retina Display which was showed off on Apple’s event. But I can predict that Paper will be much more popular. So why is it so special?

Watch their official trailer and you can get some clues. The trailer spreads several important ideas: 1. Paper can be used anytime anywhere whenever people want to use pen and paper. 2. The User, the iPad, Paper and the stylus work together as a whole. 3. All these are all about the user’s lifestyle, becoming part to it.

So what do you think while watching the video? Desire to light up your iPad at once and sketch something? Think about buying one Wacom Stylus for your iPad? Or those amazing ads for the original iPad? My answer is: all of them. And one more ~~thing~~ person, Don Draper.

read more

Go for Android

Go is the language from Google and Android is the mobile OS from Google. The bond between them are just born with. So there should be no surprise that we can use Go to write Android programs, though some important restricts for now:

  • There is no Android SDK for Go, so no system API nor GUI for Go program on Android.
  • Go doesn’t support JNI for now. So Go programs have to be compiled as separate executables, wrapped as assets in apk and called within Java based apps.
  • Maybe cross-compiling is really hard. We cannot build Android applications which use Cgo(C bridge for Go) on our desktop computer for now, as shown below.

But it’s not just a toy because of the following advantages:

  • Go is fast and all C programmers just like it.
  • Go language is bundled with high quality libraries, especially suitable for special tasks.
  • Go is from Google! It does have a future! Well, at least let’s hope so.

Go is a very young language, thus there’s few guides or tutorials out there. But it also makes earlier investion provide more return. My friend and colleague @rarnu also likes the idea of writing Android program using Go and has written a short tutorial. I’d like to rewrite it here and fill all lost details which he was too lazy to include.

read more

Introducing RestKit

RestKit is an amazing Objective-C framework for iOS that aims to make interacting with RESTful web services simple, fast and fun. As said on its homepage:

It combines a clean, simple HTTP request/response API with a powerful object mapping system that reduces the amount of code you need to write to get stuff done.

read more