Showing posts with label productivity. Show all posts
Showing posts with label productivity. Show all posts

2010-08-16

Life after life of Google Wave

It is a little sad, but Google ends development of Wave product as "Wave has not seen the user adoption we would have liked".

I liked the whole "Wave" idea presented at Google I/O conference. It was new an powerful tool, covering the features of multiple existing services like instant messengers, chats, forums with threads and more. On the other side, people were scared of initial learning curve, even understanding at the start what is this service for. Compare other successful service Twitter that wins with simple question "what’s happening now" and message box for simple text message. It seams that simplicity of use and ascetic features win in that case.

Wave has unique features like live collaborative editing that I like the most. This is perfect tool for quickly writing documents by collaborating team. Google Wave is open source project ,so I hope such features would be incorporated into on-line editing suites, in a way that makes collaboration almost effortless. It should also take its place on some forum based sites.

If you miss that service, look for Google Wave offspring or make your own service- the code is publicly available.

2009-12-21

Reviewing printed vs on screen documents

I have observed interesting phenomena: reviewing printed document reveals more mistakes in text than looking on the same document on computer screen. And I think I'm not alone - I've seen other people had same problem too.

It has to be something with focus on a task of document reviewing and ability to concentration in given context. Computer screen vs paper document. What is this all about? Is paper document better to read? I think it's related with casual context related with each of the media.

My computer (screen) context is something like:
  • work (reading, writing, drawing, programming),
  • news,
  • learning,
  • entertainment (movies, games),
  • sharing some functions with TV,
  • promotes multitasking,
  • contains more chaotic and less quality content that needs more filtering and preprocessing
Paper context:
  • books (facts and fiction),
  • documents (more important and less like just printed electronic versions for convenience),
  • better quality content that needs focus.
Time spent at each media is about 95% for computer screen and 5% for paper, so rare paper usage can make it potentially more interesting for brain too.

While using computer I'm doing many things while multitasking, and filtering low quality information that is reducing deep focus. Paper media in comparison switches my consciousness into context that makes me more deeply focused, less distracted (no multitasking), and and that makes me finding fine text errors easy. I don't even need to think about it, it's how my brain programmed itself in choosing proper context. It's not strange that computers (and Internet) turn me into "information trash" mode when I can't see details.

I'm not mentioning eye-strain effect, because of good modern LCD screens and readers using electronic paper so impact is small and difference between media in that area is vanishing.

