RSS
 

Archive for the ‘Web’ Category

Taking notes: Google, Zoho, OneNote, Evernote

28 Mar

A mastery of note taking can not be valued highly enough.

Dale Carnegie starts one of his public speaking books written back in 30′s with a full chapter about the importance of taking notes. While I strongly disagree with the “Use any ‘back-of-the-envelop’ kind of paper you happen to find at the moment” approach and suggest carrying a small notepad at all times instead, the author couldn’t be more right about this point: one should be able to write down all important thoughts.

Those thoughts seem to appear from nowhere and may easily go away, if not caught up and recorded immediately. Since we are in a digital area today, the “writing” part is usually done by some sort of application and even a notepad is a Win+N shortcut for me now. When I’m on the go, I usually send short e-mails to myself so I can’t say much about mobile applications for note taking. Instead, I would like to review a number of regular apps I have tried in recent years.

After being skeptical about “Web Word” for a number of years I tried Google Docs one day for the sake of sharing a document with others. The sharing part worked well but I ran into formatting issues later. I’m very sensitive to fonts and the wrong one can hurt my eyes badly. That’s why I love Stylebot so much, by the way. If you didn’t see me tweeting numerous times about it, this Chrome extension allows for patching the CSS of any site. People use it to cleanup pages, but I mostly use it to setup my fonts. I think being able to set a beautiful “Candara” font to JIRA, Gmail, Google Calendar, Jenkins, YouTrack and TeamCity is the best thing that happened to me in years!

Sorry, I got carried away but Stylebot and Candara have done wonders for me.

Back in Google Docs I had to specify and re-specify document’s fonts every two lines as the application was constantly insisting on a default one. Being disappointed with this small annoyance I tried Zoho Writer and thought it would be better. Unfortunately, it was not, things only became worse. So I gave up again on the idea of “Web Word” for taking personal notes. And it’s not only various bugs, that will be fixed sooner or later, which made me give up.

I believe that the number of seconds that pass from the moment a thought appears in one’s mind to the moment it’s written down is critical. If it’s more than a second or two, then it’s way too long. And that’s exactly what happens with Web applications today: I need to open a browser, click the shortcut, wait, and then do some more clicking before I can start typing. As much as Google, Mozilla and Facebook want us to live on the Web and build better browsers for that, we’re not there yet. Responsiveness of Web application is still much worse than that of desktop alternatives, no matter how many improvements are put into JavaScript virtual machines and SPDY protocols. Unfortunately, networking delays eat up all those improvements easily. For me nothing beats a desktop application when it comes to the start-up time and overall performance.

My second attempt was to keep some ".txt" files on a Dropbox drive and invoke them with Clavier shortcuts. It worked very, very well as I think that very few applications can outperform a Notepad or EditPlus when it comes to the start up time. Unfortunately, keeping notes in plain files didn’t scale. It worked fast but the notes couldn’t be tagged or formatted. Inventing ASCII arts for “important” and “very important” issues was fun but still looked like a joke.

Microsoft OneNote was my next attempt and I believe this application would be very close to perfection if it was available separately from the MS Office suite and had a built-in Web sync + Web access to the notes. But it has neither of those and even keeping notes on a Dropbox drive for syncing them between various computers, wouldn’t allow me to view them on the Web or from mobile application.

Evernote is my last and current setup. I can’t say I’m very original in that, this application is probably used by millions and works very well. The editor is not polished as that of OneNote, though. Not surprisingly, it is not easy to develop a rich editor and so far nobody even comes close to Word and OneNote. I think anybody who tried OpenOffice would probably agree with me.

All notes are available online, a great number of mobile platforms are supported, but Evernote’s sync is really a “poor man sync”:

  • It is a separate step and doesn’t happen on each "Save". While running it in the background from a number of computers that are always online, I had conflicting versions created more than once. After one of those conflicts overwrote a recent note with an outdated version I had to disable automatic sync and only run it manually now: open the app, hit F9 right away (git pull), type, save, hit F9 again (git push) and so on.

  • There’s no history of notes, like the one provided by Dropbox. Even a premium account makes a promise of recording a note only “several times per day”.

I really hope Evernote will follow the Dropbox lead here and will start syncing automatically on every "Save" while keeping a nice record of all versions. I wouldn’t mind paying for that. Having to manage conflicting notes or syncing manually is a no-go for 2011.


What’s your “taking notes” setup? What tools have been successful for you?

 
5 Comments

Posted in GTD, Web

 

Searching YouTrack with Chrome keyword search

23 Mar

