Monday, November 29, 2010

My Phusion Passenger Checklist


I spent some considerable time trying to get the "hello world" rails app (the one you get when you run rails new myapp) to run under Apache + Passenger the same way it does under rails server.

I tried both root and sub URI setup and was basically struggling with variations of the following three errors:

  • Apache would serve static content out of the document root and then send 404 for the default /rails/info/properties route (Apache
    s 404, not RoR's 404)
  • The Passenger would engage but then fail to start the rails app
  • The Passenger engages and rails app starts but the default /rails/info/properties would report a "No route" error even for local request (telnet from within the SSH)

Without going into very much details (drop me a line if you're interested and I will elaborate) here are the things that you should check:

  • Permissions for the folder the document root is pointing out. It has got to be accessible and executable by the Apache's user
  • Have the mod_rewrite loaded. The default Apache installation that you get with "sudo apt-get install apache2" doesn't have it and the Passenger's doc (at least the pieces I skimmed through) doesn't explicitly tells you to have it on.
  • The default /rails/info/properties controller works for local requests only and only in the development environment. Passenger runs your rails app in production environment by default. So make sure to have the config.consider_all_requests_local set to true and also use the RailsEnv development directive in the Virtual Host configuration
  • You don't need the config.ru in your application root. Passenger might treat your app as a Rack app and it's not. Not sure if this one helped me but I googled it up before I figured I was missing the rewrite mode so I followed the advise

Right now both built-in rails server and the kosher Apache show exactly the same result and render the well known "You're riding Ruby on Rails" including the little environment details AJAX piece.

--

I would have been proud if I figured it all in "no time" as the documentation suggested :)

Sunday, November 28, 2010

Continuations


Today in the morning I made potato pancakes for breakfast. My family loves it and I usually make more than we together can eat so we have some leftovers as snack.

I must have made a little more than usual today and there was something left when in the afternoon we went out to finish our holiday shopping. Great, we packed it to-go so that kids have something to eat on the way.

My little daughter took one out of the bag and... fall asleep halfway through it. It actually was her time to take a nap anyway. She slept for good forty minutes as we drove around making our scheduled stops. All this time she kept the pancake safe in her hand.

We got back home and she woke up the very minute I turned off the engine. Looked at me. Smiled. Looked down to her hand. Saw the pancake. And she just resumed eating it as if nothing happened.

I couldn't help it and smiled with a very clear thought - continuation. A great example of one in our real life :)

--

Just about fifteen minutes before, at our last stop, I was catching up on my RSS subscriptions watching Alice asleep while another half of my family was finishing the grocery gshopping list. It's what I was reading that fifteen minutes later made me think continuation and not "how cute".

The latest installment from Eric Lippert about async in the upcoming C#5.0. Even if you don't program in C# or work on .NET platform (I do neither) it's absolutely worth it.

Read it and tell me if you still think I should have first noticed how cute that move was :)

Tuesday, November 16, 2010

Nice weather up here


Online at 30,000 feet is nothing special these days though I still find it amazing. For some $10 you can get a cross country flight long WiFi access. If only the coach cabin had a little more leg room for a full size laptop experience to be a pleasure and not a struggle. Diverting to iPad might be great for reading and movies and emails but if you need to work you're still stuck with a laptop. My usual in-flight setup includes a laptop to catch up on emails and do some work, a Kindle to read a book, an iPhone to listen to music and catch up on pre-cached RSS feeds, and some printouts to read during takeoff and landing (apparently, they let you use WiFi past 3,000 feet but require no electronic device on during take off and landing).

It's a nice weather up here:



Tuesday, October 19, 2010

My first question on stackoverflow


Here it is:
http://stackoverflow.com/questions/3965331/weird-behavior-around-same-erasure-compilation-error


Playing with the code on the edge of compile and runtime errors is fascinating. Compilers are software components and may have defects and deficiencies. Language specs may have wholes and ambiguities too. But these are thoroughly tested in labs and then applied daily by hundreds of thousands (if not millions) of programmers so they must be almost perfectly clean. Almost. But still not perfect.

