Thursday, March 5

Web Accessibility principles

I was going through my juniors work on Ruby on Rails. I was helping them to build some interesting web applications. And then the discussions lead to design, usability and accessibility of the application. As they don't have enough exposure on web applications, I quoted few articles and books to say UI is as important as functionality. Of which, I highlighted the "Ten Principles for Web Accessibility" from "Pragmatic Design & Accessible Web Sites" by Jeremy J. Sydik.
  1. Avoid making assumptions about the the physical, mental, and sensory abilities of your users whenever possible.
  2. Your users’ technologies are capable of sending and receiving text.
    That’s about all you’ll ever be able to assume.
  3. Users’ time and technology belong to them, not to us. You should
    never take control of either without a really good reason.
  4. Provide good text alternatives for any non-text content.
  5. Use widely available technologies to reach your audience.
  6. Use clear language to communicate your message.
  7. Make your sites usable, searchable, and navigable.
  8. Design your content for semantic meaning and maintain separation between content and presentation.
  9. Progressively enhance your basic content by adding extra features. Allow it to degrade gracefully for users who can’t or don’t wish to use them.
  10. As you encounter new web technologies, apply these same principles when making them accessible.

Link to Book:
http://www.pragprog.com/titles/jsaccess/design-accessible-web-sites

Monday, March 2

"memcached" "libmemcached" gem installation for rails app

It's been so hectic with the installations on ubuntu.

sudo apt-get install memcached

then I realised that "libmemcached" also needed. Got the latest tar http://tangent.org/552/libmemcached.html and installed.

then went on to install the "memcached" gem.

Unfortunately, this did not go as expected but raised lots of issues!

rlibmemcached_wrap.c: In function ‘_wrap_MemcachedSt_next_distribution_rebuild_set’:
rlibmemcached_wrap.c:5835: error: ‘struct memcached_st’ has no member named ‘next_distribution_rebuild’
rlibmemcached_wrap.c: In function ‘_wrap_MemcachedSt_next_distribution_rebuild_get’:
rlibmemcached_wrap.c:5858: error: ‘struct memcached_st’ has no member named ‘next_distribution_rebuild’
rlibmemcached_wrap.c: In function ‘Init_rlibmemcached’:
rlibmemcached_wrap.c:11380: error: ‘MEMCACHED_SERVER_MARKED_DEAD’ undeclared (first use in this function)
rlibmemcached_wrap.c:11380: error: (Each undeclared identifier is reported only once
rlibmemcached_wrap.c:11380: error: for each function it appears in.)
rlibmemcached_wrap.c:11411: error: ‘MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS’ undeclared (first use in this function)
make: *** [rlibmemcached_wrap.o] Error 1

After googling across and friends suggestions, could solve the problem. The problem seems to be with the latest versions of the libmemcached and also gem memcached. I cleaned up the mess and repeated the trial with the following combination.

RubyInline(3.8.1);
memcache-client (1.6.3);
memcached (0.13);
libmemcached (0.25.14);

and things are back to normal :)
Hope this would save somebody's time!

References:

http://rubyforge.org/forum/forum.php?thread_id=31257&forum_id=20894
http://blog.evanweaver.com/articles/2009/01/24/secret-codes/