Today’s “Integrating YouTrack in the Search Engines in your Browser” JetBrains TV is about adding YouTrack to Firefox list of search engines using its built-in Open Search support.

As I don’t use Firefox, I use Chrome’s “keyword search” to do the same by typing "t query":

"t" search is mapped to "http://evgeny-goldin.org/youtrack/issues?q=%s".

 
2 Comments

Posted in GTD, Web

 

Zoho Writer – a disappointment :(

03 Nov

For a long time I didn’t quite believe in a Web version of Word. Later, Google Docs and Zoho Writer made me think again, of course. After a while I decided to stay with Zoho and let it keep my textual notes. It seemed like an ideal solution for keeping data online, quickly and readily accessible from any computer.

There is only one problem with Zoho Writer, though: “Sign In using Google” comes without “Keep me signed in” option so one has to click the “G” button every time to see or update a document. As a result, documents can not be bookmarked either. “Ok, let’s just contact them” – this approach normally serves me well with most products and applications. Tweeting, posting a message in a forum or opening an issue is usually enough to get someone’s attention, sometimes even a quick fix or workaround on the same day.

But it didn’t work with Zoho. Tweeting to @zoho and @zohowriter caused no response. As well as commenting in a forum and writing a blog post.

Later, I decided to create a real document about generating Hudson jobs with "maven-hudson-plugin". And then I realized how unsubstantial my login problems were compared to writing a document! It was very painful but sending an e-mail to feedback@zohowriter.com with a detailed list of problems .. well, you know. No luck.

So I decided to post them here. Who knows, may be it will work this time.

  • “Sign In using Google” has no “Keep me signed in” option. Yes, one more time. I just hope this bizarre annoyance will be gone one day.
  • Zoho Writer switches to the default font, Verdana 10, every time it can, especially when working with bullets. As I was typing the document in Georgia 14 I had to repeatedly reapply my font.
  • .. but selecting a text that is partially Georgia, partially Verdana and applying new font doesn’t work. To switch to Georgia one has to select a Verdana-only text.
  • Pasting a text to a document has a disastrous effect: font is dropped to Verdana (again) and extra new-line is introduced for each line of the text pasted. I was pasting XML samples from Notepad to make sure they are free from any previous formatting.
  • For XML samples to use Courier New 10 it is not possible to select the snippet and apply the font, it only works on a line-by-line basis.
  • Default link target in Zoho Writer is “New window”, something that is arguably a good default value. I had to check it is changed to “Same frame” for every link in a document.


I think I stopped believing in a Web version of Word again. And I’m not going to try Google Docs since MediaWiki, or any other Wiki, is a perfectly good solution for publishing documents and code samples online. As for personal text notes, keeping a bunch of *.txt, *.doc or OneNote files in a Dropbox folder works ridiculously easy. With Clavier+ and some keyboard shortcuts I get to my favorite documents in a fraction of second. Take that, Zoho!

 
6 Comments

Posted in GTD, Web

 

Watch out, illegal Jetty URL

02 Nov

Is the following URL legal?


http://host?param=value

Well, for Jetty 7.x it is not. And I couldn’t understand why before a friend of mine pointed to a missing "/":


http://host/?param=value

As it appears, if you have a ContextHandler registered to service "/" requests, as we did, Jetty rejects any of them coming without a slash with 400 "Bad request" response.

If you try to use the first URL in a browser, it will add a missing slash automatically. But Apache HttpClient isn’t that smart, unfortunately.

Watch out!

 
No Comments

Posted in Code, Java, Web

 

Web reading – 3 simple tricks that actually work

31 Oct

I was looking for a good way to organize my Web reading for years.

The problem with the Web, as we all know, it’s just too big. Everything is there and it constantly throws new links on me in masses, never stops, even on the weekends! You get to Twitter for a second and whoops, you have 10 more tabs opened, don’t even mention checking Google Reader. For a long time I was hopeless. I had no idea when and how I can cope with online materials that become available daily and hourly.

But within time I developed a simple system that allows me to stay organized (and sane!) in my Web reading. Here it goes:

1. Stop tabs clutter.

This was the biggest problem and it was the first to solve. Tabs clutter had to go.

I believe that having 30 tabs opened for extended period of time says something about one’s lack of focus. Come on, you want to tell me you need all of them right now? You can’t deal with so many materials simultaneously. Or can you?

I was distracted by tabs that I didn’t need at the moment, even though I could always organize them nicely. But I didn’t open them for no reason, either, I just had to find a place where I’ll throw them away “for later”. Even though lot’s of capable extensions are available for that I used something simpler: Chrome bookmarks and Delicious.

Now, when I open a tab and review its content for the first time I make a quick decision a) if I really want to read it or b) it only provides a useful info I might need one day. If I want to read it, it goes to Chrome bookmarks, otherwise it is added to Delicious. But the point is – in both cases the tab is closed.