How far from this "still not perfect" is the software you write?

Wednesday, September 29, 2010

VirtualBox vs. Virtual PC as a host for Ubuntu


Having worked with Ubuntu on Virtual PC for a little while I gave it a test inside a VirtualBox. A waaaaaaay better. Squeezing a Linux to run in a Windows virtualization host designed to only accept Windows guests might have been fun in and of itself, but using it there is not necessarily the experience you would enjoy.

VirtualBox over Virtual PC as a host for Ubuntu:
  • No hassle installation. Just point the CD drive to the Ubuntu installation ISO and enjoy the ride. No tweaking with the VGA loading modes and GRUB.
  • Out of the box networking with the host. No need to manually install loopback adapters as it comes with a network "device" to support it
  • No-capture mouse integration. Virtual PC has a hot key to release a mouse pointer to the host but it conflicts with my Intel video. When I do Ctrl+Alt+Left my screen turns 90 degree. Not fun. VirtualBox with guest additions captures your mouse when it's inside a guest OS window and releases it once you past the window's border. Natural. The only thing that I liked better about VirtualPC here is that it seems to propagate Alt+Tab to the host. So basically when you're in a guest Ubuntu window pressing Alt+Tab brings up the familiar "where to" selector. In VirtualBox you have to start with the "host" key.
  • Visually VirtualBox has a nicer response from the Ubuntu guest GUI compared to Virtual PC. At least no hiccups. Ubuntu in Virtual PC ran ok until I hooked it up with the host over a loopback adapter. That was when it became noticeably slow.
  • Audio support. I don't need it in a guest system. I actually don't need a desktop Ubuntu but it was nice to hear what Ubuntu plays when it boots up :)

There's got to be more. Unlike Virtual PC VirtualBox officially supports Ubuntu and many other guest OSes.

Friday, September 24, 2010

Face of the web


Yesterday I was servicing my car at a dealership nearby. It's a place with a nice and roomy waiting area that has a few large wall mounted plasma TV, coffee, free Wi-Fi, and even a few desktops for those who forgot their laptops home or don't carry them around whenever they go.

I got my coffee and on my way back to my laptop I looked at what was up on a screen of the two guest monitors. Nobody was there doing anything as most people either have their internet with them or don't bother and just watch big screen TV.

What do you think was up on two screens?

It was not a Windows desktop. Not a browser with a dealership web page.

It was Facebook login page. A new face of the web, I believe. A thing that a regular person would most likely do online if they're stuck waiting for their car serviced.

Ubuntu in VPC talks TCP/IP with the host


As of now Ubuntu not only runs as a guest OS in Windows Virtual PC but also has a TCP/IP with the host.

Keyword: loopback adapter. Apparently you can install a piece of "hardware" (that is, of course, a software) that would look like an ethernet device with an active connection on it. Once installed, the host OS will give it an IP that you can look up in ipconfig. Use this new "hardware" as a network adapter for your VPC, boot Ubuntu, assign its network device the IP address from the same network mask and use the host's IP as a gateway, reboot Ubuntu.

I got help from here, here, here, and here.

--

The only thing I noticed so far is that Ubuntu-in-a-VPC-window is slow. It may be the GUI rendering (so far I am playing with the desktop version), it may be the host laptop (oops), it may be the VPC environment itself. We'll see. There's always an option to only run terminal, try VirtualBox, or try another host machine :)

Thursday, September 23, 2010

Ubuntu 10.04.1 on Virtual PC


I am writing this post from my regular Windows 7 while watching Ubuntu running in a separate window as a guest OS inside a Windows Virtual PC.

Microsoft does not officially support anything but Windows XP+ as a guest OS but some of its well known employees tell the world how to work around it. My first attempt was not successful and fresh installed Ubuntu would not start. I scaled back to the original instruction on Installing Ubuntu on Windows Virtual PC that Scott referred to in his post and it worked. Either I did not do something right the first time, or it's not exactly predictable for Ubuntu to install correctly on Virtual PC, or it was the network device that I first time mapped to a physical card (as was suggested by Scott) and the second time left in a default "Internal Network" state, or maybe it was the memory (I only let the VM see 1GB of RAM first time and then sacrificed one more just in case Ubuntu doesn't like greedy users).

