Does the end justify our means?
Something I am upset about - a friend working at a bank is being mistreated, since her relative has a credit problem. She is not a guarantor in any formal way, so the reason the bank is harassing her is simple - she is easier to reach. She can be threatened "measures", such as no bonus or even being fired, so it is now her job to invoke her relative's enthusiasm towards returning the bank its beloved money.
The bank policy may assume that she is "theirs", so they can use this resource to achieve the corporate goals. Someone who's worked for the bank for some years, stayed the late hours and some all-nighters, to get yet another project done by the date in someone's calendar, she is one they can rely on. She is indeed theirs, as she calls the bank hers.
That's what I find truly disturbing. What does "ours" mean, really? What does it mean in your workplace, what kind of atmosphere, attitude, relationship do you create, with your peers or subordinates?
I see how using "your" people to the fullest can be efficient, time and money-wise. You employ every tool at your disposal to reach a goal.
Doesn't it contradict the idea of watching after your own, though, creating the best environment for them, rewarding their loyalty and dedication? Or is that idea long dead, with cheap replacements waiting within an army of HRs' reach? Aren't we creating a vicious circle of having not to rely on people, since people are leaving often, since we don't rely on them enough?
Too naive, true. There are times when you ask your team to go the extra mile. Sometimes delivering on time actually matters - even at the cost of some stress. Especially in the highly competitive (ruthless!) world we live in.
Yet this should only be possible if there is a proper mutual benefit for both the company and the worker. You can't expect an employee to be "yours" if you don't treat her with due respect and care.
Any other way is unethical and irresponsible.
Perhaps such attitude is possible to achieve even in bigger companies, within your team, or whatever part of the company you have an influence over? If you do, won't you feel better going home after a hard day's work? Don't we all want happiness and satisfaction in our lives? (money being just one of the possible means to get it - and not the best one of the lot, to be honest)
Something to think about, as our decisions have consequences, not just the immediate outcome.
Be careful out there, it is a mad world!
Anton
Love coding and will share interesting findings from my experience.
Sunday, April 28, 2013
Tuesday, April 16, 2013
The Silence of the Emails
Earlier I wrote a (somewhat irritated, I admit) post about unsuitable use of Skype. The main thought is that each communication has its special properties, which could be its strengths or weaknesses — depending on how you use it.
Now, for electronic mail, it has a very strong feature too. It is not in real-time*.
That can be a strength — you don't need to respond immediately, and usually the sender does not expect you to. You can take the time to do the needed research, ask the right questions, think and ponder, to answer the email you received. You can even finish more urgent and more important tasks first, if you're so bold (look at you!).
The corresponding weakness? Same thing. It is not real-time, so very often you send an email like a black hole probe — once it crosses the event horizon, it is gone. No answer, no nothing. You assume the recipient is either on a month long survival holiday to the Antarctica, or dead, or just ignores you. And you're not sure which is worse.
In so many cases I asked the person quite some time after sending them a message, and they say that, yes, they saw it, and they either will get back to me, or (I love this part) “agree”.
Thus, my kind request to the world of email users, and a guideline I try to follow myself as much as I can. Email is an offline communication method, so, please, don't rush answering it. Take your time to do it right. Yet, if you think it will take you a while — send back a very brief acknowledgment note (you can even make it nice, if you're inclined), to say, you know, “Thanks for contacting me, I need to check some things before getting back to you soonish”. Or whatever corresponds your situation, play by the tune.
It does several things:
* — there are other features too, for which we love (or hate) email. It is loggable and searchable, it can hide your real emotions and your immediate reactions (meaning that sometimes the reader will imagine his own emotions on top of your text), etc. These can be and will be pros or cons too, so be careful and conscious.
Now, for electronic mail, it has a very strong feature too. It is not in real-time*.
That can be a strength — you don't need to respond immediately, and usually the sender does not expect you to. You can take the time to do the needed research, ask the right questions, think and ponder, to answer the email you received. You can even finish more urgent and more important tasks first, if you're so bold (look at you!).
The corresponding weakness? Same thing. It is not real-time, so very often you send an email like a black hole probe — once it crosses the event horizon, it is gone. No answer, no nothing. You assume the recipient is either on a month long survival holiday to the Antarctica, or dead, or just ignores you. And you're not sure which is worse.
![]() |
| Silence is golden. Sometimes. (photo by banlon1964) |
In so many cases I asked the person quite some time after sending them a message, and they say that, yes, they saw it, and they either will get back to me, or (I love this part) “agree”.
Thus, my kind request to the world of email users, and a guideline I try to follow myself as much as I can. Email is an offline communication method, so, please, don't rush answering it. Take your time to do it right. Yet, if you think it will take you a while — send back a very brief acknowledgment note (you can even make it nice, if you're inclined), to say, you know, “Thanks for contacting me, I need to check some things before getting back to you soonish”. Or whatever corresponds your situation, play by the tune.
It does several things:
- Shows that you're a nice person (which I am sure you are).
- Puts the sender's mind at peace — “they are looking at it, good, the ball is in their court now”.
- Buys you time to do what you need.
For some reason this “skill”, as obvious as it sounds, is almost entirely missing in the culture where I come from, so people (me included) need to be taught and reminded about it.
Cap'n Obvious over!
* — there are other features too, for which we love (or hate) email. It is loggable and searchable, it can hide your real emotions and your immediate reactions (meaning that sometimes the reader will imagine his own emotions on top of your text), etc. These can be and will be pros or cons too, so be careful and conscious.
Tuesday, March 12, 2013
Organizing my days (with Google Calendar)
How to stop worrying and… actually, if you're a real person, you'll worry anyway. Yet if, like me, you have to work on several projects at more or less the same time, you could have many tasks to attend to, some bound to specific time-slots, others to be done “when there is time” (huh?). And if you don't have some sort of a system, the tasks may start slipping through the cracks in your busy schedule and your close-to-but-not-quite-perfect memory.
Here's the system I use and enjoy. It is based on the same foundation that GTD (“Getting Things Done” by David Allen) — if you clear your mind of the necessity to keep track of what to do, you'll get more peace to be able to concentrate on the One Task that you're doing right now. Hopefully just one, but oh well. And clearing your mind is done by writing things down.
At this point GTD became too complicated for me, as it introduces several “inboxes” (folders) for specific kinds of tasks, depending on their urgency and importance (which are two different qualities, an important distinction to make in any system). For my personality and current workload I decided that these folders are complications that defeat the purpose. Yet I understand they could be very helpful for someone.
Therefore my approach cuts on the folders, and uses combination of Google Calendar and desktop notifications for my email (provided by several tools / mail services, and you could use mobile notifications as well, if you're into over-organized after work hours — oftentimes not a good idea, but sometimes you do what you gotta do).
Default notifications are configured per calendar, in Settings (under the cog icon) / Calendars / Reminders and notifications. Here's the proof image:
You can also set default event length to 30 minutes in Settings / General, while you're there. This helps if majority of your events are task reminders, and you can always drag-adjust the duration to what's needed for a specific job.
I then hover (like an eagle!) over the calendar, and find a more or less suitable spot for it. Click, type, go, done:
That's it, for planning.
So I act. I do the task straight away, if I can, and later delete the email notification from the inbox. Done.
This is how my weekly calendar looks (empty spaces are not “free time”, these are usually tasks that are in the flow for me, I don't need reminders for those). This is a mix of repeated, timed, urgent, important, or speculative tasks. I entered them — so I know what they are, and don't need an overhead system to further sort them.
Add — get notified — act or reschedule (or even remove), repeat.
The “system”, if I can even call it that, is simple and works! So it makes my life easier, and thus makes me a happier man. I wish you the same.
![]() |
| You get the idea. (photo by Criss Cross Circus) |
Here's the system I use and enjoy. It is based on the same foundation that GTD (“Getting Things Done” by David Allen) — if you clear your mind of the necessity to keep track of what to do, you'll get more peace to be able to concentrate on the One Task that you're doing right now. Hopefully just one, but oh well. And clearing your mind is done by writing things down.
At this point GTD became too complicated for me, as it introduces several “inboxes” (folders) for specific kinds of tasks, depending on their urgency and importance (which are two different qualities, an important distinction to make in any system). For my personality and current workload I decided that these folders are complications that defeat the purpose. Yet I understand they could be very helpful for someone.
Therefore my approach cuts on the folders, and uses combination of Google Calendar and desktop notifications for my email (provided by several tools / mail services, and you could use mobile notifications as well, if you're into over-organized after work hours — oftentimes not a good idea, but sometimes you do what you gotta do).
Preparation
To make the process smooth and quick I configured the default task notification in Google Calendar to be “Email — 10 minutes in advance”. This means that adding 95% of tasks (which are essentially reminders) means I click on an empty time slot, enter task name, press enter, go.Default notifications are configured per calendar, in Settings (under the cog icon) / Calendars / Reminders and notifications. Here's the proof image:
You can also set default event length to 30 minutes in Settings / General, while you're there. This helps if majority of your events are task reminders, and you can always drag-adjust the duration to what's needed for a specific job.
New Task
First step — I find out about something I need to do. It could have a specific date / time, or it could be “don't forget to” kind of task. Examples:- Call such-and-such person (could be a pre-arranged time, or I just need to call them, so I write it down not to keep thinking about it).
- Read an article at this link (paste link into task title).
- Check a movie I am interested in when it comes out on DVD (set half a year in advance, and forget till then).
- Prepare for a conference call with a client (one-two hours beforehand) and…
- Actual conf.call time.
- Read the Bible (in the quiet time after lunch, daily repetition, good for you!)
- Write a blog post :) (for this I also set repetition rules)
I then hover (like an eagle!) over the calendar, and find a more or less suitable spot for it. Click, type, go, done:
![]() |
| The default notification helps skip opening the full form (unless needed). |
Get Notified
Next step, after I've presumably stopped worrying (hah!), at a certain point in my day I get an email with the task title in it, and get a floating window from my desktop's icon tray. Time to act!So I act. I do the task straight away, if I can, and later delete the email notification from the inbox. Done.
Need to Delay
If, on the other hand, I can't do the task immediately (which is quite often), I either keep the email in the inbox (if I still expect to be able to do it later today), or re-schedule — with Google Calendar this means dragging to another time slot (and deleting the email message). Rinse and repeat.…Or Cancel
What I appreciate about this approach is that I can even put down tasks that are just rough ideas, and have them gestate somewhat. Then the notification comes, and I can make a quick decision of whether I actually need to do it at all — in some cases I do, but sometimes, with very speculative thoughts, I just say — nah, not worth it. In which case I delete the email, and do something else.Bird-eye View
![]() |
| Highly confidential! Well, not really :) |
This is how my weekly calendar looks (empty spaces are not “free time”, these are usually tasks that are in the flow for me, I don't need reminders for those). This is a mix of repeated, timed, urgent, important, or speculative tasks. I entered them — so I know what they are, and don't need an overhead system to further sort them.
Add — get notified — act or reschedule (or even remove), repeat.
The “system”, if I can even call it that, is simple and works! So it makes my life easier, and thus makes me a happier man. I wish you the same.
Wednesday, March 6, 2013
TechWire site: Design refresh, migration to WordPress
I've been quiet, since life has been quite loud, quite a lot happening, most of it good.
A notable project, and a good recent experience, was improving TechWire's (my employer, and a good company to work at indeed) site. It involved migration from Joomla (1.5 is way too old now) to WordPress, and a handy redesign.
I wrote a brief article about the migration to WordPress and redesign experience on the site itself — you can check that, yet I'd like to share some personal thoughts. A couple of months after launch I still like how it looks, so that's a good sign.
My main thought right now is how to optimise routine tasks. There are a lot of those that are repeated site to site, app to app, and these used to take a lot (if not most) of the time. Yet after gaining some proficiency in HTML / CSS / JavaScript (not a genius yet, but I have my bearings in most cases), I quite enjoy using frameworks and shortcuts of various kinds to speed up my process, while getting an even better result.
The danger in doing this without enough understanding is that, well, you won't understand what's happening. Wait till you need to fix it when something goes wrong — you'll know what I mean. So I recommend (myself, as well as anyone who cares to listen) to start learning without frameworks — if you can afford the time (though learning from a framework is a good idea!). Then you can moving to use a framework when you know you can do it yourself.
So, in case of this site I attempted to use as much as possible of the native WordPress theme (it is a framework of sorts too, isn't it?), (un)helpfully named “Twenty Twelve”, making just enough changes to make the site look our own. I believe WordPress provides a very good foundation for this kind of approach.
As a brief aside, I still do like Joomla, and I love (love!) Drupal, yet sometimes they are just too powerful for the task. Not a good idea to be struggling with a tool instead of solving the problem itself.
So, yes, this was a good experience. Right now I am getting more intimate with Bootstrap, and, even though it seemed overhyped and overused, it is actually very good. I am developing both a site (WordPress too) and a web-app UI prototype using it (good to have a couple of projects going in parallel, for idea-recycling), and get fine results with it. I hope to share more when I am done.
What tools do you use to speed up your work (while not losing quality)? Or you always start from scratch? It is hard to believe, actually.
Share your thoughts in the comments, I'll be thankful.
A notable project, and a good recent experience, was improving TechWire's (my employer, and a good company to work at indeed) site. It involved migration from Joomla (1.5 is way too old now) to WordPress, and a handy redesign.
I wrote a brief article about the migration to WordPress and redesign experience on the site itself — you can check that, yet I'd like to share some personal thoughts. A couple of months after launch I still like how it looks, so that's a good sign.
My main thought right now is how to optimise routine tasks. There are a lot of those that are repeated site to site, app to app, and these used to take a lot (if not most) of the time. Yet after gaining some proficiency in HTML / CSS / JavaScript (not a genius yet, but I have my bearings in most cases), I quite enjoy using frameworks and shortcuts of various kinds to speed up my process, while getting an even better result.
The danger in doing this without enough understanding is that, well, you won't understand what's happening. Wait till you need to fix it when something goes wrong — you'll know what I mean. So I recommend (myself, as well as anyone who cares to listen) to start learning without frameworks — if you can afford the time (though learning from a framework is a good idea!). Then you can moving to use a framework when you know you can do it yourself.
So, in case of this site I attempted to use as much as possible of the native WordPress theme (it is a framework of sorts too, isn't it?), (un)helpfully named “Twenty Twelve”, making just enough changes to make the site look our own. I believe WordPress provides a very good foundation for this kind of approach.
As a brief aside, I still do like Joomla, and I love (love!) Drupal, yet sometimes they are just too powerful for the task. Not a good idea to be struggling with a tool instead of solving the problem itself.
So, yes, this was a good experience. Right now I am getting more intimate with Bootstrap, and, even though it seemed overhyped and overused, it is actually very good. I am developing both a site (WordPress too) and a web-app UI prototype using it (good to have a couple of projects going in parallel, for idea-recycling), and get fine results with it. I hope to share more when I am done.
What tools do you use to speed up your work (while not losing quality)? Or you always start from scratch? It is hard to believe, actually.
Share your thoughts in the comments, I'll be thankful.
Tuesday, January 29, 2013
My standing desk experiment
My back is not… perfect, shall I say.
That is a true sign of a good IT professional (false modesty aside) — I've spent years sitting behind a trusty desk — studying, developing, designing, testing, supporting, communicating (ahem, sometimes playing). So my back pain is a huge advantage! It still hurts, though.
I've been reading articles on people moving to a standing stance while working, and, while that sounds bizarre, it actually makes sense. I do my best to sit straight, but as I get engrossed with the exciting practicalities of my job, I gradually slide off the chair, slumping more and more. It doesn't feel good, and, I believe, is very damaging in the long run.
So, it was a dream of mine for some time to actually try it. I was held back by the practical side of it — how do I actually raise my desk, without it costing too much. Also, there was a psychological factor — won't I look stupid, standing all day?
I still don't know the answer to that last question, to be honest.
Yet I did, with the help of a good friend, raise my desk on 16 bricks last week (so the table height has increased by 4 brick-thicks), and I am standing since. This is how it looks now:
![]() |
| Not very elegant, but does the job! |
One important addition that I needed was a small mat, it is too hard on the feet to stand all day. Otherwise — it works! I don't feel any discomfort from standing, back feels good, legs don't ache (apart from the muscles I strained while moving lots snow around on Saturday). So far I took only one daily conscious break from standing, to have a cup of tea on the sofa in the rest area.
For those concerned with psychological matters — it took my colleagues about 4 days to get used to me (I measured it by the declining temporal density of jokes about me). Not too bad, eh?
One peculiar side effect is that I tend to waste less time while standing. And no, this is not because I hurt all over — just that standing, somehow, keeps me more active-minded and motivated throughout the day (even after lunch!).
You'll see from the photo that it is a temporary setup — I didn't want to make any permanent changes before I ascertained that I can survive such harsh conditions (like I said, it sounds bizarre). But I think I've experimented enough to confirm that I can order two custom desk extension stands (and, if they cost too much, I can convince myself I like bricks).
I have a long-standing relationship with my desk, just that it was a sitting relationship. The time has come for that to change. May be that'll inspire some of you to try something good for your health. If you have any questions — let me know in the comments.
Take care! (…of your spine)
Wednesday, January 16, 2013
Ring of the Skype, Skype of the Rings
I'll just say it — I hate it when Skype starts ringing, out of the blue. This is not because I dislike Skype's voice feature — oh no, I love it, this is the whole reason Skype exists! (arguably, presence of all the other features makes it worse)
Yet, it has an ability to solve a huge inconvenience with regular phones.
The inconvenience being that you can't find out if it is a suitable time to talk before talking to the person on the other end.
Y'know, riiiiiiing, hello, are you asleep or can you talk? Or, rrrrrrrrring, hiya, are you in some important conversation right now? Or, taking a software development angle, rinnnnnnnng, are you “in the zone” now, on the verge of solving a problem that stalked you for days? Oh, you were? Right.
(actually, most people won't understand that last one anyway, when you sit without typing — most take it as a cue to initiate a casual chat. Nice weather today, eh?)
What Skype offers, though, in comparison with your granny's phone, is a possibility to send messages before you call. Text them: “Hi, is this a good time to talk, or shall I call later?”, for example.
The key here is that all methods of communication — voice calls, email exchanges, instant messaging chats, forum discussions and face-to-face meetings (yes, even them!) are very good, if used correctly, in the correct context. Conflict resolution, for example, just doesn't work in emails — they become lengthier and lengthier, while their writers become more and more furious. Written communication, on the other hand, is great thanks to how easy it is to search and reference certain points discussed.
So, when someone sees Skype as just a voice comms tool, and then uses it in and out of place — that is a waste of a great tool. And that's a shame. We'll all benefit from thinking about each situation, each problem we need to tackle, and then using a tool that fits the job. Now that's a thought that directly relates to programming.
Rant over, thankyouverymuch, haveagoodday :)
Yet, it has an ability to solve a huge inconvenience with regular phones.
![]() |
| Can you talk, or are you in a museum, looking at old gadgets? (photo by Alexandre Dulaunoy) |
The inconvenience being that you can't find out if it is a suitable time to talk before talking to the person on the other end.
Y'know, riiiiiiing, hello, are you asleep or can you talk? Or, rrrrrrrrring, hiya, are you in some important conversation right now? Or, taking a software development angle, rinnnnnnnng, are you “in the zone” now, on the verge of solving a problem that stalked you for days? Oh, you were? Right.
(actually, most people won't understand that last one anyway, when you sit without typing — most take it as a cue to initiate a casual chat. Nice weather today, eh?)
What Skype offers, though, in comparison with your granny's phone, is a possibility to send messages before you call. Text them: “Hi, is this a good time to talk, or shall I call later?”, for example.
The key here is that all methods of communication — voice calls, email exchanges, instant messaging chats, forum discussions and face-to-face meetings (yes, even them!) are very good, if used correctly, in the correct context. Conflict resolution, for example, just doesn't work in emails — they become lengthier and lengthier, while their writers become more and more furious. Written communication, on the other hand, is great thanks to how easy it is to search and reference certain points discussed.
So, when someone sees Skype as just a voice comms tool, and then uses it in and out of place — that is a waste of a great tool. And that's a shame. We'll all benefit from thinking about each situation, each problem we need to tackle, and then using a tool that fits the job. Now that's a thought that directly relates to programming.
Rant over, thankyouverymuch, haveagoodday :)
Tuesday, December 11, 2012
Drupal: Conditional Read More link in Views
A practical finding, for a change. This time in Drupal. If you use the Views project to output a list of nodes in “fields” mode (which allows you to select and configure each field individually, instead of a predefined node view), truncated by teaser, you may need to display a conditional Read More link.
Now, it may be unnecessary. Usually the title of the article is accepted by most people as the link to the full content (especially if they want to check out the comments etc). What is missing from this is an indication if there is actually something more to read — or not. This is relevant if sometimes your nodes are so brief that they fit the teaser in their entirety (and, to be honest, that's how I prefer other people to write their thoughts — not me, though, no no).
The simplest way to solve it is to add a “Node Link” field to the view (remember, we're talking about the fields-based view). This will display a “Read More” link on each node.
What I needed though, for a client project, was to display the link only if the truncation was actually happening, i.e. don't display the link if there isn't “More” to “Read”.
You'll need the following:
It is then up to you to style the link the way you like it.
You can see it working on the site for which I just implemented this approach: Blog at CloudPatterns, for now there are just two entries in the blog, and you can see the “Read more” magic in action on the second article in the list.
I am more impressed what Drupal can do with Views, but we're all impressed by different things, aren't we?
Take care and till next time!
Now, it may be unnecessary. Usually the title of the article is accepted by most people as the link to the full content (especially if they want to check out the comments etc). What is missing from this is an indication if there is actually something more to read — or not. This is relevant if sometimes your nodes are so brief that they fit the teaser in their entirety (and, to be honest, that's how I prefer other people to write their thoughts — not me, though, no no).
The simplest way to solve it is to add a “Node Link” field to the view (remember, we're talking about the fields-based view). This will display a “Read More” link on each node.
What I needed though, for a client project, was to display the link only if the truncation was actually happening, i.e. don't display the link if there isn't “More” to “Read”.
You'll need the following:
- Drupal, Views, yep.
- Views CustomField module — this will allow you to create custom fields (hence the name) in your views, namely — some simple PHP logic (to show the link only if a condition is met).
- Make sure to include Node: Teaser and Node: Body fields in your view. I guess you do have the teaser already, but the Body is needed too (to compare them and check if a truncation happened).
- Set the Body field to “Exclude from display”, you need the field to be included in the data, but don't need it showing to the visitors of your site:
- Add a new field, CustomField: PHP code, and set its Value to the following PHP code:
<?php if(strlen($data->node_revisions_body) > strlen($data->node_revisions_teaser)) print l('Read more', drupal_get_path_alias('node/' . $data->nid)); ?>
- Preview the view (or View the preview, whichever you prefer), make sure it works, and then save it.
- You're set!
The code is very simple, but I'll explain it briefly.
The $data object contains result of the view's database query for this specific record (in our case — node). We compare the length of the teaser and body, and if the teaser is shorter — we conclude that the body was truncated. If that is the case — print output of l-function, which, according to the very handy Drupal API, generates a link with a given text, applying necessary rules of the CMS (in most cases this is better than just handcrafting your own <a> tag). The text is “Read more”, the link is constructed by drupal_get_path_alias for the current node Id.
The $data object contains result of the view's database query for this specific record (in our case — node). We compare the length of the teaser and body, and if the teaser is shorter — we conclude that the body was truncated. If that is the case — print output of l-function, which, according to the very handy Drupal API, generates a link with a given text, applying necessary rules of the CMS (in most cases this is better than just handcrafting your own <a> tag). The text is “Read more”, the link is constructed by drupal_get_path_alias for the current node Id.
It is then up to you to style the link the way you like it.
You can see it working on the site for which I just implemented this approach: Blog at CloudPatterns, for now there are just two entries in the blog, and you can see the “Read more” magic in action on the second article in the list.
I am more impressed what Drupal can do with Views, but we're all impressed by different things, aren't we?
Take care and till next time!
Subscribe to:
Posts (Atom)