In my Chrome bookmarks bar I have two special folders: Q1 and Q2, Q is for “queue”.

Q1 is for “must read” links while Q2 is for “could read” ones. If Q1 is empty, I turn to Q2 but it may never happen. Since Chrome bookmarks are synced between all my computers, I get to read them wherever I go, which is my home netbook most of the time.

And that’s how beautifully simple it works: each new tab is quickly moved away from my radar to Q1, Q2 or Delicious. No tabs clutter anymore, no distractions.

Speacking of distractions, I could easily be carried away with new links as I browsed. Think of DFS vs. BFS. If I browsed in a DFS way, opening new links and going there as I saw them, it was much harder to keep reading focused and strucutred: web graphs have no “leafs” where one has to go back. Eventually I stopped DFS-ing, so to speak: all new links are in “store away” queues now and are mostly visited in a FIFO order (forgive me this computer science jargon), so it is a lined up and more disciplined BFS browsing.

2. Review “for later” links at least one day a week.

After answering the how question, my second biggest one was when. I couldn’t pick a right time for the act of reading.

In the morning when I come to the office? But I’m usually in a moоd to clean up my Inbox and start working.
During the day? I’m occupied with current tasks and find it hard to concentrate on reading.
Evening? Oh well, I’m just tired and may have other issues to take care of.

So I decided to dedicate one day a week for that purpose: Friday, a reading day. It is a weekend day when I do absolutely nothing except reading books and Q1 links. During the week I try to spend my free time doing things, like writing new blog posts, updating wiki or working on my own projects. But everything is dropped on Fridays, except emergencies.

And then I get it all – I’m not busy, not tired, with plenty of free time to enjoy the process. I also try to make my Fridays “themed” on a single subject, like WordPress optimizations, Groovy presentations or writing skills. This way I have less context switches along the day.

3. Know when to give up.

Obviously, I can’t read everything, neither can I ever know everything. But I don’t have to. My last trick is to know when to give up. Q1 links pile up? I just move most of them to Q2 which means I’ll probably won’t get there any time soon. So what?

3.5 Summarize.

This is something personal that I felt is really needed: summarizing. I saw that reading a book makes very little sence if I forget most of what’s written there after a month or two. So I started summarizing everything in my Wiki. If I see some cool Groovy or Git example, or a way to organize better Lucene indexes, I post it there right away. Finding later that particular piece of code becomes a matter of seconds instead of googling for it again. If I read a book, I do it twice: first time is a usual reading, like other people do, second time is when I read each chapter again and put a digested abstract of it in the Wiki. That’s how a summary of “Getting to Yes” was born and I plan to do the same for other books, worth remembering.

What are your reading practices? What works for you? Why?

 
4 Comments

Posted in GTD, Web

 

Neat Delicious trick – keywords combination

26 Aug

The real beauty of Delicious lies in keywords combinations.

I mentioned already that Delicious is my #2 most favorite productivity tool. Within time I developed a set of the most frequently-used keywords in the right column that can be combined with tags in the left column:

"hudson" - Mailing list - "ml"
"spring" - Issue tracker - "jira"
"ant" - API documentation - "api"
"jfrog" - Documentation - "doc"
"groovy" - Maven repository - "repo"
"maven" - Source code browsing - "code"


Now with a "d"-keyworded Delicious search I only need to type "d spring api" to get to

Lots of other useful combinations are also available:

"groovy ml" "hudson ml" "spring ml" "maven ml" "jfrog ml"
"groovy jira" "hudson jira" "spring jira" "gmaven jira" "jfrog jira"
"groovy api" "java api" "spring api" "maven api" "apache api"
"java7 doc" "java doc" "spring doc" "css doc" "html doc"
"groovy repo" "hudson repo" "apache repo" "plugins repo" "jfrog repo"
"groovy code" "hudson code" "spring code" "gmaven code" "groovypp code"


So jumping to a mailing list or API documentation for X is just a matter of "d X ml" or "d X api". Fast!

 

WordPress and FeedBurner feed

21 Aug

By default, WordPress generates the following feed link:

<link type="application/rss+xml" href="http://evgeny-goldin.com/blog/feed/"/>

After registering this feed at FeedBurner I wanted "http://feeds.feedburner.com/GoldinTheJunior" to replace the link above. Since my current theme, ChocoTheme, doesn’t provide an option to configure the feed link, I had to make some changes in the code.