I powered it down and brought back up two times in a row just to make sure it was not a random accident. Looks like it wasn't. It's running now.

Update [09/24 00:15]: it does not only work, it now talks TCP/IP with the host. Tomorrow it should sing "Hello, World!".

--

If reading this you wonder why I needed it in the first place I can try to elaborate just a little bit. For the last few months I felt like missing something. That itchy feeling was with me all the time, but as much as it was irritating and annoying it was distant and vague. Only recently I figured what it was and the discovery surprised me quite a little. Apparently, all this time I missed working with the code, working with the code hands on, doing something very real myself, doing something not only real but also meaningful, something worth my energy put into it. Something I haven't done before.

You know how they say in sales commercials: "There has never been a better time".

Over the last few years I collected a few ideas and I finally felt like giving one of them a try. And to spice it up I want it done on Linux, CouchDB, JavaScript, and no backend per se. And if I end up needing backend it will be RoR or node.js (meaning Geddyor Express) or whatever.

I needed Ubuntu to start hacking. I should not have waited. Whatever it is you would rather be doing instead or on top of what you do you should not wait either.

Thursday, September 09, 2010

Type erasure does not erase all of it


Last week I was reading the most recent installment of Spring framework reference documentation and one particular thing surprised me, if not to say more. Here it is with my annotations:


In Java 5 and later, you can use strongly typed collections { sure } [...] If you are using Spring to dependency-inject a strongly-typed Collection into a bean, you can take advantage of Spring's type-conversion support such that the elements of your strongly-typed Collection instances are converted to the appropriate type { something rings a bell but I am not sure... } prior to being added to the Collection.


public class Foo {

private Map<String, Float> accounts;

public void setAccounts(Map<String, Float> accounts) {
this.accounts = accounts;
}
}
<beans>
<bean id="foo" class="x.y.Foo">
<property name="accounts">
<map>
<entry key="one" value="9.99"/>
<entry key="two" value="2.75"/>
<entry key="six" value="3.99"/>
</map>
</property>
</bean>
</beans>


When the accounts property of the foo bean is prepared for injection, the generics information about the element type of the strongly-typed Map is available by reflection { really? I thought no generic info is available at run time. That's what type erasure is about, isn't it? }. Thus Spring's type conversion infrastructure recognizes the various value elements as being of type Float, and the string values [...] are converted into an actual Float type { something is not right. Guys from springsource are not likely to make false statements of this magnitude, or are they? }


I never really looked into all new stuff that Generics brought along with them into the language. And I missed a small but apparently important portion of what has been added to the Java reflection classes.

Here's a short summary at stackoverflow that basically sums up what you can get via reflection. It's not like you can get anything, the exact type of the object at hand has still been erased and instance of ArrayList is still just an instance of an ArrayList. But something is still there :)

Two more good readings on the subject:


Monday, August 30, 2010

Java concurrency is unsafe


Have you ever wondered how stuff in java.util.concurrent works?

I know I am late. It was in early 2000 (if not before that) when Doug Lea had published his Concurrent Programming in Java and had described what later became JSR 166 and then finally part of JDK 1.5 in 2004. Still better late than never.

I actually wanted to find out just a few things. I wondered how they provided the full semantic of happens-before as it works in volatile and synchronized but on the API level. I wondered if I would still find the volatile and synchronized and wait/notify buried down in the implementation details or would there be something else.

I did not look into the original Doug Lea's source code but I what I found in the latest JDK implementation made me smile.

They're using sun.misc.Unsafe to do the atomic changes and suspend enqueued threads (it's called parking). The sun.misc.Unsafe is native all over the place and, as you can tell from its name, is considered unsafe. It's not really Java per se.

Do you still think Java concurrency is safe? :)

Friday, August 27, 2010

Done. It's Mitchell.


It feels like I have waited for years and now I don't know why it took me so long.

