Tampilkan postingan dengan label Simple. Tampilkan semua postingan
Tampilkan postingan dengan label Simple. Tampilkan semua postingan

Rabu, 27 Juli 2011

RecallMonkey Brings Simple Search to Firefox History

Where was that page you were just looking at a few days ago? If you're a Firefox user, answering that question just got a lot simpler. Yes, the browser offers simple bookmarking and niceties like bookmark folders and multi-browser sync — and yes, there are hundreds of add-ons to help you categorize, tag, export, import, and file your links in every conceivable way. But all too often, re-finding that page you just took a casual look at is still easier to do with a Web search engine — and that's the premise behind RecallMonkey, which gives you a search-engine-like interface to your own browsing history.

In earlier times, primitive Firefox users trying to claw their way back to a particular page from their history had but one way to do it: open up the "Show History" pane (Control-Shift-H on Linux), and sift through page after page of URLs. There was a simple pattern-matching search box, but the results it returned were inflexible (no fuzzy matching or complex queries), and there was no search-within-results option with which to drill further in. In desperate moments, later Firefox users had another option: start typing words into the Location Bar (a.k.a. "Awesomebar") and wait patiently while the browser churned up a few page titles that vaguely matched ... most of the time. No one was happy with either option.

RecallMonkey takes the Web search experience as its cue. It is a product of Mozilla's Mozilla Labs R&D group, and specifically an outgrowth of Prospector, an experiment to make browsing friendlier by making better use of data about your browsing session — what sites you visit, when you visit them, what you bookmark or tag and what you don't.

The basic idea of RecallMonkey is that in place of the History window with its static, sorted list of URLs you've visited, you can access a live-updating, JavaScript-powered search engine that mines that same history, but in a more natural way. Like Google and the other major Web search engines, RecallMonkey's results start with a search term, but allow you to exclude or prioritize particular domains, narrow the time range displayed, and highlight URLs you have bookmarked. The search is not limited to exact matches, either, taking a page from the popular search engine services and offering some degree of "fuzzy" matching.

Just to be clear, RecallMonkey does not present you with different items than Firefox's static History view component or Awesomebar — it just uses a ranking algorithm and the aforementioned utilities to give you a better chance of finding what you're after than does a simple keyword-based match. It also runs within the browser window, so you can even pin it as an "app tab" and have it at your fingertips all day long.

Aside from the feature set itself, another nice thing about RecallMonkey is that it is written entirely in Mozilla's new, lightweight Add-ons SDK — meaning the complete experience is handled in HTML, CSS, and JavaScript. That means wider compatibility with different versions of the browser, a faster development cycle for the engineers at Mozilla Labs, and vastly simplified installation.

RecallMonkeyYou do still need to visit the RecallMonkey add-on page to download and install the extension. The current release supports all versions of Firefox since the 4.0 release. However, because RecallMonkey is not written in XUL, chrome, or other hefty extension mechanisms, there is no need to restart Firefox. You can start using the extension immediately after the Add-ons wizard says it is finished.

At least, that's the theory. The one wrinkle worth looking out for is that RecallMonkey adds an item to the browser's History menu, and this menu item may not appear immediately. It will be present when you next re-launch Firefox, though. But you can still fire up RecallMonkey with the keyboard shortcut Ctrl-Shift-M. This opens a new tab, loading a distinctive resource:// URI.

What you get is a search box across the top and four refinement tools down the left hand side. Search queries are live, with results updated as you type. The list is sorted — although I cannot find any in-depth documentation of the algorithm, it seems to weight frequently-visited pages higher, and try to mix in results from multiple domains. Only one screen-ful is loaded at a time; as you scroll down additional hits load on-demand.

For now, the refinement tools include a time selector with five options (Last 24 Hours, Last Week, Last Month, Last Year, and All Time), a "Prioritize Bookmarks" check-box, and tiny little arrows and X's next to each result. Clicking the X excises the entry's domain from the results and adds it to an "Excluded Sites" list on the left. Clicking the arrow adds the domain to the "Prioritized Sites" list.

It seems that both of these site-based features are limited to the base URL, which is useful but has its weaknesses. I'm hopeful that further refinements will let me differentiate between (for example) search results originating from www.google.com/search? and Google Reader pages originating from www.google.com/reader/view/. It does not appear that there are any special operators (such as using the plus sign to require an exact match for a particular term), but double quotes do seem to be interpreted as a phrase search.

In any particular search, the prioritize and exclude filters help you hone your results quite quickly. The live-updating list is fast, and to my eye the fuzzy matching (however it is done) does not produce any significant number of head-scratching "false positives." I'd rather see an actual description of the search algorithm than have to figure it out on my own, but then again this is a Labs release, not a finished product.