1. Changing RSS icon link.

"wp-content/themes/chocotheme/header.php":


2. Changing <link type="application/rss+xml" href="..."/> link.

"wp-includes/general-template.php":

This will take you to the FeedBurner if you use Google reader RSS Subscriber or any other browser tool to subscribe to the site’s RSS feed.

3. Feed redirect.

Redirect of "evgeny-goldin.com/blog/feed" to "feeds.feedburner.com/GoldinTheJunior" is possible:

After activating feed redirect with RewriteRule in .htaccess file FeedBurner stopped pulling feed updates. It discovered a loop and stopped requesting the original URL. Indeed, if all feeds are redirected to a FeedBurner how does it get an original feed?

It is taken care by user agent conditions:

RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]

But I’ve settled with code modifications for now. It means I’ll need to take more care of WordPress upgrades as they will probably overwrite the “patches” shown above but I don’t mind re-applying them again after each upgrade. The fact that WordPress is developed in PHP makes it ridiculously easy to tweak its code where needed.

I want to specially thank Ms. Ileane Speaks and her new blog “Basic Blog Tips” for working on this issue together in “Basics of Blog Feeds and FeedBurner”. Thank you, Ileane!

 
 

Say “No” to ServletResponse.setContentLength()

05 Aug



javax.servlet.ServletResponse.setContentLength(int) is a new kind of Y2k bug. It accepts int assuming no files larger than 2Gb will ever be sent as an HTTP response.

If you pass a long larger than 231-1 which is exactly 2Gb, it overflows and negative header is sent in response.

Free Download Manager fails to download a file and Apache Commons HttpClient v3.1 downloads an empty one (need to check version 4)

Too bad Java SE did the same mistake and java.net.URLConnection.getContentLength() returns int as well, it means the API will never be changed.

Right now the solution is to use HttpServletResponse.setHeader(String,String):

long length = file.length();
..
response.setHeader( "Content-Length", String.valueOf( length ))

Other APIs have taken the right route though:

 
1 Comment

Posted in Spring, Web

 

Moving to YouTrack from Nozbe

18 Jul

I’m a big fan of productivity and GTD tools. After posting my previous article someone on DZone has mentioned Nozbe, an on-line time- and project-management application.

That sounded interesting as I’ve switched a number of approaches already, trying to track all my various online and offline activities. My last attempts were “Remember The Milk” and doc/excel files, kept in Zoho. Somehow, it just didn’t work. I guess a big part of that “didn’t work” problem had something to do with self-discipline, but my technical side was blaming the tool ..

So I didn’t mind trying out a new one! To tell you the truth, after watching the course I was overwhelmed and sold on the spot. Wow, what an amazingly cool tool, I have to try it!

Two months later I was running out of capabilities offered by a free Nozbe version: 5 projects and 5 “contexts” (“tags”). First of all, it worked! All my TODOs have finally stopped to pile up and actually started to get done. But, secondly, working with Nozbe was always a pure joy. It was fast, easy and sexy, anytime. Alas, as I said, I was running out of free version capabilities: adding new tasks, issues and ideas was so easy and fun now. Obviously, I had to start paying.

But then I stopped.

The thing is I was about to start using YouTrack issue tracker from JetBrains for my personal projects. Since I’ve already purchased a YouTrack license, can it be my Nozbe replacement? Not an easy task, as you can see, I was in love with Nozbe.

But after initial period of trying it out I switched and migrated all my Nozbe issues to YouTrack, now running at evgeny-goldin.org/youtrack.

I believe most people really need a task management tool like Nozbe. Otherwise, how would anybody get anything under control? But every software engineer knows there’s a thing called “issue tracker” so why not using it instead?

Not to be mistaken, issue trackers are built for a different purpose. At the very least, their basic language is:

  • “Issue priority”: major, minor, critical, show-stopper
  • “Issue state”: submitted, fixed, won’t fix
  • “Issue type”: bug, task, exception, feature

This professional lingo will surely confuse and distract those not dealing with “bugs” on a daily basis. But it’s a mother-tongue for me. I don’t mind assigning “priorities” to “tasks” and changing their “state” to “fixed”, when done. So I decided to stay with YouTrack and use it for all my needs for the following reasons:

  • Feedback. Nozbe has a good forum but somehow, I wasn’t able to get any response to a question or feature suggestion. It’s a totally different story with JetBrains, normally I get a quick response when opening an issue. This is the standard for JetBrains and I’m not surprised: I know this company and use its flagship product, Intellij IDEA, for more than 8 years already.
  • I paid for YouTrack already. Running two similar tools just seemed awkward to me, not to mention the extra money involved: I would start thinking too much about whether an issue belongs to YouTrack or Nozbe.
  • Features. As always, it is hard to beat JetBrains in this area:

  • Text note is an issue. Nozbe merely attaches text notes to an issue while in issue tracker, a text note is an issue. There’s no need to switch between the two, something that annoyed me quite a lot in Nozbe.