I used to play guitar when I was in high school and I liked it a lot. I would spend all my free time months in a row just learning how to play and then practicing. I recall taking a series of lessons from a professional teacher when I was fourteen. And then we would gather together with my friends and play, and play, and play.

It then faded away. Job, family, kids - all that changed priorities and I don't remember at what point I left my guitar behind. I have to admit: I never had a good quality instrument that I would really feel connected to so that must have added to the equation too.

All in all, I didn't own a guitar for what feels like ten years. Though every time an acoustic track would play on a radio I would play along in my head if I knew how to or would try to imagine how I would do it.

It came down on me while I was on the road traveling for business. Last month I got to visit 12 different cities, spent 5 nights on a train, another 13 in different hotels, flew 10 segments, delivered close to 80 hours of training and seminar content. It was one kind of a trip... I can't tell at what point I decided that the first thing I will do when I am back will be buying a guitar - but I do remember having that thought so deep down I knew I will just do it.

And I did. First I spent some time online and just read about what's available. I knew there would be tons of choices so I wanted to lock down a price range. And then I went to a local guitar store to try out some and buy one.

When I explained what I was looking for they guy immediately gave me Mitchel MD100S as it was the only one with a solid top in my price range. I liked it a lot but I knew I had to compare it with others.

Fender DG 60 sounded a little deeper, seemed to have had better strings installed by default, but played noticeably harder.

Jasmine by Takamine was almost twice as cheap as the Mitchel but sounded very comparable (at least for my absolutely not professional ear). I might have considered buying this one if I haven't seen enough negative reviews on Amazon before. It played well, it sounded good, didn't feel as nice in hands but I would not really care if only I did not have an opinion about this particular one upfront.

And then I also played to Yamaha. The FG700S and a black color version of F335. 15 years ago I would die for a black color guitar :) But not this time. Both Yamaha sounded good and played well but were not as good looking as Mitchel.

First impression is hard to beat. Especially when it's a good one.

Done. It's Mitchel.

Sunday, July 11, 2010

5 a.m. in the wild


I never knew I would be glad I had jet lag. If not jetlagged, it's very unlikely I would have woken up early enough to build up the energy for a 5 a.m. photo session in the wild. I would have just not known it was worth it.

Last night I woke up around half past one (yea, that is early enough), spent next three hours reading, and when it was finally morning I just went for a walk:



And much more here: 5 a.m. in the wild

Saturday, July 03, 2010

All set and good to go


I am all set and good to go.

Early next week I fly overseas and will spend the entire month traveling the Eastern Europe.

I've got lots of places to stop by: Kiev, Minsk, Moscow, Saratov, Ryazan, Lviv, Kharkiv, St. Pete, Samara, Grodno, Brest, Gomel, Mogilev, Vitebsk.

Can't promise a travel journal but you sure can follow me on twitter, here on this blog, or here.

Monday, June 07, 2010

666


Do you run antivirus on each download you make off the internet? I sometimes do even though 99% I download from the sources I trust.

This one made me think twice :)




I remembered how once I was reviewing the invoice for one of the accounts I had been responsible for at the time. It was a portfolio of four projects with two quite sizable and two rather small, satellite work. Hours reported by the team of one of the smaller one totaled to 666 for the period. I even sent them an email about their "devil" work :)

And guess what, the guy in charge of the relationship with the client asked us to reduce it by one hour. "Just in case", he said.

It's good people don't hesitate to say "happy birthday" to me, it's on the 13th.

Sunday, June 06, 2010

Wednesday, June 02, 2010

Speaking in public (and what kids do better than many adults)


Speaking in public is not easy. Even when you have done it for many times it still takes time and energy to prepare and a courage to walk on stage.

I have recently learned that writing for public can be as challenging. In some way it has proven to be even more challenging as the effect lasts longer.

We (a very small team and I) have recently published an online newspaper in the company I work for. It all started with an idea to do a newsletter. We wanted to start a regular process of news sharing in multiple angles (categories if you will) of our company's life and have it all in one place. Very soon we figured we lacked context, a solid information foundation to lay the newsletter onto. Many people would just skip it and don't pay attention as nothing would resonate well enough. So we needed to build a foundation first and that's how we came up with the idea of a larger Information Portal. "That's big", we thought and we knew we would not go "live" with it any time soon (and it's not because of technology challenge, the content challenge would be the killer). So that's how we ended up doing a step in between - bigger than a newsletter but much smaller than the yet-to-be Information Portal. The most important - it's out there. I hope we managed to lay down that foundation.

