yes, all those UM students and faculty who turned away from CTools to watch the Obama inauguration. Never noticed that blip for the 43rd president, but then again it is probably due to the fact that CTools is pervasive enough now that we can use it instead of Nielsen ratings. Or maybe not.
random walk through fields of musings
Tuesday, January 20, 2009
name the reason for that blip
yes, all those UM students and faculty who turned away from CTools to watch the Obama inauguration. Never noticed that blip for the 43rd president, but then again it is probably due to the fact that CTools is pervasive enough now that we can use it instead of Nielsen ratings. Or maybe not.
Wednesday, December 24, 2008
photos side-by-side aka montages
#!/usr/bin/perl
use strict;
local($|) = 1;
use Image::Magick;
my(@file) = @ARGV;
my($rv);
my($image)=Image::Magick->new;
$rv = $image->Read(@file);
warn "$rv" if $rv;
my($montage) = $image->Montage(
tile=>'2x1',
geometry=>'1704x2272',
mattecolor=>'#FFFFFF', #does not take?
frame=>'10',
);
$rv = $montage->Write('mp.jpg');
warn "$rv" if "$rv";
If you have ImageMagick installed but not the perl bindings, you can do this on the command line too.
Tuesday, December 23, 2008
terminal reset and why enter doesn't return
reset
command will fix things, but sometimes it doesn't help. Of course I can't find the reference now, but some site suggested entering ^jreset^j
(ctrl-j reset ctrl-j) repeatedly till it works. Incredulous, I tried it, and indeed it does work!Monday, December 15, 2008
searching UMOD with JNDI
private boolean isMember(String grp, String un) throws Exception {
boolean isMem = false;
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://ldap.itd.umich.edu:389/dc=umich,dc=edu");
try {
javax.naming.directory.DirContext ctx = new javax.naming.directory.InitialDirContext(env);
String[] attrIDs = {"member"};
javax.naming.directory.SearchControls ctls = new javax.naming.directory.SearchControls();
String filter = "(&(cn=" + grp + ") (objectclass=rfc822MailGroup))";
ctls.setReturningAttributes(attrIDs);
ctls.setReturningObjFlag(true);
ctls.setSearchScope(javax.naming.directory.SearchControls.SUBTREE_SCOPE);
String searchBase = "ou=Groups";
javax.naming.NamingEnumeration s = ctx.search(searchBase, filter, ctls);
String positiveMatch = "uid=" + un + ",";
while (s.hasMore()) {
javax.naming.directory.SearchResult sr = (javax.naming.directory.SearchResult)s.next();
javax.naming.NamingEnumeration e = (sr.getAttributes()).getAll();
while (e.hasMoreElements()){
javax.naming.directory.Attribute attr = (javax.naming.directory.Attribute) e.nextElement();
javax.naming.NamingEnumeration a = attr.getAll();
while (a.hasMoreElements()){
String val = (String) a.nextElement();
if(val.indexOf(positiveMatch) != -1){
isMem = true;
}
}
a.close();
}
e.close();
}
s.close();
ctx.close();
return isMem;
} catch (javax.naming.NamingException e) {
System.err.println("Problem getting attribute:" + e);
return false;
}
}
There must be a better way of formatting code in HTML without JS.
Sunday, September 7, 2008
my second cohousing head cooking trial
by aditya
This will be a non-vegetarian North Indian complement to my mother's vegetarian South Indian meal.
Vegetarian option: sorry, there will be no vege entree (too much work
on the carne entree for this occasional head cook), though the sides
will be vege
Carnivore option: grilled, moderately spicy tandoori murgh boti kebab
(skewers of chicken thigh/breast pieces) Rice or Naan depending on the
number of people signed up.
Kid option: less spicy chicken kebabs
Side Dish: saag aloo (sauteed mixed greens and potatoes North Indian
style).
Salad: diced tomato, cucumber, onion with cumin, pepper and lime/lemon
dressing on the side
Dessert: fruit in season
Organic: where possible
Dairy: easy to avoid
Wheat/Gluten: easy to avoid
worked out to $5.84 per adult (scaled appropriately for teens and big kids) there were 30 adults and 10 kids in total.



Monday, May 12, 2008
Saturday, February 2, 2008
reminder
When the Michigan winter is harsh, the wind bitter, my commute to work tedious and I don't get enough exercise or sleep or think about dried, sauteed green beans, I reflexively tell myself that this is stupid, illogical and pointless, and that we should move to a sane climate (Berkeley) and live without a car (Berkeley), be able to exercise outdoors year-round (Berkeley) without watching for icy patches, live in walking and biking distance of work, restaurants, Berkeley Bowl and a short BART ride away from Shalimar. I've served my time in Michigan, braving the weather and isolation from downtown, dependence on a car and far from the hill.
Yesterday, one of our neighbors said her husband wants her to move to California, but that though it would be nice, "it wouldn't be cohousing". I should have said, "I feel the same way", and tell her I've wanted to move Great Oak many times. In those moments I want to escape, escape the tedium of the weather, the petty indiginities of putting up with this or that less-than-considerate act, I ultimately get to this:
- People at Great Oak, and probably on the whole who want to live
in Cohousing, are so reasonable, so much more so than the world at large. - I want to do more and depend more on my neighbors,
because I like them and I'd much rather spend time with them than
living isolated in my home, as I might in Berkeley - Living in community, especially this community is wonderful;
most of the time we take it for granted, but it is so much better
than not living in community.
Blog Archive
travels
- Addis Ababa, Ethiopia
- Mombasa, Kenya
- Victoria Falls, Zambia
- Siem Reap, Cambodia
- Bangalore, India
- Billund, Denmark
- Cambridge, United Kingdom
- Paris, France
- Modena, Italy
- Berkeley, CA, USA
- Vancouver, Canada
- Rio de Janeiro, Brazil
- Popayan, Colombia
- View my profile
- Create your own travel map or travel blog
- Travel Info at TripAdvisor