Speaking of which, as convenient as RecallMonkey is, you can never forget that Mozilla Labs tools are, ultimately, experimental. There are risks, and producing bullet-proof code is not the goal — learning is. RecallMonkey's functionality might be one of those experiments that (like the Internet) proves so useful that it quickly outgrows the lab and engulfs the world. On the other hand, it might be more like any of the more numerous experiments that escape from the lab, and wreak widespread havoc on the world ultimately being destroyed (see any number of old Sci-Fi movies for reference).

After my own tests, I definitely lean towards the "useful" outcome, but even so the present-day extension comes with some caveats. After using RecallMonkey for a few days continuously (keeping it open in a tab), I found Firefox's in-page content to be slower and highly prone to spontaneous crashes. No such trouble was found when closing RecallMonkey in between uses. I obviously cannot prove that RecallMonkey was the culprit (in part because I use about a dozen extensions — not even Mozilla Labs can guarantee that independent extensions do not interfere with each other), but it seems like the most likely source. Because the XUL UI was unaffected, page content's poor responsiveness is more likely to be due to the JavaScript engine than anything else, and RecallMonkey is a JavaScript-driven extension. Your mileage may vary.

Still, when used with restraint, RecallMonkey offers a noticeably nicer experience than the default session history interface. This is also the first Add-ons SDK extension I have tested, and I was impressed by that feature as well — enough so that I have started looking into the SDK itself.

I hope RecallMonkey is here to stay, although it desperately needs documentation of the search matching heuristics, a few more search operators, and to properly set its page background color rather than just assume we all use white. The alternative is to go back to using the History pane, or worse yet, to count on Awesomebar's unpredictable black-box matching. Neither one gives you much power to shape the search process, however, and giving users the power is what open source — and Firefox — are all about.

Comments (1)Add Comment
You must be logged in to post a comment. Please register if you do not have an account yet.
busy

View the original article here

Selasa, 24 Mei 2011

Pinta Turns 1.0 and Brings Simple Image Editing to Linux

Pinta, a "lightweight" open source raster image editor, turned 1.0 on April 27, offering Linux users another choice for simple image editing. Pinta is intended to be a clone of Paint.NET, the Windows-only raster editor written in .NET. As such, it uses Mono under the hood, but it gains the ability to run equally well on Linux, Mac OS X, or Windows. Is it a replacement for GIMP or Krita? That depends on what you need to do.


The Pinta Web site hosts downloadable packages. At the moment, the 1.0 offerings are provided as a tar archive for Linux, and ready-to-install binaries for Windows and Mac OS X. Also linked in are Mono and GTK+ packages for the proprietary OSes, and a link to the source code repository on Github.


The 1.0 release is new enough that your Linux distribution is not likely to have packages yet; in that case you can grab the tar archive. The compilation process is a straightforward ./autogen.sh; make; sudo make install 3-step shuffle. Pinta is GTK+-based, so it requires at least a portion of the GNOME stack to be installed, but it should run equally well on GNOME, KDE, and other desktop environments. You will need the Mono runtime version 2.8 or later.


Pinta builds on top of an older release of Paint.NET, from back when the latter program was available under the MIT/X free software license. Paint.NET's author decided to take it down a proprietary path about three years ago, and since then Pinta has been on its own trajectory. The broad goal remains essentially unchanged, however: a raster graphics editor that is simple to use, while still providing the essential features a casual user would want from a heavyweight tool like GIMP, Krita, or Photoshop.


What you get with Pinta is indeed a subset of what you will find in GIMP. Drawing tools, just not as many of them. Filters and effects, but a smaller collection. Layers and image adjustments, but not every feature. For a lot of people, of course, that is perfectly fine. The only question is how to determine which group you fit into.


Pinta CurvesOn the tool front, Pinta offers freehand paintbrush and pencil tools, straight-line and geometric primitives (ellipse, rectangle, and rounded rectangle), gradient and bucket fill, eraser, and rubber-stamp "clone." There are also two non-standard tools (meaning only that most painting apps do not feature them): "recolor" and "freeform shape." The recolor tool lets you paint over the canvas with a hue-shift effect rather than creating new brush strokes as you would with the paintbrush tool. The tool's "tolerance" slider allows you to customize what pixels are affected (although its exact behavior requires a little experimentation; it seems to be doing what I would call "darken-only" painting, but this is not explained in the tooltips).


The freeform shape tool lets you draw a closed figure by freehanding as much of its outline as you like, with the app automatically closing the curve with a straight line from your stopping point back to your starting point. You could essentially do the same thing with the paintbrush followed by the straight line tool. What's more interesting is that Pinta offers this same behavior in its lasso selection tool; it beats the old-fashioned auto-shape-closing behavior because you can see the entire outline of the selection as you draw.