How was is it like speaking in public? It was our own personal project from start to finish. From the time the idea sparked to the time we signaled our CEO we are ready. We had to do many different things on our own(including engaging company management, and, of course, writing, coding, carefully selecting and then listening to critics of small preview groups, writing again). Letting it go public felt almost like exposing yourself in a way very similar to going on stage to deliver a speech. Almost. With a few small caveats.

Our company is 5,000+ and while not all will follow a link our CEO invited them to visit, a good half will. And it's there to stay for others to catch up. Quite an audience.

And it's there for people to comment on and provide their feedback so we can do a next round better. The speech delivered and is now in a way alive, there for the public to listen to and react, there for them to come back to and react again, there for them to notice all small defects and inconsistencies, there for them to be tough about it. I know who to listen to and I know that everyone is almost always wrong though none of this makes the number "5,000" small enough to leave the equation. It's for them we did it so the pressure and preparation and energy and courage - all is there.

still there.

--

This Friday I will have a completely different experience. I am sure I will like it as much as I like the aftermath of the newspaper though it will be a whole new setting. I am going to speak at my child's school, in his class, actually. In the 2d grade this year they run a "mystery visitor" project where a parent may chose to come visit the class room on Friday and talk about their profession, do something with the kids, tell them stories, read books, - do anything that would engage kids and teach them something. Not many do and my son really asked me to come. He does not yet know and I won't tell him to catch him by surprise. You wonder what I am going to talk about? I am sure kids will like to learn about computers, software, and everything behind their smartboard (the thing that looks and works like regular white board but also attaches to a computer and works as a display and a touch screen). I may also tell them about the country we came from as this is something kids like. I exchanged emails with the teacher and she assured me it will do.

They won't care if I speak a fluent no-accent English, they won't care if all I say is bullet proof, they won't care if I make mistakes, they won't care if they will need to ask me to repeat a few times, they won't care if I ask them to repeat a few times. The value for them is in what I will say, in the thrill of getting to know things they did not know, in the fact of my appearance to entertain them - in making their day a little better than it would have been without the "mystery visitor".

An audience that is totally rewarding without knowing what the word "rewarding" means exactly. The audience that will at some time forget, will need to have to learn what they had known so well at some point - how to appreciate and see the value in what's not exactly perfect from all angles. Apparently, ability to truly appreciate is a natural skill for kids and a mental exercise for adults, and not all believe it's worth their time and energy. Funny. It feels surprisingly good to truly appreciate somebody else's work so by not making that effort many grownups deprive themselves from enjoying it.

Monday, May 03, 2010

How much to get a message across?


How much is it worth to get a message across?

Of course it depends on what kind of message and who to get it to. You spend your time writing emails and it sometimes works. You spend your time on the phone and it works better. It works best if you deliver your message face to face. Ok, that's classic, you don't need me to tell you this.

How often do you end up with the "I know that you believe you understand what you think I said, but I'm not sure you realize that what you heard is not what I meant"? reality check. I am just saying...

--

Getting a message across means more than having it delivered, more than having it heard, more than having it understood. It means making it acted upon, acted upon in a way you thought it would be acted upon, or better. If it's not - you failed. Try again.

--

About 2 months ago my team and I started working on a small initiative with a big ego - a global online intranet newspaper for our company. You would think big and successful companies "have all that figured out". Yea, I wish they had. I wish we had. But we don't. "So let's do something about it", we thought, and off we went.

It just so happens that I know my company quite well. I've been with it for more than 7 years by now, I watched it grow from 250 to 5000, I worked in multiple geographies and in different roles, I am in active contact with people from almost all the places we're in, and I still get to travel. I'm in the loop. More than most of the people around me but not on the level needed to confidently write for the newspaper, not at all to confidently write about everything and everyone I would want to. My response? Get some help. To do so? Get the message across. "Simple", I thought, and sent an email.

