16 Software
Breevy: A text expander that lets you insert long words or phrases and launch apps, websites, and more just by typing abbreviations.
IcyScreen: Automatic screenshots. Have them saved, e-mailed, and uploaded.

Special-key "pressing" support added to Breevy.

One of the cool features added to Breevy 2.30 (released today) is the %(Key), %(KeyDown), and %(KeyUp) macros, which allow you to instruct Breevy to simulate "special" key presses like the Home key, the Insert and Delete key, the Ctrl, Alt, and Escape keys, etc.

Letters, numbers, and other characters could already be typed by Breevy when their corresponding abbreviation was typed by the user (for more on how Breevy works, and how it can help you get things typed much faster, click here). Prior to v2.30, however, key combinations and keys that don't display a character when typed -- Ctrl, Alt, etc -- couldn't be, because there was no way for them to be represented in an abbreviation's replacement text field.

But with the addition of the %(Key), %(KeyDown), and %(KeyUp) macros, now you can instruct Breevy to press those special keys and key combos.

For example:

  • %(Key Ctrl+Alt+H) tells Breevy to press Ctrl, Alt, and H simultaneously

  • %(Key Ctrl+Tab 10) tells Breevy to press Ctrl and Tab simultaneously a total of 10 times

  • %(KeyDown Alt)01234%(KeyUp Alt) tells Breevy to simulate a press and hold of the Alt key down. Breevy will then type '01234' and then simulate a lift ("keyup") of the Alt key

  • Hello!%(Key Ctrl+A+C) tells Breevy to type Hello!, then simulate a press Ctrl+A and Ctrl+C -- effectively causing the word Hello! to be selected and copied to the clipboard

For more info, just press F2 while in Breevy's main window.

Posted by Patrick on February 23, 2010 at 3:00pm | 0 Comments
Tagged: and

Importing Your Microsoft Word AutoCorrections into Breevy

Today we released Breevy 2.24, which adds support for importing your custom Microsoft Word AutoCorrect entries automatically.

All you need to do is click File -> Import Microsoft Word AutoCorrections and they'll be imported for you.

You can then disable AutoCorrect in Microsoft Word, since Breevy can replace your AutoCorrections universally in any application, not just Word. hahahah

Posted by Patrick on January 6, 2010 at 5:00pm | 0 Comments
Tagged: , and

Automatic screenshots with IcyScreen

Automatic screenshots -- also known as timed screenshots, automatic screen captures, or automatic screen grabs -- are a great way to document, for whatever purpose, what was shown on your computer screen at different times throughout the day.

For those who aren't familiar with the term screenshot, it's essentially an exact duplicate of what is being shown on the computer screen, saved in high-quality picture form (JPEG, PNG, etc), that can be viewed on any computer.

IcyScreen is a powerful software program of ours that can take those screenshots for you, and even e-mail or upload them to the Internet (see below)... automatically, of course. 8)

IcyScreen has a lot of features, but it's also straightforward and easy to use. All you really need to do is tell it how often you'd like a screenshot to be taken -- every second, every 10 minutes, every 3 days, etc. -- and then where you'd like the screenshot to be saved or sent. Then just click the On button and IcyScreen will faithfully do its job, taking screenshots as often as you told it to.

Currently, IcyScreen can save, send, and upload screenshots automatically using four different methods (you can use all four, or just pick and choose):

  • Disk: Screenshots will be saved to your hard drive, for example to C:\screenshots.
  • FTP: Screenshots will be uploaded to a web/FTP server via FTP. This method is great for if you want to share screenshots with customers or even your employees, no matter where they are. You can even view the screenshots in a web browser.
  • E-mail: Screenshots will be e-mailed to each e-mail address you specify. You can specify an unlimited number of e-mail addresses, and can even include a message in the e-mail.
  • ImageShack: Screenshots will be uploaded to your ImageShack image hosting account (which is free).

If you've got an idea for a save or upload method you'd like to see added to Icy, send us an e-mail and let us know about it.