Idea, how to stay focused on text without paper version of document, is to read text in simple non distracting computer environment like full screen mode, no other windows, bells and whistles (easy), and treating it like high quality content with meaning (that's harder). It may need some time to rewire brain, but probably that's the way to go.

2009-06-08

The best programming language 2 - Simple case tale

The University needed temporary solution for generating list of quiz questions, chosen randomly from data prepared in structured text file. The scope of application was nothing comparing to "Enterprise Systems", so I treated it as a kind of entertaining enterprise.

The core characteristics were:
  • simple logic
  • UI forms for getting parameters from user
  • printable or saveable formatted questions list
  • low burden installation and use (get it on pendrive or download ready to use).
  • main constraints: short time and possibly low cost.

I started looking for similar open source products, but not found needed functionality. So when I checked myself for Not Invented Here syndrome, I started thinking about custom solution.

There were many ways of implementation. I thought about preparing windows exe file with included required dependencies (no installing additional Java, .Net, Python or other runtime).
I started playing in "prototyping with Python"- it was fun and things were going smoothly. But I stopped before making UI. Plain old console was "too lame" for final users, so I planned GUI with TkInter included by default in python installation to avoid porting to windows executable problems.

I get core set of functionalities, but user interface still was barely specified. Then I get many additional requests about "last minute" changes in UI forms (and probably not the last). The second "economic" option was to implement the whole application in Java Script and HTML running under web browser. Every computer has web browser suitable to run that kind of application so there are almost no installation and portability issues. Implementation time should be short too. To speed up things I have changed data format from flat file of records into JSON structure. Porting logic was fast too. The most time took me making forms working.

First version was not so fancy and needed some GUI tweaking like formatting, changing labels and headers. In a case of any further UI changes other people knowing HTML could make fixes instantly. The extra feature was possibility of "deploying" the little application on a web server as HTML page. Saving result to file wasn't working directly. Making it really automatic needed interacting with browser security policies for access to local file system. We decided that it will be still usable if user use copy-paste technique, and place formatted result in external text editor. The default usage was printing questions on paper so nobody saw problem there.

Everything is working as designed, and shows that web browser should be treaded as good platform for small applications. Sometimes little prototyping gives better insight on a whole system.

2009-02-02

Using simple drawing tools to unlock creativity

One day I have played with my kid's sketch pad toy. It's about 15 inches diagonal - almost like smaller PC monitor or laptop screen size. After drawing funny pictures I started to draw and solve some of my work problems. It was astonishing easy to work in that way, and soon I get simple solutions. I realized it is really good device to unlock creative possibilities.

I rethinked that again and spot some interesting factors that helped me to enter into that state:
  • playing mood (it's almost as important as all other factors together)
  • everything you draw or write is temporary, unless you try to save it in some way, otherwise you make one sweep and you have clear area ready for new ideas
  • comfortable drawing with pen and handwriting unlocks physical obstacles slowing your work (like using keyboard)
  • all factors shorten interaction on path brain - drawing surface
  • the next similar tool is notepad with pen - loosing some of the play joyfulness


If we could transfer those features to laptop.. wait a minute there are laptops- tablet PCs! I've never used one but I'm really interested if is it as easy to work as simple sketch pad or notepad.

2008-10-13

Automated time tracking with Rescue Time

Sometimes I have mixed thoughts about spending all day with computer. I know what I have done that day, but I know I could do that in a more productive way.

Time is passing in a tricky way while you are sitting in a front of a screen. Sometimes tasks categorized as "easy" took only 15 minutes, other time its 3 hours, and you feel only "small" difference between both cases. Other issue is actual context of task that includes communication, looking for references, research etc. Many times work ends on reading "more interesting" site or blog.

Here is an automated time tracking software from Y Combinator startup named RescueTime. It makes possible "Effortless Time Tracking" under Mac, Windows and thanks to "an enterprising Linux fan" for Linux. It automatically tracks time for every application, web address and gives reports by applications, categories, and user defined tags.

Cons: I see only one- development team still works on recognizing java applications. Now all Eclipse and java applications are seen as Java. Something about privacy and tracking web addresses: you can define white/black list for web addresses, and daily hours of tracking (for example since 8:00 till 16:00). Urls are also truncated to not track irrelevant data. So software can be properly configured and used in "a safe" way.

The graphical reports give very informative strategical overview of time usage. You can also set your time management goals and track your success. They also have business plan that enables team activity tracking and comparing results.

Now I'm going to check share of my time wasters.



2008-04-21

Alternative Human Computer Interface for cheap (Wiiiii)

More efficient or just possible with computer interaction in hard cirtcumstances is one of my dreams (so tech geeky). I specially like input methods without standard keyboard. It's good to have touch screen and/or some kind of wearable pointing device.

I've been trying to get some results using web cam and motion analyzing software- to move mouse cursor or activate functions by waving hands. I haven't enough time to get it succesfull.

Then I saw some of Johny Lee Wiimote projects results- it's really impressive. All thanks to internal processing inside wiimote- all you get on output are coordinates of tracked points and values from accelerometers.

I've never been into wii- just another game console. One positive- it was introducing new kind of games. I'm reading about wiimote possibilities and it looks it gives a lot of possibilities for affordable price.

Probably I give up my web cam attempts as Johny Lee wrote on his blog:

The wii remote contains a 1024x768 camera with built-in hardware for IR blob tracking of upto 4 points at 100Hz. This significantly outperforms any $40 webcam I'm aware of. It'll work with a webcam, just not as well and not as easily.


I'm thinking to get one of these to hack it into something usable.

2008-03-31

Polyphasic sleep - sleeping less and better? - Not really

I finished my polyphasic sleep experiment. I just couldn't catch up enough sleep in proper period. Kid wakes me up twice per night - so it's hard to maintain core 4.5 hour sleep block. It was very hard to get up and you can imagine the rest of the story. I guess that my overall "time and productivity" ratio decreased. I lost my dream memory too- it's an early sign of sleep deprivation for me.

So I decided to break it and gain more rest from my classic 6 hours sleep schedule, plus occasional power nap at late afternoon. After about two weeks of adaptation I feel like I had never changed my sleep habits. I feel more rested now, so probably it was good move.

The most important lesson I learned during that experiment:
Shortened sleep time needs maxed out rest results during sleep. Taking naps with regular schedule and doing it in comfortable way (comfy place, silence and darkness) is a must.

Maybe next time when I could organize my bed time without interruptions, I will try polyphasic schedule again. Besides, I'm still working on improving my sleep habits.

2008-02-18

Polyphasic sleep - sleeping less and better - update 1


Photo author: agoode
I mentioned before that I started polyphasic sleep schedule experiment After few weeks I can say it's quite difficult, but somehow working.
I had one week for trying it without family, but now they are back and are very important part of that experiment.

After transition phase I experimented with two different sleep schedules versions: 3 hours and 4.5 of core sleep version. I must say that best schedule that works for me is 4.5h of core sleep and 3 naps: one before work, one after dinner and additional one at evening. It works probably because of quite long core sleep time only 1.5h shorter than my usual 6h sleep. I maintained that sleep cycle for most all days with some exceptions:
- sometimes I was too tired after whole day or not slept good last night- in that circumstances its possible to miss even an alarm clock
- weekends when my lazy part demands full night sleep
- nightly interruptions caused by my toddler needing nursing

The first two obstacles probably will be gone after better adaptation. Kid is the bigger problem. I managed that by tweaking my sleeping hours and synchronizing with my kid's sleeping cycle. It's still not ideal but seems working. And know I'm logging sleep times for two.

My core sleep isn't equal for every night. Sometimes it fits better my natural rhythm the other time worse. I use precalculated cycle length of about 1.5h. So 4.5 core sleep takes about 3 cycles. If my waking time differs by more than half an hour earlier or later, I feel after that really bad. Grogginess, jet lag effect cumulates together into zombie like state - I need slow warm up to function normally. After first nap things go better. Every nap is crucial for reducing short sleep time effects and I'm usually more energized at the morning. After 2 pm I start to feel worse and I'm slowing till I get next nap after dinner.

But If my sleeping times are in schedule I feel normal, sometimes after naps even more energized than usual . So the key to success is to tune in to natural body rhythm and holding schedule times. As I mentioned before, naps are crucial- every nap missed makes me feel worse till next sleep.

Somebody may ask- is it worth to take such sacrifices? My total sleeping time is shortened from 6.5 to 5.5 hours- so 1 hour gained. It's a small reward if any. My main goal was to redefine my daily sleep cycle to get my works done and have time for my family after work. My family helps me a little so I can get two 20 minutes naps at late afternoon and evening. Everybody gets its goals and is happy. I think its worth to try it making better. Maybe it's weird method, but that's the way I like to try.

2008-01-28

Polyphasic sleep - sleeping less and better?

I've been planning to change my sleep schedule. The new year had come and it was good time to incorporate new habits. The first goal is to change sleep pattern to boost my creativity and make better time management through all day.

First step was to become more "early bird", it means getting up at least at 5 am. That part was easy.

So it's time for next step- polyphasic sleep. What is this all about? Instead of one big chunk of time dedicated for sleeping (usually 6-8 hours), polyphasic sleep is to take 4-6 20-30 minutes naps thorough all day.
The outcome is: summarized nap time is much shorter than usual sleeping time. And what is more controversial- you can be still rested and refreshed without health side effects. The biggest sleep time cut has Uberman's sleep schedule. One 20-30 minutes nap replaces one sleep cycle that average takes about 1.5 hour. The simplest form of polyphasic sleep is classic sleeping block plus siesta time.

I'm planning to use Everyman's sleep schedule. I have time to take 4.5 hour sleep, then one nap before leaving to work. Now it will be nice if I can afford short power nap during lunch time. And then one nap after work and dinner.

Sounds simple. I've tried to manage that schedule for few days. My first remarks:
- I didn't know that I can be so lazy to get up from bed at unusual time.
- It's hard so I have to keep more discipline.
- It's important to make most of used "sleep cycles". Keeping schedule and proper timing really makes difference.
- During adaptation I you feel sometimes like zombie at certain time of day.

Last week I caught a cold- so I held this experiment. I'm going to continue that as soon as I get better. So stay in touch and wish me luck.

2007-12-10

Thunderbird and everyday spam fighting

How many emails do you get every day? How many of them are not spam?
I get about 200 spam emails everyday. I'm using Thunderbird mail client with built in spam filter - but it "eats" only about 15% of my spam. I think that it's not the matter of training data because of about several thousands good marked posts.

Somebody wrote about manual preselecting best representatives for the types of spam, and then feeding the spam filter with it. But come on - I need and automated method.

So I started looking for the best spam filters I can use for free. Very popular and tempting option is to forward all your emails to Google mail and use it as your mail client. Filtering capabilities are indeed very good, but what if you don't want to redirect all your email to "G empire"?

There are good open source spam filters working as proxy servers like fabulous spamassasin. It's good idea to set up such kind of spam filtering server for intranet.

I've needed something different. While searching for Thunderbird spam filtering plugins I found adn tried one interesting product - Spamato.

It can work as standalone mail proxy but I used Thunderbird plugin version spamato4thunderbird. There is also MS Outlook version too if anybody is interested.

Installation procedure is easy - like for most of hunderbird plugins. Basic configuration - show your bin/java path and give registration email (spamato can send spam statistics to central server). Oh I mentioned java. Yes it's written in java- and proces takes about 70 MB under windows, and it's not blazing fast. It's not a problem for me - I'm checking email a couple times per day and don't need to run Thunderbird all day. It's the matter of work organization.

What you get after install: a beast with pluggable architecture, a dozen filter and decision maker modules, configurable via http interface, and displaying nice charts. Oh and there is that funny (annoying) sound after every spam email marked - it's good you can easy turn it off.

Using experience- surprisingly good. Filtering results - not worse than Google mail filter. There were few false positives at the beginning (ham marked as spam), but all those filters are learning. All spam marked messages are moved into special spamato folder (check configuration). You can view spam history and correct (teach) filters via web interface. Big negative - spamato is not integrated with Thunderbird native junk mail tools. So marking something as junk under Thunderbird, doesn't count for Spamato. You have to correct filters on Spamato separately. There is partial solution for that problem - you can configure spamato to detect posts movements in/out of spamato folder on IMAP server.

So I'm going back to read my spam errrgh email inbox.

2007-09-09

The best programming language - choose the right tool for the job.

Is there the only one ultimate programming language, what is the best match for every application?

Some of folks may say- "Yes, It's L**. I've used it for X years in production environments and there is nothing in the world better than that". But it's not yet another thread about java vs c++ vs python vs ruby vs php [vs pick_your_language]...

Look at the current situation of existing programming languages. There are probably more programming languages than ever before and they are still evolving, what is IMHO good thing. An evolutionary criterion here is mainly market demand. It regulates need for that kind of tools and the most obsolete ones are vanishing.

Most of the programming languages start existence as a project of small group of enthusiasts or scientists. One person driven projects are quite usual. When it gains wider audience as good candidate for programming environment there is a moment when market influence kicks in.
From business point of view software production process must be optimized to get needed set of features, using possibly smallest resources and time to get final product of desired quality.
So there is economical pressure to keep (man time cost)/(product quality) ratio low.

What is programming environment? The main element is of course programming language concept with its constructs, and a set of basic framework libraries. It must be implemented, so it goes with tools like compilers, interpreters, virtual machines, debuggers and other preparing software to run and monitor software in target system. On the other end there are Integrated Development Environments boosting programmers’ productivity. All of these elements are used during software production process which has strategic impact on software cost and quality. The total cost and quality depends on the combination of lower level facilities of programming environments (I am excluding people skills).

All programming environments have some sweet points there and sometimes hard to reach or lack of other features somewhere else. So there is no one simple and effective tool for creating software.

So how to choose best one for your needs? Productivity depends on domain and size of application, architecture, speed of elementary analyze-write-compile-test cycle, easiness to create small and clean code, good debug information, matching tools power to programmer skills and other minor factors. These factors should be evaluated during short "evaluation runs" to get the complete picture.

How to collect such valuable metrics? We need productivity measuring features seamlessly hooked up into existing tools used during software development and maintenance. Having recorded software feature production time metrics and process structure can give us very valuable information. It gives possibility to look back, find weak points of process and try to improve it. Or, you would try to compare metrics in context of features and application character for different programming languages and choose the best for your needs. But we need tools to acquire those metrics. Some of commercial tools are going into that direction, and I think it's time to incorporate that into platforms supporting creation of open source software and sharing information with wider audience.

There is a very long way (if any exists) to one leading programming environment with simple but powerful programming language and well designed set of libraries etc. We have different competing programming environments find their market niches today. Evaluating and selection of best solution isn't trivial task. But if you can - think about it and choose the right tool for the job.

Maybe one day there will be one ideal small and complete programming language with good framework library, with scripting for small programs and support for big enterprise application features, with changeable features and many sets of well designed libraries and frameworks. Sounds like utopia for me, but who knows?