I am trying to be careful with my emails. That time I felt absolutely confident my message would get across. How hard could it be? you write to the right people who you know well and who know you well, you keep it short and specific, you explain, you show respect, you ask for simple doable things. Even more. I knew the people I wrote to were busy, really busy, no-kidding-busy - so I had a plan. Do not ask to wrtie, only ask to give soundbites: get the soundbites, get the contacts, do the legwork. I was ready to. I was committed to. Just needed the right soundbites from the right people. So how hard could it be?

I failed. I got one response. A great one, that "better" one you always hope for, but that was it! I expected and I needed ten. One "better" did not outweigh ten "regular", not that time. My message did not get across.


--

Today I needed to get somewhat similar message on the same subject to the same audience.

During the last 2 months we've made good progress. We figured we knew enough for the first issue of the newspaper so we scaled back on scope, figured the soundbites we needed might not have been all that important after all, and plunged ahead. We had it written, designed, put together, looked at by the CEO, reviewed by some random (and not only) people in the company.

While finishing with the tune-ups I figured I still needed that participation I failed to secure originally. Soundbites would be a way too late, but validation and acknowledgment and comments are still essential. We can't publicly write about stuff other people own and bear responsibility for without confirming factual data, making sure no contractual terms violated, ensuring we won't create more damage than good. This is given. We're not yellow press.

What's the plan this time? The same thing I did last time is likely to fail again. I can't get on the phone with everybody - orchestrating schedules will be a more complex endeavor than building that whole newspaper. Video conference - same issue with the schedule and availability and the timezones. Record a video? maybe next time. I told you - big companies don't have it all figured out. We have a video broadcasting platform but it's still making its baby steps and so is likely to screw the user experience. Maybe not, but I can't risk it. After an email not acted upon, I can't expect a slow video download to work better for me. I know there are other options but for the content like this "behind the firewall" is better, and sometimes is the only option.

I figured I'd do this: write an email, a pitch-email, almost a blog post, and take it from there. Done. Now what? After having read it a few times I knew I would not send it (plus I knew an email would not work anyway). This is when I decided to wrap the message into something more catchy, something more entertaining, something the audience would be likely to look into and have good experience with. If it ends up not acted upon, I at least wanted that it be worth the time spent.

I decided to do a presentation. It just had to be a good one. Death by Powerpoint is not what I wanted. I can't say I'm great at presentations. No. To be really great at presentations (as well as pretty much anything else) you've got do it regularly for couple years. Then do it some more. And then do it some more. And then just a little more. I haven't done it this much so no, I am no expert. But I think I can tell good slide materials from bad ones.

My message was 2 paragraphs long. About 8 sentences or so. I kept it intact, cut in pieces, split into about 20 slides in a simple one-thought-per-slide mode. If I would speak to the slides I would click it through in no time. Click pet thought. I would only delete the text completely if I was to deliver it live. So what would there be without a text? Images. I knew I needed images to fill in the blanks. Not just images, I needed to-the-point images, I needed images that would resonate with the text, I needed images that would fit in naturally. I needed same-style-images-that-would-resonate-with-each-of-the-20-slides. Easy, huh? But where do I get it?

It took me a while to stumble upon the www.fotolia.com and a little more to find all I needed there (or so I think). The only caveat - it's not free. So here's the question. How much is it worth to get the message across?

This time it took me about 4 hours and $30 for the images*. And it was not to get it across, it was to try to get it across. I still don't know if it yields the result I need but at least I feel good about the effort. Isn't it what matters after all?

Here's the message (a little abbreviated to pass the "behind the firewall" rule, sorry). And of course I needed to put the text back alongside images as I was not about to deliver it live:



* the "we can do it" and "yes we can" I did not have to pay for. These famous ones I downloaded from the web.

Wednesday, April 28, 2010

And now in Russian


I had a blog mirror on wordpress for some time and wanted to write there in Russian.

Today I did.

If Russian is your 1st of 2d language you're more than welcome to check it out: my first article on wordpress