The other selection and navigation tools are pretty standard fare: rectangles, ellipses, and a "magic wand" for selecting contiguous colors. The text tool offer basic font, size, weight, and alignment choices. In each case, the app places the tool options on a menu bar across the top of the canvas; this is a bit handier than GIMP's below-the-toolbox palette, and is similar to what Krita offers.


Pinta keeps a color palette below the toolbox, a layers palette on the right-hand size of the canvas, and an undo history beneath the layers. One of the nicest features of Pinta is that it always preserves a complete undo history for the file, rather than limiting you to a fixed number of stored undos (which you can rapidly run out of when making a lot of adjustments).Pinta Select


Speaking of adjustments, Pinta offers basic photographic adjustments, through levels, curves, hue/saturation, and brightness/contrast controls. Those essential features support what most people need in order to breathe life into a weak photographic image. It appears that Pinta only supports RGB images, although I could not find documentation to that effect. In any event, there doesn't appear to be tools for switching images between RGB, RGBA, gray-scale, and indexed color.


The Effects menu hosts a tableau of about 30 image filters, ranging from simple blurs to artistic effects (such as "ink sketch" or "oil painting"), plus various distortions, edge-detection, and other fun stuff. Most are configurable through a pop-up dialog, but some run immediately without the chance to adjust any filter settings. There are a handful of photo-retouching effects, such as red-eye removal, and a few special effects are tucked away in other places in the menu structure (such as sepia-toning, which lives in the Adjustments menu).


You can also resize the canvas (by scaling it or adding extra space), do simple rotations and flips, and reorder and duplicate layers. At output time, you can save your work in BMP, ICO, JPEG, PNG, TIFF, TGA, or OpenRaster format.


It would be tempting to say something simple like "Do you find GIMP and Krita confusing? Then use Pinta!" But you have to look more closely at what each application offers to really know if it meets your needs.


Sure, Pinta 1.0 leaves out tools and features that non-professionals probably won't miss, such as masks, paths, pressure-sensitivity, or "darkroom" style controls (dodge, burn, smudge, etc.). But there are some features I was surprised to find left off in this release, starting with brush shapes. There aren't any; a solid circle of variable radius is the only choice. My impression is that casual users perform a couple of different activities with shaped brushes: stamping images as decorative elements, and painting out objects. For the first, you need a selection of pre-made shaped brushes, and for the second, you need brushes with "soft" or blurry edges.


I was also concerned by the limited choice of transformations available. One of the most common casual operations is pasting one image into another (think "kitteh" superimposed over, well, almost anything). You can paste an image into Pinta as a new layer, but you can't scale it. You also cannot really blend layers (although you can set the opacity of each layer, but the option is only available by opening the Layer Properties dialog from the Layers menu), and you cannot edit text after it has been pasted on the canvas.


There are a couple of other minor nitpicks that I would call out if Pinta was interested in being a high-end painting application (such as the gradient tool, which doesn't offer much control), but I picked out the above examples because I think they might actually affect a new user's ability to get stuff done. Your mileage may vary, of course, and it depends in large part on your expectations.


All in all, what you get with Pinta is a very capable, but limited-in-scope, set of image editing tools. If your primary concern is moving up from the highly-restrictive sliders in a dedicated photo manager like F-Spot, you'll be pleased, particularly with the Effects available. But if you're needing to combine images or make annotations on top of a photo or diagram, you may be frustrated once or twice.


I almost mentioned another issue in the previous section, which was that I found the recolor tool difficult to figure out. At first, I chalked that up to it being a different approach than I am used to in GIMP and Krita, but then it hit me: the real source of the trouble is that there is no documentation. At all. That's something that the Pinta project needs to fix, and soon. The developers have done an excellent job preparing the application in more than 40 languages — heck, I'm not even sure I could name 40 languages, without looking. It's time to rally those contributors into helping create a good manual to accompany the app.


On the whole, Pinta 1.0 lives up to its "Painting. Simple." mantra. I don't want anyone to take my assessment of the missing features to mean disappointment in what Pinta is or what it does; it is simply a matter of knowing your tools. Developer Jonathan Pobst has already commented on the Pinta mailing list that he is gearing up for the next release cycle, gathering requirements and wishlist items, so it's a safe bet many of the missing pieces in 1.0 will hit 1.x or 2.0 before too long.


In the meantime, Pinta is even worth a look if you're an experienced designer more comfortable in Krita and GIMP, because there are nice touches all around the UI. I love the simple +/- brush size adjustment buttons; they beat clicking and dragging a reduced-size brush silhouette. Likewise, it's great that you can grab a selection outline with one arrow-tool and move only the outline — other apps hide that functionality behind modifier keys. And do I even need to say anything about unlimited undo history?


View the original article here