As mentioned earlier, there are lots of optional settings you'll probably find useful, too. You can customize the screenshot image format (GIF, PNG, JPEG, BMP...) and dimensions, set dynamic file names using timestamp and format codes, choose which monitors (and what parts of each monitor) should be included in the screenshot, decide when Icy should skip a screenshot (like if the computer has been inactive or the screen hasn't changed), and set whether you'd like a screenshot to be taken of the entire screen or just the active application window.

For more information about IcyScreen, and for a link to download, check out the IcyScreen website. And if you have any questions feel free to shoot me an e-mail and I'd be happy to answer them for you. hahahah

Posted by Patrick on December 17, 2009 at 1:02pm | 0 Comments
Tagged: , and

An even cooler-looking Opera skin...

I know I just recently posted about how I liked the WinSeven Opera skin...

But a week or two ago I came across the Simple 2 skin and I like it even more. It's a lot like the standard, default Opera 10 skin, except it uses the more colorful classic icons from the older versions of Opera.

Needless to say, Simple 2 is my new favorite Opera skin. :D

Posted by Patrick on December 17, 2009 at 12:27pm | 0 Comments

Even faster row-insertion in GTK+: Sort it yourself!

A little followup to my last blog post, I actually discovered that temporarily disabling sorting in your list or tree store before populating it:

     gtk_tree_sortable_get_sort_column_id(sortable, &sort_col, &sort_order);
gtk_tree_sortable_set_sort_column_id(sortable, GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID,

... and resetting the sort column after populating:

     gtk_tree_sortable_set_sort_column_id(sortable, sort_col, sort_order);

... is slightly faster than just calling gtk_list_store_insert_with_values()... about 8-10% faster by my calculation, actually. So it's definitely worth doing.

But still, even with this optimization, and the optimization I talked about in my last blog post, populating a sorted store with thousands of rows was just still way too slow IMO. Unacceptably slow.

So the other day I wondered if it would be faster to:

  • Turn off sorting permanently by setting the sort column ID to GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID.
  • Manually sort the data in memory before populating the store.
  • Insert the rows into the unsorted store in the order that the data was sorted in memory.

I figured it was worth a shot... it didn't take too long to implement at all, and I was happy to find I was right: This method is just barely slower than populating an unsorted store without sorting the abbreviations in memory first, and about 10x faster overall -- very, very noticeable -- than when letting GTK+ do the sorting for me. A *huge* speedup. Totally sweet.

Of course, it's slightly more inconvenient, and there's also small bit of work involved, to visually simulate what GTK+ does when you click a sortable column's button, but it's not difficult at all... it's basically a matter of manipulating the TreeViewColumn's arrow widget with gtk_widget_show() and gtk_arrow_set().

Another benefit to handling the sorting yourself: By default, GTK+ darkens the sort column if there are more than 3 sortable columns in a tree view, and there's not any way to avoid this yet (though I submitted a patch that created a style property that would let you disable this). Handling the sorting yourself means no darkened sort column.

I'm really happy about this major speedup, because I had a long list of abbreviations (over 13,500) for medical transcriptionists that I really wanted to include with Breevy, but before this optimization (<= 2.05), they took far too long to load in the main window, so I put off including them until I could find a way to speed things up.

But now, with this speedup included in version 2.06 (out now), they load in about half a second on a 6+ year old Pentium 4 @ 2.8GHz... so the medical transcription list is now included with Breevy. 8)

So to wrap this post up: If you're going to be inserting thousands of rows into a GtkTreeStore or GtkListStore, and need some sort of sorting, I would definitely recommend handling the sorting yourself instead of letting GTK+ do it. I love GTK+, but this is one area where I think GTK+ could use some improvement, performance wise. hahahah

Side note: GTK+'s default column sort function uses g_utf8_collate() when comparing string data. This function is pretty darn slow (it's the nature of the beast, apparently). If you don't need any of it's features, I would definitely implement your own sorting function for your sorted columns and use strcmp/strcasecmp instead. You'll get a pretty noticeable speedup from this optimization alone, though not nearly as much as if you were to handle all of the sorting yourself.

You might check out the g_utf8_collate_key() function if you still want to use g_utf8_collate().

Posted by Patrick on November 17, 2009 at 3:32pm | 0 Comments
Tagged: , and

← Previous  1 2 3 4 5 6 7 Next →