Monday, March 29, 2010

Slow it down on contact


- I don't have time! my world moves fast!
- I got to act! we got to do at least something!

heard it? seen it? believed it? did it? lived it?

Smart individuals often confuse sense of urgency with anxiety. Sense of urgency is not about an itchy feeling to do something, not about doing something because somebody has got to do something, not about demanding that others do something, not about holding others responsible for not doing something. It is about recognizing the issue, making sense of it, knowing it needs to be fixed, understanding if it needs to be fixed ASAP, learning how to fix it, figuring out action plan, involving the stakeholders, getting on the same page, and then, only then, it's about doing something meaningful about it. Something meaningful may sometimes be no thing at all.

If your world moves much faster than those of others around you you'll inevitably end up striking them as it spins, especially so if you don't slow it down on contact.

Hit the brakes, slow it down, allow a gentle touch and a little longer engagement with the worlds of others and open a whole new world of zero damage accomplishments. And then spin it fast, as fast as you can so you can do more and ship more and deliver more and earn more and enjoy more. You rule your world. Don't think you rule those of others.

Thursday, March 04, 2010

Two sentences


How likely are you to try to follow this advice? How likely are you to stick to it?

These guys also have three, four, and five sentences to make it a gradual transition from the cluttered way you're emailing today. If you have hard time, try changing your habit in a Zend way.

I don't think following a 2 sentence rule all the time every time makes sense, but uncluttering your emails sure does. And it starts not with how long you let your emails grow, not with the way you organize and manage your inbox. It starts with how often you decide to write and send an email (actually, it all starts with how often you decide to read your email but that's a different story).

--

With more exposure comes more visibility, more involvement, more open doors, more communication. Your common sense is awake at least as much as you are, an urge to jump in on all ridiculous stuff that's flowing through your inbox is irresistible. Your opinion matters. Your input is essential. Or so it feels. Oh, and everybody around you is an idiot. Ok. Rewind the last one.

Your opinion matters when you were asked to express it - it's a lot more likely to generate a meaningful action as somebody is tuned in listening.

Your input is essential when it brings in something valuable, something new, something undiscovered, something unique. It's even more essential when it brings fuel to the decision process. And it's even more essential when it connects people, makes two idle substances diffuse and react.

But what matters the most is your action, your contribution. Sending an email is not an action, it's a mere illusion of acting. So don't. Do not send it until it brings value. Do something instead and delete the email you just wrote unless you can prove to yourself it matters.

--

Try the "two sentences" and learn with me to unlove the Send button, then move on to unlove the Reply All.

p.s. true jedis know how to unlove starting their mornings with reading emails from their iPhone. I am not a true jedi yet.

Wednesday, February 24, 2010

Learn to be great at what you do


Do you like what you do for a living? do you love it? Does it matter?

A middle aged guy at the counter in a grocery store carefully carries his broken hand immobilized in a plaster. I see him there almost every time I shop. He smiles, talks to me about something irrelevant, does a decent job bagging with one hand. I help him out. He notices a nice new dress on my baby daughter, lets her push all buttons on the credit card terminal. We all enjoy the experience... I don't know if he loves his job but I am sure he is enjoying it when he's at it.

A guy in his mid 20th is a sensei teaching karate class that my older son goes to. Today there are 8 younglings split into 4 pairs to master their front, round, and side kicks. They alternate. He changes the setup every 5 or so minutes, lets them jump, run, learn new combination, manages to give each kid the attention they deserve, wouldn't let a mistake go unnoticed. The room has glass windows and a door always open so that parents can watch and hear the class. Sensei explains every little thing he does, cracks jokes, looks up at parents every minute or so to engage them more. As a rule he would walk out at the end of each and every class to chat with the parents, say hello and tell how great their kids did in class for those who dropped the kids off and came to pick them up. All while next class is getting ready. Kids, parents, and he himself - everybody enjoys the experience... I don't know if he loves his job but I am sure he is enjoying it when he's at it.