All in all, YouTrack is superior to Nozbe but rightly so, it’s an enterprise-class software development issue tracker and not just a simple task management tool. But it can’t be used by everybody:

  • There’s no SaaS version available as of today, one would need to setup and host it somewhere.
  • It can’t be used by non-developers, it would be too powerful for many people.


But if you are a developer and you don’t mind running your own YouTrack instance hosted somewhere than I highly recommend to give it a try. After all, most of us probably know how good JetBrains product are so I’m all for making this one #1 in its class as well!

 
No Comments

Posted in GTD, Web

 

Backup techniques. Saving my life.

26 Jun

There’s one thing I’m usually a bit paranoid .. or obsessive about. It is a backup. Whatever I do and whenever I work there’s alaways this little thought running on the back of mind: “Is there a backup? What happens if the disk goes down tomorrow morning?” Over time I have developed some straightforward and simple backup techniques I felt like sharing with you.

I’ll describe what do I backup and how. With so many “datas” surrounding us (cellphone numbers, browser settings, delicious links?) it is easy to miss important things so I hope my list of “what” may give you an idea or two. Of course, your feedback is much appreciated in case something is still missing!

“What”:

  • Local data: movies, music, e-books, photos, documents, desktop links
  • Online data: Gmail, Google Reader, delicious, Nozbe, WordPress, Zoho, Wiki, Mindomo, Dropbox
  • “evgeny-goldin.com”
  • Cellphone numbers and calls, in case you record them
  • Browser settings and favorites
  • Installed applications setting


It may surprise you I backup my online data that is probably backed up by service providers anyway. What for? The reason is I don’t trust them.

I assume anything can go wrong with my Gmail account or my Nozbe notes. It only takes a little effort to export the data and most services provide a convenient “export” option just for that. For that purpose I keep an “Export” folder in Chrome allowing me to run all exports at once.

Can’t be easier!

 

“How”:


There are on-line and off-line backups.

Off-line backups start with external drives, kept off-site.

Remember: no backup is real if data stays in the same building.

A fire or a blown pipe, however surprising, can destroy it all and then it’ll be really painful. I have 2 external drives, 1Tb each and one of them is strictly for off-site backups, kept someplace else.

That’s where all my music, movies, photos and e-books go to. The other 1Tb drive serves mostly the same purpose but as I keep it at home I consider it a “temporal” backup.

For on-line backup anything less than 1Gb goes straight away to Dropbox. Later, I backup my Dropbox folder to the same external drives mentioned above. Mmm .. a backup to backup ?

 

“The Devil is in the details”:

  • Zoho, Wiki, Mindomo: When I work with Zoho I export documents as "*.doc" files at the end of the day. Similarly, when I finish editing Wiki articles I save the text markup. Free Mindomo version allows to export mindmaps as "*.png" images.
  • Gmail: I used to run Gmail Backup to backup my Gmail account but have recently switched to a Thunderbird installed locally. It is started weekly, 4AM every Saturday and by the morning I surely have it synced with my Gmail account and all messages downloaded to external drive.
  • “evgeny-goldin.com”: I use hoster backup service to backup the whole site. In addition, I copy some files manually, when needed.
  • Cellphone: To backup cellphone data I use Nokia PC Suite backup + contacts export. It’s important to export the contacts in plain text in addition to standard Nokia backup. This way they can be printed, another way of off-line backup, and I won’t be tied to Nokia when restoring the data.
  • Chrome: To backup FireFox settings I used to run MozBackup, an excellent tool! But for Chrome I now use Google Chrome Backup. Chrome’s built-in syncing helps a lot here though I also use Xmarks Bookmarks Sync .. just to feel better, I guess :)
  • When I type this post I keep pressing “Save Draft” ever so often! WordPress allows to click “Save Draft” and then “Preview” to run both of them simultaneously, which I do quite a lot on post writing final stages.

 

Now, what did I miss?

 

P.S.
WP 3.0 visual editor isn’t really usable as it destroys some of original HTML formatting, much like Confluence :( Well, I guess I’ll never start using visual editors. Nothing beats good old HTML or wiki markup.

 
2 Comments

Posted in PC, Web