The good news is that we are in Economy Plus, which is actually fairly
spacious.
Looks like this trip is really going to happen.
--Ben
The good news is that we are in Economy Plus, which is actually fairly
spacious.
Looks like this trip is really going to happen.
--Ben
Sounds like fun, no?
I'm certainly looking forward to it!
See ya'll on the other side of the pond.
--Ben
Shira just got the rush delivered Blackberry today. Only one small
detail - it was yet another empty box.
What are the odds?
--Ben
Christian Cantrell passed me this fantastically funny video, which is actually part of a bigger series:
That's the Ruby on Rails vs. Java, which absolutely nails the issue of dealing with Java. But wait, there's more -- there's Ruby on Rails vs. PHP, .Net and ColdFusion -- all strikingly accurate in their humor.
These videos caught my eye for two reasons. First, what a terrific way to spread your message about your favorite programming language. Sure, you could make a bulleted list that describes the features of your language, but this approach was so much more effective.
Second, as Kelly was mentioning today, it's amazing how powerful YouTube is. Back in the dark ages, you'd have to buy air time to get exposure like this. Sure, Oracle could do this, but could MySQL or Postgres? Now the playing field is that much more leveled - not only is the technology of Open Source as good as commercial products, but the marketing venue is there too.
Here's a tip - along with creating screencasts for your favorite Open Source project, shoot a commercial or two. What a difference it can make.
OK, so clearly Gareth was less than impressed about the potential discovery of the use of the human appendix. But I have to say, I'm actually fascinated about the discovery. Here's a snippet of the explanation:
But sometimes the flora of bacteria in the intestines die or are purged. Diseases such as cholera or amoebic dysentery would clear the gut of useful bacteria. The appendix's job is to reboot the digestive system in that case.
The appendix "acts as a good safe house for bacteria," said Duke surgery professor Bill Parker, a study co-author. Its location _ just below the normal one-way flow of food and germs in the large intestine in a sort of gut cul-de-sac -- helps support the theory, he said.
And no, I wasn't just impressed because the author used the phrase reboot the digestive system.
I think this appreciation for the appendix comes from a general appreciation of all things bacteria, no doubt caused by the fact that my Dad's a Biology professor, my mom has a Master's in Biology and my brother is getting his Ph.D. in Immunology (right Dave?). Listening to my family sit around the dinner table and talk about the marvels of bacteria makes me appreciate them in ways I never thought possible.
My dad was just explaining to me that a new born baby's intestinal track goes from having no bacteria in it, to being fully populated in just a few hours. How remarkable is that?
Perhaps I'm easily impressed?
This explains why Aaron from sales is always kicking butt - it's the open bottle of beer he has on his desk, at the ready.
It also answers my question: what the heck were you drinking when you promised _____ to the customer??
--Ben
Update: For the record, the bottle in front of Aaron is root beer. He's naturally a great salesman, he doesn't need a chemical advantage.
I was motivated by the ASUS EEE Laptop to more closely examine its bargain basement priced competitor - the One Laptop Per Child laptop.
If you've never done so, you should really check out this list of unique hardware attributes of the device. Here are some of my favorites:
The software list is fairly impressive too, offering Logo, Python and Smalltalk as built in software options. Naturally, it runs on Linux.
It seems like an impressive device, especially considering the $100 - $200 price tag. I can't recall hearing about a laptop being this thought through for truly mobile activities. It seems like no feature was examined and re-examined to find maximum performance for the buck.
There's one more feature the OLPC laptop has that the AUS EEE laptop doesn't - you can buy one. OK, that's exaggerating a bit, you can technically get one in 2 days.
I think there's only one real catch to the OLPC device. It's so well designed to its audience, that my guess is, it really is designed for children. It's not just the childish look and feel that leads to me this conclusion. Smaller details, like making the keyboard child sized, and setting up the screen to be viewable from a closer distance, all have me thinking that an adult would (rightfully) be disappointed with the device.
What we really need is a One-Laptop-Per-Geek project, that takes all the work that's been done for the OLPC, and makes the laptop adult sized. I'd tweak very little about it - just get the details right for someone a bit on the more mature side.
I really applaud the OLPC for their incredible work - they found a way to to not only meet the intense demands of their project, but found a way to do it at a reasonable price. Dell, Toshiba and even Apple could learn a thing or two from these guys.
Who knew that the Print-Screen button on your keyboard could be so useful? In Windows, the ability to capture a screen shot at the press of a button is really handy. It's great for bug reports, blog posting, sharing with clients and even doing design work (thanks to Paul Arce for teaching me this one!).
The annoying part of the print screen functionality is that usually Windows just copies the screen capture to the clipboard. This means opening up some application to save it as a file, or crop it.
But not any longer. I finally got fed up with having to start Photoshop every time I needed a screen capture, and decided to look around for a better solution.
Without looking too hard, I found Gadwin PrintScreen. Gadwin just does The Right Thing. You configure it once, and then it hides away in your system tray. I initially set it up so that hitting the Print-Screen button would store a snapshot of the current window on both the clipboard and in a PNG file.
This was a good start, but I found myself wanting to open up the images and easily crop them. Gadwin allows you to kick off a program with the newly created file. I suppose I could have connected this up with Photoshop. However, the thought of opening up Photoshop at every screenshot seemed nothing short of painful.
I decided I wanted a much lighter weight solution - so I had Gadwin kick off IrfanView (a nifty little app). Because IrfanView is so tiny, it serves as both an image viewer and a crude editor. It's more than powerful enough that I can crop and be on my way.
See, check out this example that took seconds to make:
Perhaps the next level of coolness will come when I can rig saving the screenshot to a networked server, so I automagically get a URL to the image. That would save some time on the upload side of things. One can dream, anyway.
Yesterday, my Dad gave a beautiful and moving eulogy for his mom. He was kind enough to let me archive it here. To appreciate it, you have to understand that my dad's a biology professor. It took everything he had no, doubt, to not make use of PowerPoint slides and present a pop-quiz at the end of the talk.
I am a biologist and in many
ways a religious man, and I find the two sides very compatible.
I tell my students we are prisoners
– of our senses and of our perception of time and space. Both
science and religion work to expand our limitations as we try to make
sense about ourselves – our place in the world and the purpose we
each have. Science uses a specific set of methods and has a set
of principles – it is a process to build models about the world around
us. No one has seen an atom – but we have good drawings and mathematical
models. Religion, using a different methods tries to do the same
– explore the structure in which we find ourselves.
Both Science and Judaism in
particular agree on one thing – that in the vast context of the world
we are poor insignificant creatures. For science we will be born,
live and die – all within a short time. Compared with the 4.6
billion year span of life of this planet and the myriad of creatures
that inhabit and have inhabited it – we are insignificant. And
the psalmist knows this as well:
“A mans origin is
from the dust and his destiny is back to the dust, at the risk of his
life he earns his bread; he is likened to a broken shard, withering
grass, a fading flower, a passing shade, a dissipating cloud, a blowing
wind, flying dust, and a fleeting dream.”
If this is true than where
is the meaning – “is that all there is”
Both science and Judaism have
the same answer – a profound NO. Our individual existence is
given meaning because we are the product of those that came before us
and we influence those who will come after us. For Biology
we receive genes and pass them to the next generation, and we influence,
educate, and encourage those who will follow us – even if they at
not blood relatives. For the Talmud what is important is that
we leave something after we go – have children, plant a tree, write
a book.
Our importance is that we
are a link in a chain. Even a chain of thousands of links fails
if one of them breaks.
Therefore if you wanted to
understand the importance of my mothers life, you would need to know
a little something about where she came from, and a lot how she influenced
those who remain here. And it is on this latter that I wish to
dwell.
I like to think of what she
left us in the next generation as “gifts” – things that
we could learn from and bring to our children and those around us.
1.
She was the poster-mother for marriage. She was a model supportive
wife – 65 years of marriage. She was the daughter of a less
than ideal marriage – but showed us the what marriage could be –
a life-long loving relationship. A journey through easy and hard
times, with joy and sorrow – but something to be treasured.
2.
She taught us never to be judgmental and
how to allow children to grow – She supported those she loved
– her children in whatever they did and whoever they turned out to
be. And she loved her grandchildren in the same way. The
object of parenting is to help children become independent, functional
adults, with their own lives. And this means they have to grow
up and grow away. And she let us do this. And I cannot remember
her trying to influence my choices, even when I later found out she
had reservations.
3.
She taught us what is was to be a close friend - I need to
tell you a little about Madge and Miki. These were friends she
met as a young girl, Madge in boarding school; and then Miki in grade
school. These were the “hide in the basement, and smoke cigarette
friends” that she was close to her whole life. All the many
cruises she took with my Father, all their social activities were with
these friends and their spouses. She was there for them in their
good times and bad. Their lives were entwined, and the love they
had for each other reminds us that to fully live life we have to make
strong connections to other people. We have to take chances and
open our hearts.
4.
She taught us how to adapt and learn – even when we were old –
while you might that imagine people of that age never did well with
new tricks, you would be wrong. She was not a religious woman
– hers was a different generation. Holidays were important family
time, but her coming to Rochester thrust her into new “Jewish” waters.
In the first few years I had a hard time explaining to her that the
blessings after the meal – the Bircat – were not really services
at my house. And yet with the years she not only came to expect
them, but follow in the book, and I could occasionally get glimpses
of her singing.
5.
She gave us the gift of how to be a Mother-in-Law- (from my wife)
“My mother in law was fantastic. She epitomized the saying “a
mother–in-law is to be quiet, wear beige, and keep her purse open”.
She never criticized me, she looked beautiful and she was generous.
More important, she was fun to be with. I met mom when I was 16
years old. To me, she was my mother. Moving here 9 years
ago, was a gift to me and my family. We finally had family in Rochester
with whom to celebrate holidays and I had someone to shop with and do
things with. Of course, I was finished shopping in 2 hours
and she was finished in 10 minutes. But she just waited.
When she got sick and I took care of her, it was never a hardship only
a privilege. I loved her and will miss her every day. “
And there were many other gifts:
She showed us what it meant
to volunteer – and help others – whether it was for an organization
in Chicago distributing lox-boxes or whether she made calls for the
Woman’s Center at Highland Hospital.
She
imbued us with a remarkable sense of humor and in her own way, she
could be very funny – There are many stories – but I will save them
for you if you visit while we are sitting Shiva.
She gave
her family the gift of Music – I mean Opera of course. We listened
to opera growing up – Texaco Radio Theatre – only the schmaltzy
stuff by the way. And thanks to my son David, her last days were
filled with the nightly playing of the best of Verdi and Puccini.
She showed us there is to
be Joy in Simple Things - I really shouldn’t talk about the gambling,
but it is a big part of who she was. Aside from being a tough
Mahjongg player – I mean she could leave a table with most of the
winnings – perhaps a much as a dollar and a half, she loved slot machines.
Sheri and I took my parents on their last trip to Las Vegas – and
after we spent the day seeing Boulder Dam, we knew exactly where they
would be – not resting in the room or at a show – but in front of
the same .10/.25 cent machines. She loved going with my son David
or Daughter in-law Shira to the local casinos. And it wasn’t
the money in all this, but the sharing of time with others that brought
happiness. Her playing partners, her husband at the adjacent machine,
her grandchildren as they drove. Simple activities, simple pleasures,
great joy.
The only other person who I
am sure who would be as surprised as I am about this little speech would
be my mother. This is certainly not how she, or anyone else, imagined
life’s script would be played out.
In the last three months, she
often asked “How did this happen?” As a good Biologist I tried
to explain, “there was a drug reaction and this lead to something,
which lead to something else” and she never understood. On returning
to Rochester, her Primary Physician Dr. Mary Labonoski was asked the
same question, and she gave a far better answer. She said “Harriette,
Stuff Happens”. And Mom, I guess it does, we are in no position
to understand God’s plans.
Mom, I am sorry it turned out this way – we all would have loved to spend more time with you. But you need to know that you were a great and important link in the chain that holds us all together. You have left a loving husband, 2 children, 6 grand children, 3 great grand children (and counting), and you have influenced hundreds of people in your time here on Earth. You have given us a big box with many useful and important gifts, and the world is a better place because you were here.
box. Yes, box.
The handset speaker (or software that controls it) on Shira's Blackberry Pearl just randomly stopped working the other day. Poof, suddenly she can't hear people talking on the phone.
T-mobile was nice enough to ship her a new unit for free.
Today, we arrived home and found the new unit's box, minus the phone. D'oh.
T-mobile is again being great and shipping off a new phone, no questions asked.
I guess their customer service department got points and their order fulfillment department lost them.
--Ben
We just heard beautiful eulogies from my family about grandma. We all agree - she was a remarkable woman. In so many ways she glued our family together and made us all better people for it.
We are now heading to the cemetery where we will complete the funeral. Then we will head home to do what Jews do on these types of occasions - eat.
--Ben
We just landed in Rochester for my Grandma's Funeral and was greeted by - surprise - a perfectly sunny day.
Huh, Rochester can look good. Surprising.
I won't hazard a guess as to what the symbolism of this. I'll just be appreciative.
--Ben
Update: The symbolism was explained to me. My grandma always like it warm. This is ironic of course, because Rochester, NY isn't exactly known for its tropical weather. How fitting was it, that she should be buried on an gorgeous 80 degree day sandwiched between two cloudy 68 degree days.
Today we celebrated Josh's third birthday - gosh he's cute. Pretty much everything he says and does is adorable.
I think he really enjoyed this birthday thing - cake, lots of attention and awesome presents. It's amazing how quickly he figured out the toys, learning how turn them on and off, and getting them to make the maximum amount of noise.
Given the difficult news of late, it was nice to be part of a simcha, even if it was just for a little bit.
--Ben
Today, while browsing the Linux Journal I stumbled across the not yet released ASUS EEE PC 701. The EEE is a $250 laptop which competes with the One Laptop Per Child $100 laptop. However, the EEE is also targeted to grownups (and, unfortunately, lacks a crank).
For $250, you get reasonable specs: WiFi, USB ports (to add more storage), built in audio, and most importantly, a weight of 2 lbs. The device will run Linux from the start, too.
Hopefully, either the EEE or the OLPC device will become reality. How could I avoid picking up a laptop for less than the price of a new cell phone?
The goal here is going to be the same as the new Sidekick - resist buying it until others have proved the device is useful. Resist, I say. I must resist.
Subversion is a version control system which makes tracking versions of files easy. This becomes essential when you are working with a group of people and want to make sure you are all editing the most up to date files. Subversion also allows you to get back to any previous version of a file, which means you can get to a backup file if needed.
This article assumes that a Subversion repository is setup for you, and you are expected to use it. Before we get started, you'll need a few details. They are:
The person who created the repository should be able to provide you with the above info. Get that all together, and let's go to the next step.
Good news - you only have to do this step once, then you can forget about it. The way Subversion works is that you'll have your own copy of the project (the collection of files you're interested in). Suppose you have a developer and a designer working on a project - in theory, one needs only the code files and one needs only the design files. With Subversion, both individuals would check out the entire project. If you aren't used this, it might seem like a waste of space. Trust me, it's not.
To check out the files, follow the instructions here.
Once the files are checked out, you can go to work. Any changes you make will remain local until you follow one of the steps below - so go ahead, make all the changes you want - they won't effect anyone (yet).
Subversion works by having developers go through regular cycles of picking up files from the repository, making changes, and then committing them back. The cool part is that this process isn't synchronized - developers can check out and check in files at whatever pace they want (or the team decides on).
To use Subversion you just need to master the art of checking in and out files. The first process we'll talk about is picking up files -- known as updating.
You can read about updating here.
By running a Subversion update, you are asking it to grab all the files that have changed since you last updated. Subversion will try to cleverly merge in any changes that have happened to the specific files you've worked on. If it fails, you'll end up with a conflict, and you'll need to manually sort out the mess. Regardless, Subversion will never remove or overwrite any work you've done - so it's always safe to do an update.
How often should you update? That depends - it can be anywhere from 10 times a day, to once a month. It depends on how active the project is and how quickly you want to incorporate other's changes.
Oh, and before you can commit anything to the repository you've got to be up to date. That's only fair, as your changes can't just work locally, but should work given the files in the current repository.
At some point, you're no doubt going to be ready to check in your changes back tot he repository so that others can pick them up. This is known as committing.
To do a commit, follow the instructions here.
Remember, until you commit files, your changes won't be visible to others. Also, you'll want to work out a clear set of rules when your team should commit files. Do you commit on a regular basis regardless of how working the code is? Or do you commit only after the code is 100% working and tested? Or something in between?
There's lots more useful things you can do with Subversion - like get diffs between the current files in your directory and those that have been checked in. Or find out which line of code was written by who (the so called blame feature). But, for starters, update and commit should be all you need. When you are ready, the whole story is here.
No go, develop in confidence. Know that your changes are both permanent and recallable. It's a good feeling, no?
Update: Looking for a Mac friendly solution? Check out SCPlugin. It appears to be just as easy to use as Tortoise SVN.
Today, at approximately 9:45am my Grandma, Harriette Simon, passed away. While we were surprised that she left us this morning, she's been sick for quite some time, so this wasn't completely unexpected.
Shira, myself, and my whole family are going to miss her in a major way.
I learned so much from her, from what makes a successful marriage (65 years of marriage to a Simon man - yikes!), to surviving hardships (being away from her newly married husband for years, as he was off fighting in WWII), and giving back to the community (she was volunteering at the local hospital until a few months ago). She taught me about adapting to life, regardless at what it threw at her (she mastered e-mail years ago, and was a reader of my blog to the day she passed on).
We weren't ready to lose her. But alas, we don't have a choice in the matter.
And here's the ironic part - the best person in the world to help myself, and others, to get through this difficult time, would, in fact be, My Grandma.
--Ben
Update: Thanks to David for his wonderful addition to this post:
An amazing woman, with a heart capable of loving everyone she met. Her last night, we looked at the pictures from Hawaii (we hadn't been able to read the blog for a few days), read some letters from her great-grand children, and listen to IL Travatore (a beautiful opera). Even at the end, she would tell us every day how much she loved her family, and how proud she was of all her children and grandchildren.
Grandma lived like she gambled. she thought life should be full of fun, that you should spend it with family, and that even if you lost a little bit (she loved slot machines) you could always sit down and have a nice meal with the ones you love (who doesn't love the casino buffet).
I'll miss her as a grandmother and a close friend, I can only believe that she's up with her friends (Madge in particular), having a good beer and playing at the high roller table with the big guy.
These White-handed Gibbons at the Honolulu zoo definitely had us captivated. They had some amazing swinging skills. Of course we had to come back for the video, because as soon as the camera came out, they decided to sit still and do nothing for an extended period of time, but as you can see, their performance was worth the wait.
The meaning for this tradition isn't exactly clear. It definitely
relates to getting rid of those pesky sins. Learn more here:
http://www.torah.org/features/holydays/branches.html
One thing I do know it's one heck of a stress releaver. Not to mention,
mess maker.
The snapshot is the result of our beating...
--Ben
The silence has been fairly deafening after the ratification of R6RS. What, to me, started off as a promising effort, turned into one where Scheme community was split and ended with (in my opinion) bittersweet results.
Nobody seems particularly excited about the ratification, and 35% of the electorate (some key members of the community) are downright against it.
Tonight, however, I stumbled on a project which is giving me a bit more hope - ERR5RS. And what is ERR5RS? Glad you asked:
The purpose of ERR5RS is to fill a gap between the R5RS (which was last revised in 1998 to reflect a near-consensus of the early 1990s) and the R6RS (which was ratified in 2007 by 65.7% of a consensus).
Another goal is to provide greater portability between the two incompatibly different kinds of Scheme programs that now exist. ERR5RS should make it easier for programmers to convert traditional Scheme code into R6RS libraries, and should also make it easier to convert R6RS libraries into ERR5RS code. To achieve this goal, ERR5RS should use a subset of R6RS syntax and semantics wherever possible, inventing new syntax and semantics only for essential features (such as dynamic loading of libraries into an ERR5RS top level) that were left out of the R6RS.
This seems to me to be a key move to unify a potentially splintering community. Rather than force developers and implementers to choose between R6RS, R5RS or making up their own solution, a middle ground is being proposed. This middle ground may be just enough to keep an already small community linked.
It's an effort I hope to watch closely.
I recently needed some fairly obvious functionality in ActionScript, but for the life of me, I couldn't find an obvious way to access it. So, with a sinking feeling, I went ahead and implemented my own code to solve the problem. What follows, is this code - if I've reinvented the wheel, definitely let me know. If I haven't, then hopefully I can save someone else so time.
I was working in Flash MX 2004 with a series of movie clips. These clips represented different UI windows. What I wanted to do, was to add keyboard shortcuts to these movie clips.
The obvious thing to do is to make use of Key.addListener and do something like:
Key.addListener({
onKeyUp: function() {
if(Key.getCode() == Key.UP) {
volume_mc.increase();
}
...
}
});
The problem with this code is that it will handle every Key.UP press the same way, regardless of the movie clip in focus. This is annoying - I might want Key.UP to raise the volume when I'm hovering over the volume component, and go to the next song when I'm hovering over the album graphic.
Naturally, this can be done by adding more code to the condition that checks to see if the Flash player should invoke volume_mc.increase(). But this is oh so ugly. Especially, because the different clips that want different handlers may not be centrally created. And what about modal windows? Suppose I pop-up a dialog window, the key strokes shouldn't get through to the windows below it.
My solution was to create an object called the KeyPressRouter. It allows you to register movie clips and a corresponding handler to invoke. When the user presses a key, the appropriate movie clip (meaning: visible, with the highest depth and within the bounds of _xmouse,_ymouse) will have its handler invoked. If no movie clips match this criteria, nothing happens.
A sample snippet of code might be:
// In some shared part of your code
keyRouter = new KeyPressRouter();
...
// In volume component
keyRouter.register(this, function(target) {
if(Key.getCode() == Key.UP) { target.increase(); }
if(Key.getCode() == Key.DOWN) { target.decrease(); }
});
// In modal dialog window
keyRouter.register(this, function(target) {
if(Key.getCode() == Key.UP) { target.scrollMessageUp(); }
if(Key.getCode() == Key.DOWN) { target.scrollMessageDown(); }
});
Note: in the above code, the handler takes in target, which is a convenient way to get a hold of the original movie clip that the handler was associated with.
Grab the code here: key-press-router.tar.gz. It's still very rough around the edges. But, as I said, maybe it'll save someone some time in solving this same problem.
Our kitchen at work apparently only needs two supplies: sponges and bandages. Sponges, I get, but bandages?
What are people planning? We have two first aid kits in the kitchen, did we clean them all out of bandages? What kind of hazards am I facing here that I'm not aware of?
This is spooky...
--Ben
The other day I needed to jump on AIM, but was away from my usual computers. At first I tried AIM Express, a web only version of AIM. Unfortunately, its use of plugins and related nonsense kept it from coming up on in my browser.
Good thing too, or I may never have Googled around and found MiniAIM. Weighing in at 64k, and not needing an install program, it just plain works. I was off an IM'ing in no time at all.
I quickly added it to my thumbdrive, as it passes the portable and useful tests.
We recently picked up an eStarling frame for my parents. It's a digital frame like you've no doubt seen, but with a twist.
The frame establishes a WiFi connection to a central server. The result? My brothers and I can now e-mail pictures directly to the frame. How cool is that? I love it when objects get e-mail addresses.
The server side software also allows you to hook up the frame to arbitrary RSS feeds (how slick is that?) and to upload files directly to the frame.
The remote maintenance would be especially handy if my dad wasn't so tech savvy. I love the idea of being able to just fix the frame without them having to do anything.
Come to think of it, why can't we setup computers this same way? I don't want access to the parents/grandparents/friends desktop, I want total *control* over it, and as a side effect have it show up on a monitor in my their house? Oh well, another idea for another time.
The eStarling frame was painless to setup, though it couldn't see the network initially, which was disappointing. It's also dropped the network connection at least once, which was also a serious issue. Though maybe it was a temporary glitch, as things seem stable now.
The only other issue I have is that the frame size is pretty tiny. The screen sizes appears to be like 5 1/2" wide or something like that - I'd love it if were closer to say 8x10".
All in all, the device is quite cool and just works. Now I've got to load it up with some pictures...
--Ben
Previously, I mentioned an impressive Postgres Tip list. Today I stumbled across a comparable set of tips for MySQL.
Specifically, I was looking for a way to customize the prompt of the mysql command. Here's the tip:
Changing the Mysql client prompt: (Mysql 4.0.2 and higher)
(from http://dev.mysql.com/doc/mysql/en/mysql_Commands.html)
e.g. "prompt \d\R\m>" will show the current database + millitary hour + minutes
Put in my.cnf
[mysql]
prompt="\\d\\R\\m>"
I ended up adding the following to ~/.my.cnf:
[mysql] prompt="\\u [\\d]> "
There's plenty of other useful tips, so if you are a MySQL user, check them out.
Credit for this nice find of a book goes to my Dad. He introduced me to Bill Jelen, aka Mr. Excel, the author of Guerrilla Data Analysis using Microsoft Excel.
First off, the book is ideal simply because of its weight and tone. Instead of being a 3 inch thick "bible" it's more like a readable workbook. And instead of being a dry text, it's quite motivational.
The true value of the book lies in the fact that it gets back to the basics of manipulating Excel formulas. What seem like antiquated functions, like vlookup, or index, turn out to be quite useful. And any reasonable programmer should see some valuable patterns here that can be quickly put to use.
There's also a collection of random'ish tips which are quite useful (example - the paste special function has way more uses than I imagined).
If you are a geek and use Excel, this is an ideal book. The reality is that you can leverage your programming experience at the cell formula level, without dipping into VB, or falling back on manual tweaks. This book will at the very least inspire you to this end, if not get you there.
I give the book an 8.4/10 because it was on the right track, but needed just a bit more. If the book could keep the same flavor and double it's size it would be just about perfect.
--Ben
Forget about walk in refrigeration - my mom provides live in refrigeration. 59 degrees in my parent's house, yikes!
It wouldn't be so bad, except I'm finally used to living at 80+ degrees. Getting up in the morning feels like waking up on a camp out.
I shouldn't joke too much - my mom provides terrific hospitality and lots of warm blankets.
--Ben
Here's Grandma and David from a few day ago gambling. Yes, she's remarkably sick. But, she's a Simon at heart - she's got to have a good time.
I'm 100% sure her doctors wouldn't want her eating chopped liver and kishke either, but, what the heck.
She's one heck of a trooper. She continues to confuse the doctors, as she's sick but not giving up. We are just enjoying every minute we get with her and continue to learn from her example.
--Ben
Thanks to Aunt Marilyn for snapping the photo!
If you thought my view was impressive today, check out Shira's.
No that's not a mural, that's the real deal. How's that for a snapshot of paradise?
Call me a hospital rookie, but I still stand and gape like an 8 year old when the chopper lands on the roof at the hospital. That's just too cool.
Grandma and I had a chance to talk this morning, in between her resting and my working. She taught me about Rachel Ray, and we kvetched in general.
No question about it, my grandma is one tough lady. I can only hope I got a healthy dose of her genes.
--Ben
Thanks to Nick for pointing me to the Endgadget article announcing the new Sidekick.
Oh man, do I want to get play with one of these. If they could nail the camera and battery life this time, I'd be such a happy camper. From a look around Sidekick.com, it seems as though the basics of the device have stayed the same. Why didn't they add WiFi? And what's up with this MySpace app. I thought MySpace was so last year. Still, the recipe of the Sidekick is pretty good, so I'm not too concerned they haven't added to it.
Nick also mentioned that T-mobile is now offering the Blackberry Curve. The Curve looks like it has it all - WiFi, GPS, Qwerty keyboard, etc. - so I'm going to have to play with it thoroughly before I settle on the Sidekick.
My mantra for this next cell purchase will be: Test, Test, Test. If I keep saying that enough, maybe I'll actually do it.
Sure, antibiotics and other modern medical offerings are nice and all. But really, what medical issue can't be solved with a shot of whiskey among family?
--Ben
If you are even a remotely a Star Wars wars fan, the Family Guy episode is an absolute must see.
One day we'll have to explain to our kids that back in the dark ages, if you wanted to watch something impressive on TV, you had to actually watch the show, on, uh, TV. Our kids will just be getting the best parts from YouTube.
Here we all are - hanging out in Grandma's hospital room. We are all pretending to work, though really we are just schmoozing.
Note Grandpa is only pretending to sleep - really he's contemplating the problems of the universe.
--Ben
Except, on the last box I realized that the numbers didn't fit and
somewhere along the lines I totally hosed up the puzzle.
Any chance I can hire Carl Rove and the rest of the Bush team to spin
this for me?
Thankfully, I stayed the course and didn't cut and run.
--Ben
One day I'm going to rig up an Edit Post facility for moblogging with
Blogger.
I think I'd do it by sending e-mail with a particular ID/keyword to swap
posts.
This append only approach only works so well...
--Ben
Oy.
It's off to go be with family during this difficult time.
--Ben
Yesterday was the first time I tried using them while mowing the lawn.
Surprisingly, the podcast I was listening came through loud and clear.
I could still hear the law mower and other ambient noise, which I think
was a good thing. In the past when I've tried mowing the lawn with a
pair of earbud headphones on, all I've heard was engine noise.
The ER-6's have a form factor which is basically that of ear plugs.
This makes them a bit invasive, as you cram them deep into your ears.
However, they are effective, and once you get used to their fit, are
comfortable (considering they are earbuds and all).
Today's podcast was a recording of a talk by Barry Flicker on the topic
of project managment
(http://itc.conversationsnetwork.org/shows/detail1721.html). Hearing
him try to convince agile tech companies that project managment
formalization isn't evil was impressive. Though I'm not done yet with
the presentation, so I'm not sure if it has a happy ending.
--Ben
Here's Greg at the Torpedo Factory with a paper giraffe. The resemblance is uncanny, no?
Shira, Greg and I had a fun time hanging out in Old Town Alexandria. The weather was beyond perfect.
--Ben
Just because there's a big gate standing in the way, doesn't mean there's much security.
Case in point - by turning the handle with a bit more force than usual, I was able to get through this gate.
There's a security lesson here somewhere.
--Ben
Tonight I really wished I had the PHP equivalent of Java's System.getCurrentTimeMillis() or JavaScript's getTime(). I didn't have one, so I whipped one up using microtime. Here it is:
// return our current unix time in millis
function current_millis() {
list($usec, $sec) = explode(" ", microtime());
return round(((float)$usec + (float)$sec) * 1000);
}
Here's the classic usage:
$started = current_millis(); someQuestiontionableOperation(); echo "We took: " . (current_millis() - $started) . " millis to run";
Enjoy!
Update: Here's a camera phone shot of the sanctuary before Yom Kippur started. It's taken from the Bimah. It's hard to tell, but that's about 400ish seats in our little shul - all of which were reserved ahead of time (go us!).
It's not kosher to take photos on Yom Kippur (or Shabbat for that matter), so I could only snap this one because I got to the temple a tad bit (OK, quite a bit) on the early side.
If you celebrated Yom Kippur, I hope you had an easy fast and a meaningful day.
It's amazing - I can't go 4 hours between meals at work, yet I found it fairly easy to go 25 hours without food or water today. Strange.