A guy in his 30th is a software architect. Unlike the two guys above he makes a decent money, works flexible hours, enjoys fiber optic internet, can listen to his favorite music all day long. He is not happy, he is arrogant, he does not like his employer, every so often checks his profile on careers.stackoverflow.com, pushes back, plays devil advocate, dictate his rules, everybody around him knows he believes he deserves better. He thinks he loves his job.

--

You love your job not when you pamper or indulge it. You truly love it when you enjoy being at it and when you and everybody who you work with have great experience about it. It’s the extent to which you do it and the sincerity with which you do it that makes the difference. Do you love your family or your significant other or do you love them?

You have got to truly love your job to one day become great at it, no matter what you do. And if you're stuck or don't like the setup you ended up in - you change it or move on once you made up your mind. But you never drop the ball in loving your job or you close the door to once become great at it.

Learn to be great at what you do by learning how to love it.

Monday, January 11, 2010

Don't wait


Today I took them off.

I got it to the point when I started liking them.

It feels weird and different and sad and yet great not to have them.

Braces. Today I took them off. It was time.

:)

Having your braces done when you're thirty must be different to experiencing it as a teenager. I am sure I would not have appreciated the end result as much.

--

Reflecting on having them on and the whole story that led to putting them on made me think about two things: the value of commitment and the value of time.

Braces took the whole 2 years. It's 2 years of different eating habits, 2 years of brushing after every meal, 2 years of sore mouth, 2 years of seeing the doctor every 6 weeks, 2 years of smiling the metal to the world. And yet I've enjoyed having them on since day one...

4 years to decide I needed them had built strong enough commitment. After 4 years of thinking I had figured I'd better had them on for 2 years and be done with it than keep mentally struggling every time I wanted to smile. People who know me know that I smile a lot. It was hard to keep it up. I simply knew that if I had endured 4 years of deliberation I could endure another two of having them on. It worked out pretty good.

I wish I could generate same commitment without double wait time :) Though, it's not exactly a x2. It will soon be much less. Now, after I have them off, I will wear retainers. It's another year of some appliance in your mouth full time followed by a night wear ... forever. Or as long as I am concerned not to give my teeth even a little chance to go back where they were.

The thing is, once you build a foundation - you feel very connected, very afraid to lose it, very sorry to even think to have to start over. I have another one like this. I quit smoking 7 years ago, used to smoke a pack a day and stopped one day. Just like that. The only thing that kept me from smoking again was the fear to have to start quitting over. Literally. I still have that motivation with me.

The question is, why it is so hard to commit to do other things? Spend an hour a day studying or reading or writing or painting or exercising and just keep doing it for 2 years? I bet the foundation built would not be less sorry to lose than that of a better looking smile or not smoking.

I will tell you in 2 years.

Time flies by. 5 or so years ago, when my son was 2, I mentioned to my mom about how I noticed the time went faster. I said something about the time passing by in weeks, not days as it used to. And she said: wait, it will soon be years. I did not give it much thoughts until recently when I felt it's definitely months. It was the braces check up appointments that made me realize. The constant schedule of having one each 6 weeks soon became a routine, a metronome of life.

2 years will pass fast. I am not going to lose it waiting. And neither should you.

Monday, January 04, 2010

Fair Search


How do you think Google scores in search results for "search"?

8th on google.com after metasearch, altavista, dogpile, bing, yahoo, local business results, and a few variations of the above

2d on yahoo.com after Yahoo!

did not make to the first page on bing

--

who did a fair search on "search" ?

Sunday, January 03, 2010

Change


It's this time of the year again when people commit to their New Year resolutions and some teach others how to stick to it. Is there something great in Mondays to put starting a new life off to it? You tell me, but the idea of an extra opportunity to change is thrilling. If nothing else - start of a new year is.

Reflections on the last year and the last decade are all over the place. How could one resist a so prominent feeling of a better, unknown, everything-is-possible, I-could-be-the-one, I-will-change tomorrow? It's oozing from everywhere, it fills you up and boom!! the next thing you know you dream about change.

I. want. things. changed.

Is that right?

I. want. to. change. things.

better...

I. am. changing. things. starting. tomorrow now.

Great. Wish me luck.