topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Friday April 26, 2024, 12:24 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - tranglos [ switch to compact view ]

Pages: prev1 2 [3] 4next
51
What would be the most effective and free solution to convert a bunch of html 4.0 files to pure xhtml? Ideally without having to open each file individually in some editor? (Not an online service either, because it will take ages to do for a lot of files.)

I've been trying Html Tidy, but I can't figure out how to make it output utf-8 or even ISO codepage characters. Whatever settings, I try, it insists on outputting diacritic ("high ascii") characters as entities, such as {.

52
FeedDemon is now at 3.0, and instead of continuing with the NewsGator subscription service, it now offers syunchronization with Google Reader. I thought it was great, downloaded and installed v3.

Then I saw FeedDemon now displays ads.

I went back to the website looking for some disclosure, but there's nothing (at least nthing I can readily see). I revisited Nick Bradbury's post, Introducing FeedDemon 3.0, thinking that such a change would merit a mention in What's New, but no.

I uninstalled, cleaned every last trace of FeedDemon from under "Documents and Settings", then reinstalled FD 3, expecting to find some big red warning on the license page that I had somehow missed. Turns out I didn't miss anything - the license does not mention the ads, or if it does, it must be in some inscrutable language.

It seems to me that by not disclosing the advertising prior to installation, NewsGator runs afoul of the law in some countries. It used to be the typical evil practice in the early days of adware, but today we expect to be told before we install. This is particularly important because of the following:

When you first launch FeedDemon, before you see the main program window with the ads in the corner, FD asks you if you want to synchronize with Google Reader. This means entering your Google account username and password in the program. I was naive enough to trust Nick Bradbury, and did so. Only then did I see the ads first.

This leads to a number of questions:

Since FeedDemon does not disclose the fact that it has become adware, what else does it not disclose? Are the ads context-sensitive? Does FeedDemon share my subscriptions and the articles I read with NewsGator or with third parties? The license does not say it doesn't, so my assumption is that it may.

Secondly, does FeedDemon share my Google Reader username and password with NewsGator or any third party? Again, the license doesn't say.

NewsGator privacy policy does admit they "collect" (a) subscriptions and (b) "Data from actions you take on posts (for example marking read, saving, forwarding via email, etc)". It is not clear though whether this relates only to the online activities (the NewsGator paid aggregation service, if it still exists), or if it also affects desktop sofware like FeedDemon. FeedDemon itself bears no privacy-related information.

Now, it is entirely possible that I am the last person in the world to find out FeedDemon is now adware. Sure, there are mentions on the support forums. However, users cannot be expected to see the forums before they install the software. This does not count as proper disclosure before the fact.

As if that were not enough, FeedDemon manages to add add insult to injury. After the installation, and after it synchronizes with Google Reader, FeedDemon asks if you want to add its suggested subscriptions. I selected "No, don't subscribe me to anything else right now" and proceeded.

Result: FeedDemon displays my Google Reader subscriptions, as well as a bunch of new junk subscriptions I specifically told it to exclude. What's worse, it pushed those additional subscriptions to the Google Reader account, thereby polluting it with lots of stuff I now have to remove manually. This may be a bug, but you'd think something like that would have been easily caught in beta, so who knows if it really is a bug. (Just to be sure, I repeated the entire uninstal / scrub / reinstall process twice, thiking maybe I did not check the right option the first time. The effect was the same both times.)

You can pay (under $10) for a key to remove the ads, and that's okay, since I first registered FeedDemon in 2004 and would not mind paying for an upgrade. But I cannot with clear conscience support NewsGator's policies. And first I would like to know how much of my Google account data has already been leaked to NewsGator or their advertisers without my permission. Come to think of it, it's quite sickening. A very annoying experience.

53
Interesting (and realistic) explanation why hard links are not directly available on Windows, even though NTFS supports them. By Raymond Chen, a Microsoft API guru.

His is a fascinating blog about why certain things in Windows are the way they are. Some of the content is programmer-only, but much, like this entry, is accessible to all who care.


54
Abstract:Available content management systems don't quite deserve the name, I think. They manage the styling of a site. They manage a database of articles. They can adorn a site with cool little widgets like menus, polls, galleries, banners, trackbacks, blogrolls, tabs, sliders and carts... that is, all the stuff that happens around the content, and in addition to it. They manage the layout, too - but again, only of those outer encrustations, not the layout of individual pieces of content. In fact, CMS-es seem to manage all aspects of a site *except* for the content. So what do you do when it is your content that needs some management?

I have changed the title of this post by Mouser's entirely reasonable request. So here's how to...


Write a Better CMS.

Yes, really. Bear with me.

While my previous post in the series is still looking for some love, here's one more installment.

I can't believe I'm so different from everyone else on the planet that there is no CMS made just for my needs. And yet there isn't, which makes me think there's a big, BIG niche to fill, because I cannot possibly be the only one. (One would hope!) Before I say why I think this would fly and why it would sell, here's what the Better CMS would be like: modular. Modular on the level of text.

Most CMS-es are modular in the sense they let you pick and choose from available modules (the terms vary) that provide some functionality: a calendar, an ad banner, a photo gallery, a poll, etc. You can typically place these modules on sidebars, headers, footers etc., i.e. all around the core content of the site. But the content itself is not modular. And there's the rub.

I may be wrong, but CMS-es seem to have grown out of blogs. In some cases (WordPress) the demarcation between a blog and a CMS has become quite fuzzy. And at the risk of being totally wrong again, many of the big names in CMS world today (Joomla) may have actually started out as blogs. (Except TextPattern, which claims to be a CMS even before it has become a proper blog.) In any case, almost every CMS I have tried seems to be a "blog plus" - start with a blog, then add stuff to it. If you read the support forums, invariably one of the FAQs is How do I create a static page? Ah, because static pages were usually added as an afterthought, and don't necessarily fit in the overall scheme of things.(1)

If CMS-es are indeed bloggy by nature, this would explain why their "modularity" happens all around the content - the posts, the articles - but does not touch the content at all. It's the "blog plus" mentality: you write the blog, and we'll provide oodles of little gizmos you can put all around it.

That works if what you are publishing is conceptually a blog. It may be a serious and well-designed news site, but it's still a blog by heart. (Apparently most of my favorites run on Drupal, and there are some great-looking ones based on WordPress.) Recognize them by the URLs like www.site.com/2009/9/23/why-things-suck-the-way-they-are. That's a blog.

And while I'm sure there are orders of magnitude more bloggers that software authors on the planet, that's still a huge population. And they need something completely different. Something you cannot quite do with a gizmo-encrusted blog. I'd say they need modularity of content.

If you are selling (or giving away) only one product, you worry little about consistency. Just use a nice theme to make sure all pages have the same background color. But the moment you have two products or more, consistency in layout and design becomes a concern. Each product is going to have roughly the same set of pages: one for description, one for feature list, one for screenshots, another for download links, for support options, and maybe for payment. You want all these pages to have the same look and the same structure.

Try to achieve that by typing, or even pasting text in a WYSIWYG editor. Or even in a code editor. Not recommended, especially if your temper runs short. And certainly not recommended if you have other pressing priorities, like adding features to your software, fixing bugs, responding to support email or finding nicer-looking icons for the toolbar. (Or, God forbid, dealing with chargebacks.)

So a Better CMS should be based on templates, understood as forms to fill out with content. That way every page looks the same, and you can change the structure of all your "Download" pages just by editing a single template. That's one level of modularity, but we've barely scratched the surface.

A lot of your product pages will contain the same content. Maybe you want to put a warning, This app requires Windows 13, on every page. Or a link to support, or a Buy one, get one free button. That's text, or an image, plus some formatting. A block of content that you want to reuse on multiple pages - that is, in multiple templates.

A template, thus, should consist of blocks. Named pieces of text that you could arrange. This is nothing new - every site design allows for things like {header} {body} and {footer}. The problem with today's CMS-es is that they don't let you do that inside the {body}. Also, {header} and {footer} are not granular enough. These sections will consist of reusable blocks, too. So that's another level of modularity.

There is one more level to cover: that of text itself. It's easy to imagine what happens when you release a new version of your app: you have to update the documentation. All of it. Consistently. Change the version number in the app, in the readme file, in the help file, in the PAD file, in your DonationCoder thread, and everywhere on your website. It's not all easily automated (there are partial solutions), but it should be completely automatic on the web-side at least.

Ideally, things like the version number and release date should be placed on every page for your product, so that they're easy to find. In Joomla or WordPress, that pretty much means revisiting all those pages and changing the number and date in each article, making sure you don't screw up the surrounding content. And what happens if you decide to change your copyright string, or the name of a product? Isn't this one reason computers were invented in the first place?

What we need then is text substitution. The site is built from templates to ensure all pages look the same, but all pages do not have the same content. They differ: one page says "Download SuperFreeEditor 2.0", another says "Download SuperFreeEditor Pro 3.5". We have to have a dictionary, one for each product, that basically says "app-name=SuperFreeEditor", "app-ver=2.0" for one product, and for another product a dictionary that says  "app-name=SuperFreeEditor Pro", "app-ver=3.5". Then your template for the download page contains simply "Download {app-name} {app-version}".

There would be a "product" manager, where you would add the information specific to each product. That information would then be used to fill out the templates and generate pages. And presto, a CMS based on the time-tested DRY principle. You only enter the app name once, in one place. Likewise the version number. And if you have a specific important note that you want to plaster on every page for that app you simply add {BIG-HONKING-WARNING} to a section of a template. It's not complex or strange or anything. It should be the fundamental concept of a CMS, as long as you really want to manage content, rather than just manage the links on the page.

Oh, and let's not forget links. Take Joomla. Every article lives in a database and has a unique ID. But if, in the editor, you want to put a link to another article on the same site, you can either manually look up the article's URL, or use the awkward selector (where it's always easy to pick the wrong article by mistake). And if you ever move pages around, all your existing links will be dead. If you are using "clean" URLs, and one day change the title of an article, all your existing links to the article will be dead. Or, and this is particularly amusing, if you have two articles named "Screenshots" on your site (for two different apps, right?), links in the menu will all point to only one of the two. Unless you manually fix it, giving each article a unique slug.

So there should be two ways of linking. One, by the database ID of an article. It will never change. The link can only go dead if you delete the page. But a better solution is to borrow from wikis and add some smarts. Say you are on the main description page, and want to link to a "Features" page. With all the information the CMS already has, it should be enough to type {link:Features}. Not even {link:SuperFreeEditor:Features}, no. Because the CMS already knows the current page is part of the "SuperFreeEditor" section of the site. And as long as you have a page with the internal name "Features" (this might be the name of the template on which the page is based), the CMS has enough information to construct the right link. OMG, it's so simple! Where can I get it?

Nowhere. Nowhere I've looked, at least.(2)

Now, if you still want all the gizmos, knock yourself out. And there should certainly be a blog. And in the blog, I should still be able to say "Hey, I've just released a fantastic new version of {app-name}! {link:Download}Go get it!{/link}" See my point?

A nagging feeling is telling me all I've written above is trite. Captain Obvious stuff. The more puzzling to me is that this thing doesn't seem to exist.

Now, why would this thing sell? Two reasons: because programmers already have their hands full doing all the stuff I mentioned above and more. And if they can spend thousands of dollars on the latest compilers and libraries, they will happily buy a $99 CMS if it saves them weeks and months of grief. A shareware vendor building their own website from scratch is like a shopkeeper doing their own masonry. Some do, but it's not for everyone.

Reason number two, this could work for almost anyone distributing almost any kind of product, not just software. Just make sure the fields in the database are user-defined, not hard-coded to be "app-name" and "app-version" only. Sure, Amazon won't buy it from you, but plenty of one-man, one-woman shops will. I will!

To be continued, I'm afraid.

(1)  To put in a good word for Joomla, they got the static page part right.

(2) TextPattern has "forms", which are a little like my "blocks", but that's far from enough.

55
Looks like I'm about to post a fourth installment in my infamous saga.

I should have known better, since I had tried Joomla before and knew it didn't do a lot of what I needed. But it never occurred to me that it didn't do the "comments under articles" thing. Now I've taken the plunge and don't want to throw three days of work so far out the window (plus the commercial theme).

I know there are extensions that support comments. Trouble is, those extensions outsource comments to external aggragator sites like Disqus.com and a couple others. This is pretty much selling out not only the comments your visitors leave, but also their online identities, to for-profit entities, who will then sell that data to advertisers. Totally not a decent thing to do.

But maybe nothing else is possible, since if Joomla doesn't do comments by itself, it means the database does not have tables to hold them, and I don't know if a plugin can modify the db structure and talk to the db behind Joomla's back. Maybe, maybe not. Does anyone know of a functional comment extension that doesn't require selling out to Da Man?

Spoiler
(Incidentally, Joomla is not at all what I've been looking for. Certainly stitching the pages and menus isn't any easier or faster than hand-crafting html like we did in the old times :)  Thing is, it seemed like a high time to cut through the analysis-paralysis and get on with building the site. The thing I'm lookng for - I don't think it exists. Now here's a dumb question: How hard is to learn php enough to start working on a cms?)


56
I've been tempted to give DOpus another try for its "file collections" feature, without which I'm finding it more and more impossible to live. But the current version is still 9.1, which means I cannot install the trial anymore, since my trial license (and the 60-day extension) expired sometime in November 2007, almost 2 years ago.

It's pretty expensive even with the 25% DU discount, and if I understand their upgrade policy, version 10, when it comes, will be a paid upgrade. When was DOpus recently updated? Has anyone heard if a new version is in the works?



57
What would be the one program you would like to have most that is already possible but doesn't quite seem to exist yet? A Program Whose Time Has Come? For me, it would be a powerful sidekick to file managers: a program to manage virtual folders, a.k.a file collections, a.k.a file baskets/organizers... Hope someone comes up with a catchier name!

The time when the simple folder hierarchy ceased to suffice is long gone, isn't it? I've seen plenty of requests for such functionality on various forums, but strangely no real takers yet. I'll describe my experience with the existing solutions, pretty immature all, but first, here's what the program would do:

A virtual folder is a folder that doesn't exist physically on disk. It is merely a name for a collection of files selected by the user for whatever purpose or gathered automatically according to some criteria. The "whatever" is pretty darn big - I come up with new potential uses for such a program every day. Here are the three main uses of file collections I can see. (Please add others if my three don't exhaust the range of possibilities). Each of these uses requires slightly different behaviors, but it seems possible to accommodate them all in a single application.

Use case 1. Creating ad-hoc file collections in order to do something immediately with the files: zip them, copy them somewhere, encode them to mp3, backup them, email them as attachments, etc. File managers make such tasks easy only as long as all the files you need reside in the same folder (or under the same parent folder, if you can think of a pattern to match the required files). However, if you want to zip or backup files residing in different folders, it becomes a prolonged task. File collections would help a lot here.

These collections are by nature temporary and need not be persisted. Our hypothetical virtual folders program needs to be able to execute external applications passing the collected filenames to them (e.g. to an archiver or an encoder). Some of these features (zipping, copying) could be built in, but the program must be extensible enough to allow user to do any (unforeseen by the author) operations on the file collection.

Use case 2. Creating disk catalogs, i.e. "snapshots" of the current contents of drives or directories. These would be persistent collections and should not be automatically refreshed. (If you want to catalog your CDs or DVDs, there will be a different disk in the cd-rom drive every time, and existing catalogs of previously inserted discs must be preserved untouched). There isn't much users will actually "do" with these collections - just view them, search, save as text, print.

Use case 3. Collections of files arbitrarily chosen by the user to represent a concept or a project. For example, if you are a freelancer working for several clients, you may have one physical directory on disk for each client. Inside each directory there will be subfolders holding different types of files - the files you work on, invoices, old archives and other data. Now, if you wanted to look at all the invoices for all the clients, you'd have to navigate through all the folders in sequence. Instead, you could create a collection (a perfect use case for a "virtual folder") to list all the invoices in one place, so that you don't have to find them manually. The collection could be maintained manually (add each invoice by hand as you create it) or automatically (e.g. add every file that matches the pattern "invoice*.xls" from all subfolders under c:\MyClients). In the same way you could have an automated collection that lists invoices for the current year only, etc.

These collections should be persistent and *may* be automatically refreshed, depending on the semantics of a particular collection (i.e., what a collection represents).

Collections of the third type would probably be most common. You could use them to gather files for a specific project you're working on, or specific files from all your projects so far; you could create playlists, or automatically generate lists of all mp3s by a given artist or with a given genre. You could have a collection of all .lnk files in your Start menu (and use the program a little like FARR), or a collection of all "readme.txt" files for all the software you have written. Or you could have a collection of shortcuts to all uninstallers for the programs you have installed (a little like the Control Panel "Add or remove programs" applet). There are no limits here, and the potential usefulness is, I think, awesome.

The collections come in different types according to how they are created. You would select a collection type that corresponds to how you want to use a collection.

Type 1 Manual collections. You create them by hand, by adding / dragging single or multiple files (or pasting filenames in a dialog box). Refreshing such a collection means checking if the files still exist, optionally removing missing files, and updating the properties (date, size) for all the files, so that the program displays current data.

Type 2: Automatic collections. You specify one or more folders and one or more filename patterns, and the program adds the files automatically to the collection. Refreshing such a collection means re-running the search according to the specified criteria (any previous contents would be cleared). Refresh could happen on opening the collection, on timer or manually. A somewhat extreme example: create a collection where the folder is "C:\", the file pattern is "*.tmp", and the option to include subfolders is enabled. The collection will be automatically refreshed when opened (it'd take some time for a large drive...) and show all the temp files on your C: drive. Press Ctrl+A to select all, then press Delete to remove all your temp files from the drive. (With macro support, the whole process could be entirely automatic and you wouldn't even have to open the collection if the refresh happened on a timer). A somewhat less radical example - create a collection of all mp3 files in your c:\music folder which match the pattern of "Pink Floyd*.mp3". Create a collection of all the invoices, as described earlier, or a colection of all files modified this week, etc.

Type 3: Scripted collections. The program would be extensible by scripting (maybe using JavaScript, Python or Pascal). The script would be responsible for building the collection. It would of course require a little programming, but you could create collections using limitless criteria of your own. Refreshing such a collection means re-running the script. A script could also be used as a bridge between our program and a search engine such as Locate, Everything or Archivarius. You could use the power of the search engine to create your file list, and the script would simply add the search results to your collection - in this case the script itself would be quite simple. (This assumes that Locate, Everything or Archivarius can save their search results to a text file - if they can't, we can pester their makers to add this simple feature). And of course, scripts could also be used to perform operations on files already gathered in collections.

Some notes:

1. I understand Windows 7 has "libraries", which are somewhat like the collections I am describing, but knowing Microsoft, the functionality of their libraries will be quite limited in comparison to what's possible.

2. The program should use a database back-end, since the number of files in a collection is potentially very large. The program should only store links to files (their full paths), and not the contents of the files. (Seems obvious, but one related application does make physical copies of the collected files. Wonder what happens when you start making collections of your ripped DVDs... Argh!)

3. The program should store its data in a way that facilitates backup.

4a. The program should ideally be implemented as a shell extension, so that its functionality is available everywhere you can use Windows Explorer. This would mean it would also be automatically available in your preferred file manager.

4b. Further, it should be transparent to Explorer: it should support the basic file operations and implement them in its specific way. For example, copying a file to a virtual folder should result in the file being added to the virtual collection (i.e., the file should not be physically copied anywhere). Deleting a file from a virtual folder should only delete the collection item, not the physical file - although there must also be a (separate) feature to delete the physical file. Renaming a file should probably just rename the collection item, etc. Moving a file to a collection should probably do nothing (since it violates the whole concept), but moving a file from a collection could perhaps move the physical file from its original location to the new one. I'm not sure about the particulars here; the important thing is that these behaviors should be consistent and should make good sense to the user. You should certainly be able, for example, to drag files from a collection to another program (e.g. to add an email attachment or to zip those files in WinZip, etc.)

4c. As a shell extension, the program should create a virtual drive in the system. All virtual folders (collections) would reside on this drive. It is bad design IMO to put virtual folders among physical directories, since it makes them hard to distinguish and may lead to loss of data through confusion (deleting a physical file when you think you're only removing it from a collection, etc.)

4d. However, the program could also be implemented as a standalone application, though it would reduce its usefulness somewhat.

5. The program should support tagging (as in Tag2Find), rating, marking files with stars or what-not, describing them and specifying aliases, so that you could refer to files by simple aliases rather then their complete, long filenames. Tagging is not sufficient by itself though, since (a) it is time-consuming, (b) it is error-prone, as you will make typos, and (c) tags are useful so long as you remember what tags you have and what they mean. It would be easy for example to forget you already have a given tag, and attach what you think is a new tag to a bunch of files, thereby creating chaos in your collection. Tagging should be an important secondary feature; a collection is merely a named list of files.

6. Ideally, for some uses, the program should be able to detect when a file has been renamed or moved, and update the collection accordingly. This is non-trivial to implement, since monitoring all drives for changes to all files is probably going to put some strain on the system. Also, for certain uses (such as disc catalogs) you do not want such automatic updates. Without this feature however, simply renaming a file could make it invisible to the collection it used to be in, so it's a problem that needs consideration.

7. Working with files in the program should in many ways be indistinguishable from working with a file manager. Enter should open/execute a file; right-click should show the shell context menu for the filetype, etc.

So finally, here's the current state of play. Some file managers implement collections to some degree: DOpus, Xplorer2 and SpeedCommander. I'm not sure what the DOpus support is like - please share, those who know!. In the other two it's quite weak. You have to use separate panels, so they're not well integrated, and usually you can have only one collection (scrap window, whatever) at a time. There is a "temp panel" plugin for Total Commander, but again, its usefulness is almost nil compared to what I've described. I'm not even sure if those collections are persistent; in the TC plugin they are not.

Outside of file managers, there are a few specialized solutions (all commercial):

Virtual Folder: http://www.virtualfolder.net/
- Didn't really work for me at all. It creates a virtual "Z:" drive, which is good. On this drive you can create regular folders, but copying a file to such folders makes a physical clone, a second copy - that doesn't make sense. You have to create a folder, right-click it and make it virtual - but then you cannot open the folder in Explorer! I just don't understand how it's supposed to work, or why the Z drive is created at all, since the screenshots show how to create a virtual folder on your regular drives, among your ordinary folders (bad idea in the first place). I gave up. There is a new incarnation of this program at http://www.virtualdisk.net/ which I have not tried yet.

Tag2Find: http://www.tag2find.com/
- A promising start, but development is on hiatus and may not resume. Some good ideas, but Tag2Find does only tagging, which really involves much more manual labor than just drag-dropping files into collections, and cannot support some of the use cases I've proposed. For example, if you want to backup a collection of files, how do you achieve that if all you have is tags? Possible perhaps, but not nearly as straightforward as dragging a bunch of files from a collection to your backup app. And no automation, so you could not automatically generate a collection of, say, all *.xls" files under some folder. Also, the right-click interface in Tag2Find is awkward. It opens a tiny, tiny edit box for entering tags, but the edit box has no focus, so you have to click it first. Did I say it's tiny? I could see myself use Tag2Find eventually, but not at all in its current state, and the program isn't being developed at the moment.

My SmartFolders: http://www.castlepeaksoftware.com/
- Same idea as Tag2Find, somewhat different implementation. Haven't installed it yet. It's also a shell extension, which is good. However, it's tag-based only, which again limits the possibilities. Looking at the screenshots, I don't like the idea of tags as checkboxes that you click - what happens when you have a hundred or two hundred tags? Or more? (Because if you're only going to have ten tags or so, you probably don't need the program in the first place!) Also, the development doesn't seem to be moving forward. Link to the downloadable file was dead and the author didn't know about that until I emailed - so probably not much interest, either.

Benubird PDF: http://www.debenu.co...nubird/features.html
- The weirdest of them all! Looks promising, with the (completely unnecessary but attractive-looking) ribbon interface. True collections as lists of files, great. Uses SQLite database, great. Claims to monitor files for changes, renames etc., pretty good. Drag a file to a collection - Benubird creates a physical copy of the file under its data folder! What the...? Let me repeat the question: what happens when you create a collection of video files, between 700 MB and 4.5 GB each? And why copy the files in the first place? For what purpose?

That's about what I've been able to find so far. Wait, I've just discovered TaskTracker: http://tasktracker.w...tions.com/index.html Despite the name, it's apparently a file organizer with virtual folders. First time I've seen this, not tested yet. Last updated in 2007, though.

...And to anyone who's read this far...if you have really read this far... drop me a line next time you're in Poland, I owe you a beer! :)

58
I realize when and why XP may want to reactivate itself after hardware changes or additions. In my case though, the only change was shutting down the computer one night and starting it up the next morning. (I haven't installed or removed any hardware at all since I built the system over a year ago.)

Something slightly weird happened there, as the system booted up but the graphics card aparently was not feeding signal to the monitors. Hard reset wasn't working, unly unplugging and plugging the power cable back in did the trick. But then, on startup, Windows said it detected a significant change in hardware configuration and needs to be reactivated within three days. My first instinct was maybe something died inside (oh no!), but then again, according to MS, removing or adding a single device should not trigger the reactivation prompt. And thankfully eveything seems to be working fine, I didn't lose a disk or anything like that.

Online reactivation worked and things are seemingly back to normal. I'm still puzzled though, why would Windows do that for no reason? Is it a known ocurrence? Has anyone seen it happen in a similar way?

59
What would be the best macro program to do the following?

1) Click a button on a program's toolbar when I press a key. The program I'm working in does not have a menu command equivalent to that button, and I need to click it fairly often, which disturbs my typing. The button is usually located at the same absolute position when the program window is maximized, but it's not guaranteed, and clicking a different button might have some adverse consequences.

2) Click (toggle) a checkbox in a dialog box. A separate issue: I often need to toggle a certain option, which is only available after clicking main menu -> Tools -> Options, then selecting a tab.

Would I have any luck with Autohotkey? Or should I try Macro Toolsworks instead, or something similar? I'd rather avoid running a program as "heavy" as Macro Toolsworks in the background all the time, but if I used it for these two tasks, I guess I would find more uses for it to justify the purchase. Thanks in advance for any suggestions!


60
Ed: the license is already gone - it took about two minutes! :)

Lady Luck seems to have picked me for one of the free Total Commander licenses given away by DC (See this thread). Since I have a TC license already, the one I've won is up for grabs.

First come, first served - the TC license key will go to the first person who'll PM me with a request. You don't need to be a supporting member at DC, but you need to have post count greater than 1.

Thanks Fenixproductions for the contest, and thanks to Mr Christain Ghisler for the generous giveaway - and for developing my favorite piece of software ever!


61
If you ever pay for software in Euros, always switch the basket to US dollars first and compare the amounts. Most of the time the payment processor converts between dollars and Euros using whatever exchange rate is current. Since they often add a surcharge for currency conversion, occasionally you may be beter off paying in EUR if the company is located in the EU.

But sometimes they don't bother to do any conversion at all - and you may see this:

Basket with price in Euros:
01-tuneup-eur.png


Basket with price in US dollars:
02-tuneup-usd.png

At the current rates, the difference is nearly 25%.

(And I'm still not buying this upgrade, I don't think. A worthwhile object lesson though.)

62
...without buying PhotoShop, which I sure as heck can't afford and don't quite need?

I've bought a template for my wife's website and will need to modify a psd file to change the text on the logo image. The file is an 8 MB psd, from which I assume I can extract the logo section and change it. I thought I'd be able to do so in Paint Shop Pro 8, but PSP says "Not enough memory to complete this operation" (which is clearly BS; most likely the file format is too new or too complex for PSP to handle).

There is a psd plugin for Paint .Net, but it also throws an error when opening the file. What are my other options?

63
When I started on this road over two years ago, Mouser told me I would go insane, but would I listen? Nah...

And now my wife needs a nice, clean business site too, so as the purpose of my pursuit doubled, so did the pace of my head-first launch into cuckoo-land.  Now, a sadder and a wiser idiot, at least I've begun to know what it is that I'm looking for. Here;s my WANTED notice, plastered to a telephone pole along the electronic highway (excuse the platitudes). The musts are what I cannot live without; the shoulds are highly desirable:

- MUST be Php/MySQL, because this is what my host supports best, and this is where I have some experience. Though given a compelling reason, I'd trade php for python. It's OK if it uses local files instead of a database, though this is quite rare (DokuWiki).

- MUST be clean, valid xhtml/css, also when using custom themes.

- MUST have an easy way to maintain static pages (it's OK if they are called something else or aren't distinguished from dynamic content, as in Joomla).

- MUST support tags (keywords) for articles. Ideally, out of the box (like WordPress) - or through a plugin. MUST be able to show tag catalogs (as clouds or otherwise) and tags MUST be links.

- MUST have a flexible categorization system. SHOULD support assigning multiple taxonomies to individual articles (e.g. more than 1 category/section/etc)

- MUST provide some method to predefine templates (layout, not css stylings) for articles. SHOULD be able to associate templates with taxonomies (e.g. assign a different predefined article layout with each category. TextPattern can do this; too bad it's about the only thing it does).

- MUST support clean ("nice") URLs.

- MUST have an easy way of linking to articles internal to the site. This could be in the form of wikified links, or some other human-readable form. Allowing only for full URLs such as  http://www.example.c...;id=26&Itemid=40 is unacceptable. Fully-formed clean URLs (http://www.example.c...foo/bar/this-article) are also unacceptable, because it's still tedious, error-prone, and the link will become stale if the article is later reassigned to a different category.

- MUST have a code (non-WYSIWYG) editor: using Textile, BBCode or similar approach, or just plain html. (Though some of those are quite evil too. Using six apostrophes to get bold as in MediaWiki is a bit on the absurd side, but I could live with it.)

- MUST allow raw html in articles. SHOULD allow raw php in articles.

- MUST allow inlining images. (TextPattern allows only 1 image per article - now try to make a page of screenshots).

- MUST generate RSS feeds for internal content.

- MUST have a reasonably good search engine built in.

- MUST have a systematized method of uploading files of all types and linking to them in articles. (WordPress does well here.) SHOULD be able to display download counts.

- MUST be translatable and able to switch languages on the fly; it it's not, I'll just rip it apart and make it.

- Creating themes (styles, templates) MUST be relatively painless. I don't expect to find a template better than this for my personal site, or one that my wife will prefer to this for her company. Joomla templates both, so I'll likely be buying those and adapting them for our sites. That will not be a pleasant process, but at least it SHOULD not be torture :)

- SHOULD have a basic versioning system that is at least able to retain old versions of articles. Diffing is not required.

- SHOULD be able to syntax highlight code (via a plugin or otherwise).

- SHOULD really have some smarts! When I add an inline image (and *especially* if there is a WYSIWYG editor with a UI dedicated to that purpose), then it SHOULD generate the width and height parameters for the img tag. Putting a big dialog box in my face with an Upload button *and* empty text fields to fill out the image dimensions is just lame. Every HTML editor since HomeSite 1.0 would do this automatically.

Hello cmsmatrix!

64
Living Room / Tell me what your software DOESN'T do... (a rant)
« on: May 11, 2009, 05:50 PM »
So imagine you're checking out a new text editor. The screenshots are the epitome of elegance, the feature list is enthralling, and the configuration possibilities are nothing short of hypnotizing. You download it, install it, maybe play with it for hours - weeks! - and it looks just royally good - until one night at 3 a.m. or thereabout you realize it doesn't do word wrap.

I've just had an experience quite like this with Joomla - the best, the featurest, the supportedest, the extensiblest of CMS-es. Ouch.

In my own defense, since Joomla is a complex piece of software, I assumed what I thought was a missing feature was merely my own ignorance. I thought if I couldn't do something it was because I didn't know how to get there yet, not because it couldn't be done. Well.

Dear mister generic developer, please tell me what your software does not do. Upfront-like. Thank you.

end rant!


65
So here's another one... a simple stopwatch/timer with a few handy features. Yes, there are plenty available, and no, I didn't quite like any of them, so I wrote my own :) Download links at the very bottom of this message (be sure to pick the latest version).

New (February 2012): StopWatch is now hosted on my site at tranglos.com. This thread is still good for support and new version info, I'm not going anywhere :-)

A standard installer and a portable version are now available. Latest version direct download:




Please note: Windows 2000, XP and up only. Will not work on Windows 95, 98 or ME (won't even open - see this post for an explanation). Tested only on WinXP 32-bit, that's all I have :)

Freeware, of course. The included readme file has all the details on usage (or see the post below).

Main screen when running:
02-stopwatch-main.png


A few options:
03-stopwatch-options.png


Setting initial value with presets (new in 1.4):
05-stopwatch-presets.png


66
On several occasions there have been requests for a program that displays what global keyboard shortcuts are registered by various applications. ActiveHotkeys does just that: it will show a list of all active (registered) or inactive (available) global hotkeys.

New (February 2012): ActiveHotkeys is now hosted on my site at tranglos.com. This thread is still good for support and new version info, I'm not going anywhere :-)

A standard installer and a portable version are now available. Latest version direct download:



Please note that Windows does not allow for detecting which application has registered a particular shortcut, so that feaure is not included. (If you think you know how to achieve that, using message hooks or what-not, please post here or earn some karma at StackOverflow)


Main screen:

02-activehotkeys-main.png

(Yes, I've used the dreaded listview. It's almost OK for this purpose, though not quite. The upside is you can sort the listing by clicking the column headers.)


Remember to right-click everywhere:

03-activehotkeys-rcmenu.png

04-activehotkeys-rcmenu2.png


Happy shortcutting!

67
Mini-Reviews by Members / Actual Window Manager mini review
« on: May 03, 2009, 09:11 AM »
Basic Info

App NameActual Window Manager
App URLhttp://actualtools.com/windowmanager/
App Version Reviewed5.3
Test System SpecsWindows XP SP2 with 2 monitors
Supported OSesWindows 2000/XP/2003/Vista/2008/x64
Support MethodsDetailed help file; online manual; online support forum. The program is actively developed with new features and improvements.
Upgrade PolicyPaid upgrades between major versions (discount applies).
Trial Version Available?Yes; time-limited trial
Pricing Scheme$49.95 for a single user license, but see below for less expensive variants; license is good for 2 computers, as long as only one is being used at a time
Features and screenshotshttp://actualtools.c...dowmanager/features/
Feature Comparison Charthttp://actualtools.c...wmanager/comparison/
Online demoshttp://actualtools.c...wmanager/onlinedemo/
Relationship btwn. Reviewer and Product REVIEWER: registered user since Oct 2008; no other relation.


Intro:

Okay, so I know how this is going to end: DonationCoder resident AutoHotkey wizards are going to demonstrate how instead of paying $49.95 for a piece of shareware, you can have all its features for free in under an hour. Tip of my hat to them! AHK saves me a lot of time every day, so this remark is not meant to be flippant. However, if - like me - you happen to be a sucker for beautiful interfaces and convenient configuration screens, check out Actual Window Manager.

AWM seems to have received only a handful of mentions at DC so far, yet it falls in one of the most discussed categories: programs that arrange, move, resize and do all sort of neat tricks with windows. Actual Window Manager may well be the most feature-packed of all, and its capabilities extend beyond managing windows: it also supports virtual desktops and multiple monitors with replicated taskbars, Start menus and a dual Alt+Tab app switcher.

My first contact with Actual Window Manager was when I spotted the neatly arranged title-bar buttons in an unrelated post by tslim:

01-awm-buttons.png

In my everyday usage, this is what AWM adds to every window - the title-bar buttons and the right-click menu with lots of handy functionality:

02-awm-titlebar-menu.png

I admit I am a configuration junkie. The more options I can tweak, the happier (and more in-control) I am. Actual Window Manager gives me my config fix and then some. Here is the configuration overview screen:

05-awm-default-settings.png

Two more screenshots of the configuration possibilities. There are global settings for all windows, and you can also create configurations for individual windows/programs. Here is the set of options to control what happens when a new window opens:

06-awm-settings-startup.png

...and here are settings to control window size:

07-awm-settings-size.png

Instead of pre-configuring all these behaviors, you can also press a key at any time to quickly adjust the current window. All changes in the Quick Settings dialog are applied immediately to the active window:

03-awm-quicksettings.png

Most of the time though you will simply control windows with configurable global shortcuts:

08-awm-shortcuts.png

The buttons AWM places on the titlebar of every window are also configurable. What's nice is that you can specify the offset, to leave a small gap between AWM's buttons and the standard minimize/maximize/close buttons). AWM lets you select and reorder the custom buttons, or use a different set for each window if you like. There are plenty to choose from:

09-awm-tilebuttons.png

(This is AWM's default set, which can be replaced with other graphic designs)

Who is this app designed for:


I recommend that you try Actual Window Manager if:

- If you ever find yourself switching between multiple windows, especially if you keep moving and resizing them to bring some order to your desktop;

- If you use multiple monitors and would like to add support that's missing from the operating system;

- If you hate the inconsistent way certain program windows open, and you'd like to force them to always open the way you want and stay that way; or if you'd like a global ability to remember the last position and size of every window (not all programs do that).

- If you use AutoHotkey or another scripting tool for moving and sizing windows, but would like a few more features and/or an easier way to configure your favorite behaviors;

- If you've ever tried UltraMonTaskSwitchXP, or Dexpot and found them lacking; or if you use all these apps (plus AutoHotkey), and you'd rather replace them with a single tool...

- ...in other words, if a single utility that manages windows, multiple monitors, taskbar and virtual desktops, *and* gives you control over application switching and process priorities sounds good to you;

- If you're a power user but don't mind the convenience of dialog boxes;

- If you enjoy well-designed UIs with sprawling configuration interfaces :)

And if the price is somewhat steep (which it is), Actual Tools offer a set of smaller, cheaper utilities, each of which provides a subset of AWM's full functionality. They are: Actual Title Buttons, Actual Window Menu, Actual Transparent Window, Actual Window Rollup, Actual Window Minimizer, Actual Virtual Desktops and Actual Window Guard. See the feature comparison matrix for details.

The Good

Let me just list briefly some of my favorite features. Note that absolutely everything here is optional, you can disable any feature you don't want.

- Regular window management functions you would expect, such as moving (as in GridMove), resizing, minimizing, minimizing to tray, moving between monitors, rolling up, and forcing a window to stay on top - as well as a few more advanced additions, such as the ability to make a window transparent, "ghosting" a window (it remains visible, but mouse clicks go to the programs beneath it), setting CPU affinity and process priority.

- You can define a separate configuration for a particular application or window. There are lots of behaviors you can configure, such as initial position and size, or the monitor to show the window on. I use it to always display Acrobat Reader maximized on my second monitor, and to force a specific position and size for all HTML Help files, which are notorious for opening every which way, sometimes in very small windows, other times way too large. AWM can tame such inconsistencies. There is much more you can have AWM do when a window opens, e.g. minimize the window, run a keyboard macro, execute another program or set process priority.

- To every single function AWM makes available you can assign a global keyboard shortcut. There is a good set of factory defaults, such as Win+Down arrow to minimize, Win+Up arrow to maximize/restore, Win+Period to minimize to tray, and Win+Comma to roll up a window. Each such shortcut can be changed and disabled.

- In version 5.0 AWM introduced support for multiple monitors. This doesn't just mean the ability to move windows between monitors. AWM can display the taskbar on each monitor, either in "replicate" mode (all taskbars are identical), or - better - on each taskbar show buttons only for the applications displayed on the specific monitor. Each taskbar can have its replicated Start button with the menu.

- (added on edit) The latest version of AWM supports reordering taskbar buttons by dragging (on the main taskbar as well as on the replicas).

- Special mention: multi-monitor support includes the ability to display the Alt+Tab application switcher on all monitors at the same time. This was perhaps what ultimately convinced me to buy AWM. (Some similar apps display the switcher on the currently active monitor. I could never get used to that, since in practice I was never sure which way to look when pressing Alt+Tab :) Showing the switcher on ALL monitors seems to be the ideal solution.)

- All the AWM windows management features apply also to command prompt (shell) windows. There is a checkbox to enable this, since at one point it was an experimental feature, and it had a side-effect of a delay when closing command prompt windows. (This has been fixed.)

- When AWM moves a window to another monitor, it provides options for keeping the window size or adjusting it to the dimensions of the current screen.

- Apart from all the specific configuration settings, AWM can remember and restore the size and position of every application's window. Many programs do that on their own, but for those that do not, AWM can provide that behavior.

- The help file is comprehensive, and each configuration screen in AWM shows a clickable link to the relevant Help topic.

(I do not use the virtual desktops feature, but you can expect a typical, configurable  implementation).


The needs improvement section

AWM applies the default set of title-bar buttons to all windows, unless a program is excluded or has its own configuration set. In practice, the default settings are not suitable for small windows, because the buttons end up obscuring the title, as in this ftp transfer window from Total Commander:

04-awm-smallwindow.png

I could alleviate this by making a special configuration for TC, but it would apply to TC's main window as well. Instead, it might be useful to have a setting that would prevent AWM from adding the title-bar buttons to windows below certain minimum width. (You can always right-click the title-bar to access these functions).

When I leave the computer running overnight, by morning AWM seems to have leaked memory and has trouble keeping track of resources. Application buttons in the replicated taskbar on my second monitor no longer display icons, and AWM is using much more memory (about 50 MB) than it normally does (about 10 MB). This only happens after the computer has been running for 20 hours or more, and does not affect the stability; I have never seen AWM crash. Closing and restarting AWM rectifies the leak, but there it is.

AWM has a particularly nice feature that lets you automatically minimize a window when it loses focus. This could be useful for apps that you frequently bring up, but only for a short moment - such as a thesaurus or a dictionary. However, the implementation of this feature is faulty: when a program configured to "minimize on deactivate" opens a dialog box, AWM interprets this as the window losing focus, and minimizes the window. As a result, you can use your thesaurus, but as soon as it opens a dialog box or shows a message, it's gone - minimized. (The author has acknowledged this issue and I hope to see it fixed in a future build).

Finally, there is a limitation that is not the programmer's fault, but one you will stumble upon sooner or later. Since AWM modifies application windows via standard Windows API functions, it will not work (or not work well) with applications that replace those standard Windows behaviors with their own. This affects most skinned apps, such as Winamp or FARR. AWM either doesn't work at all with such programs (cannot display its buttons on the application's title bar), or needs to be disabled for the specific program, if the display is ugly or incorrect. The painful point here is that disabling AWM for a program also turns off all the AWM-specific keyboard shortcuts for that window. There really isn't anything AWM can do here - it's the fault of the various skinning mechanisms that they do not support normal window behaviors.

(Similarly, until recently AWM didn't sit well with applications that replicate the "ribbon" interface of Office 2007, but this has been fixed in version 5.3.)


Why I think you should use this product

If the screenshots and feature listings haven't convinced you, you probably have no need for Actual Window Manager :) But if you were ever looking for a way to bring consistency and automation to window behaviors, and if you're not entirely satisfied with UltraMon or AutoHotkey, give it a try.


How does it compare to similar apps

It's been quite some time since I tested anything similar. I don't want to give short shrift to the capabilities of apps I'm not very familiar with, so I'm going to leave this section blank. Please post about your experiences with UltraMon or related tools.

Conclusions

I first installed the 5.0 beta version, the first release of AWM that supported multiple monitors. It's a cliché to say I couldn't live without it anymore. Perhaps less of a cliché: it's one of the rare programs that make me smile when I discover what they can do. It's my favorite new software of 2008. A really neat toy, attractively designed, and awfully useful. A unique combination of features you'd find only partly implemented in other apps.

Let me put it like this: Actual Window Manager has joined the short list of indispensable applications that aren't merely lesser evils, but that keep me genuinely happy: Total Commander, FARR, AutoHotkey and very few others. Were that not the case, I'd have gone biking on this beautiful Spring Sunday instead of writing the review :)


68
TopStyle 4 is now in beta, with a final release announced for May:
http://svanas.dynip.com/topstyle/

Nick Bradbury / NewsGator have sold it to a new developer, so perhaps the project will move on again. The beta can be downloaded and it seems free from a nag-screen, nice. The main change is support for UTF-8 and UTF-16 encodings (both appear to be correctly recognized as long as the byte order mark is present). Not much information on the website yet, but the FAQ explains the details of the ownership change.



69
I've wanted to post this for a long time...

Whether you care or not, every day you use the computer you are probably interacting with an element of the Windows user interface called "listview". It's the interface to Windows Explorer, for one thing. It's also what drives your desktop. It's the My Computer window, it's the Control Panel, and it's part of interminable other staples of the operating system.

Microsoft made it a fancy and powerful gadget. Starting with XP, it draws a stylish semi-transparent selection rectangle when you sweep the mouse over items. It does incremental search: start typing a filename, and the selection will jump to the first matching item. It lets you edit the text of an item. It has a virtual mode that lets programmers display many thousands of items really fast. It shows icons of different sizes. When you switch from the Icons view to Details or Thumbnails in Windows Explorer, it's still the same listview control, working in one of its many display modes. The latest versions can also display headings to group items into related sections.

The Details mode is particularly handy - the one that shows information such as size and last-modified date for files, neatly arranged in columns. When you click on the column headers in the Details view, the listview sorts items; another click reverses the sort. You can drag columns to rearrange them. This is perhaps the best part of the listview - and the worst, which is what this post is about.

The listview is a standard Windows control - that means programmers have always been able to use it to build their own applications. And because it's so fancy and so powerful, they indeed have. Programmers use listview because it's readily available with its many features, while creating a like element from scratch means a months of tedious work, if not years, if you're a lone developer.

And that's the problem. The Details mode has one shortcoming: it can only accommodate a single line of text. Lines do not wrap. That becomes a problem whenever any of the columns needs to display more text than fits in the width of the window. It's a tiny step from this neat display:
explorer1.png

...to this, now not so useful any more:

explorer2.png

Yes, you can widen the window - but only to the size of your monitor, and besides, you don't always want a window to extend the whole width of the screen.

And yes, you can double-click the edge of a column header, and it will extend enough to accommodate the longest filename. Or you can resize columns manually. But have you tried to read a filename that spans the width of your widescreen monitor? Or read while scrolling horizontally?

I don't know about anyone else - maybe it's just me. But once I have to scroll horizontally to read something, I give up. I hate it. It's just not right. While vertical scrolling feels natural, horizontal scrolling does not; it becomes hard to track the position with my eyes and follow the line of text. Not only that, but to read the next item you first have to scroll back to the left. Let's just say when I see a horizontal scrollbar, I speak words of unkindness.

For all that, listview still wouldn't be half bad if it were only used for listing files. After all, do we really read filenames that closely? But the listview is ubiquitous. It's everywhere. One thing to note is that I do not intend to harp on any particular program here. I'll be using some screenshots to illustrate things, but please don't take that as criticism of the specific programs - just anonymous examples of how the listview proliferates.

Here's one that will be recognized by many DC-ers:

linkman1.gif

I may not read filenames as a pastime, but sometimes I would like to scan the titles, descriptions and keywords I've entered into my bookmark manager (the screenshot is of Linkman). Note the position of the horizontal scrollbar: there's a lot of information you aren't seeing. And if you scroll to the right, you won't see the leftmost part. And note also that few websites have titles as short as those used to make this particular screenshot. More often you'd only see the first three words of a much longer title. Meanwhile, other items, like tags and rating, are hidden.

And no matter how much you widen the window and resize the columns, sooner or later you'll have to scroll to the right, because a typical view in a bookmark manager looks more like this:

visiturl.gif
(This one taken from my own VisitURL. Silly me, I put the URL column first, which adds to the aggravation!)

One more example of what I think is abuse of listview - or abuse of the horizontal scrollbar. This is a task view from (my favorite) Calendarscope:

calendarscope1.gif

There are eight (8) more columns hidden behind the horizontal scrollbar here. And again, while not all those columns may contain lifesaving information, they are there and I'd like to see them... sometimes. Call it idle curiosity.

By contrast, here's where I think listview has been used properly. It doesn't appear as though you'd ever need to scroll or even resize the columns (there are only two):

godlistview.gif
(Found on Google Images - I don't know what application this is).

Listview is everywhere:  see for yourself. Or click on that green uTorrent icon in your system tray and count the columns you're not seeing.

So today... I'm staging a walkout. A strike. A protest on the virtual hi-tech highway. Heck, a whole e-riot! Please do not abuse the listview. Please, developers, reduce the amount of horizontal scrolling you are subjecting users to. Please don't hide potentially important information behind the edge of my screen. If you let users type more than two or three words into an edit box, listview is not the proper control to display those words. If you have more than two or three columns hat can contain a stretch of text, listview is not the proper control to present those columns. There are better ways.

Ah, alternatives. Let them speak for themselves:

livewriter.png

Microsoft LiveWriter (via Google Images). It still looks as though it has more columns than can fit, but note that when you select an item, you can see all of its data without scrolling. And you can edit all fields, too! Is it really easier to do so in Ajax than in C++? (Heh, could be!)

NET3.5ListView.png

Nice! Google images again - this was described as ".Net 3.5 listview". Looks like MS can get it right on the desktop too, then! But have you ever actually seen it used?

Or how about this familiar view? Not editable, granted, but there's room for buttons, checkboxes and what not:

firefox-extensions.png

By far my favorite implementation is this solution from Copernic (the Internet search edition, screenshot a few years old now):

Copernic_1.gif

Look ma, no scrolling! Just wrap the text. Clean, beautiful, highly readable, and will accommodate any amount of data you care to put in there. You can even grow the font size without any text spilling over the edge. I so love this!


Another one Google Images threw up, I don't even know if this is Windows...
slides-style.gif
... but it's exactly what I'm after.

The problem with the listview is - it does so much and is so good, many developers are quite happy to have it for free, and many don't look beyond. I know I didn't.

What do you think? Can we banish the listview, with the endless scrolling and hiding of information? And will mouser kick me out for these outpourings of verbosity and bandwidth-eating screenshots?


70
General Software Discussion / The Best Of: text editors
« on: April 27, 2009, 03:46 PM »
(This is a highly subjective review. For balance, see also DonationCoder classic roundup of major text editors).

The following was inspired by the recent DC thread Windows editors - do they have to be so bad?, and by the new (to me) HippoEdit text editor, which is surprisingly inventive for a project this young. Rather then reviewing a single application here, I thought of pinpointing the features I find best in the several text editors I use daily. Then I thought of listing some of the worst aspects as well, so this thread should properly be called The Best (And The Worst) Of (Some) Windows Text Editors (With Screenshots), For Your Entertainment.

I've only listed some of the stand-out features - those that are unique to an editor, are particularly impressive or useful, or those I cannot live without. I did not list features that are too common to mention these days (word wrap, auto indent), unless a specific implementation of a common feature seemed particularly inspired (or particularly not so).

I should also note that there is a lot I don't do with text editors. I almost never use them to write executable code. I never use persistent blocks or any implementation of text clips (I use AHK for text expansion and configuring the same set of clips separately in each editor sounds too much like work). Apart from writing short notes to self, I use text editors to search, replace, tweak or extract text and tags, often in xml files, from small to quite large (tens of megabytes). I thus pay much attention to speed and efficiency of editing large files and to the display capabilities that help visualize and navigate the thicket of tags and entities. I use regular expressions heavily and love incremental search. Finally, correct handling of Unicode is a must in my line of work, so editors that do well there score points with me (and TextPad, which does not, serves mostly as a scratchpad).

Since it's a long post, I might as well reveal right away that the moral of the story is nothing groundbreaking - there is no optimal editor, even given my limited range of uses. I have registered copies of all the editors listed here, and use them all interchangeably, since none does it all. Of course the other moral of the story is that all authors of the editors mentioned herewith should bow before this post daily and start implementing the missing best-of features posthaste, to one-up the competition. Or better still, five-up them.

On to...

1. TextPad

scr-textpad.png

The Good:

- Fast! even with large documents. TextPad is easily the fastest when loading and navigating very large files. (Yes, that's because it's an ANSI editor. Slow string operations is the price we pay for Unicode.)

- Extremely fast search and search/replace functions; very fast also with regular expressions; I love and use often its ability to do search and replace in all open files (why don't all text editors have this?)

- Unlimited bookmarks (F2 toggles). The best thing about it is you can bookmark all lines containing your search string directly from the Find dialog box, and then invoke clipboard/editing operations on the bookmarked lines. I use this all the time, and though this feature can be replicated in a few (not all) other text editors, it is never so easy and so natural.

- Nice, simple and fast syntax highlighting. I think TextPad is the only editor that supports highlighting only the angle brackets of xml tags out of the box. Some other editors (EmEditor) can be configured to do so, but doing so significantly slows down EmEditor when working with large html or XML files. Most editors, like EditPad Pro, will highlight the whole tag, which produces too much coloration for my eyes, and makes it harder to see the actual angle brackets.

- Probably the first text editor to offer document classes (options settings applied to specific types of files). Today almost every editor has this feature though (shame on you, UltraEdit).

- Nice sort function with optional deletion of duplicate lines.

- My favorite peculiarity: when a file is unmodified, the Save button is displayed as disabled (to signal the file has been saved). However, you can still click the Save button, and TextPad will do a Save As instead.

The Bad:

- I could never get used to the MRU order of tabs. If you open three files and need to make a single change in all of them, it becomes confusing. If you have more than a dozen files open, it's useless - so much so I usually close a file before moving on to another.

- No highlighting of matching brackets or tags, though Ctrl+M jumps to matching bracket (not tag).

- No incremental search. One other aspect where TextPad shows its age.

- Macros cannot be edited (recording is tedious, you cannot fix or modify a recorded macro).

- No proper handling of UTF-8 or UTF-16 encodings. TextPad can read and write such files, but only if all the characters can be displayed using the current ANSI codepage in Windows. Otherwise it will display a warning message and let you open a file, but some characters in the file will be corrupted.

- No folding, no rectangular selection, no indentation guides or nesting indicators... why do I still like it so much? (Block selection is available: Press Ctrl +Q, B - or see under the Configure menu. Thanks to steeladept for the correction.)

- Still using version 4.7, since version 5.0 seems to be plagued by all kinds of problems. Helios (the makers of TextPad) are mostly absent from the forum and bugs remain unfixed for years. The programmers are probably working on greener pastures these days, as is their right.


2. EmEditor

scr-emeditor.png

The Good:

- Absolutely the best handling of UTF-8 and UTF-16 documents. EmEditor was recommended to me when I worked for two large Internet companies' localization departments, where EmEditor was used exclusively, since it always stored Unicode text cleanly and never broke a build. Supports a huge number of encodings. I use EmEditor whenever I need to be perfectly sure that the editor will correctly detect document encoding (present or absent the byte order marks) and will not damage UTF-encoded text on save.

- Hands down the best macros in a text editor. Macros are really scripts, which can be recorded or coded in JavaScript, VBScript or any language supported by Windows Scripting Host. Good access to internal functions of the editor, can work directly with text of the document. Ability to create ActiveX objects in script, should one ever need to do so.

- Automatically highlights all occurrences of your search term, so that you can visually assess the number / density of matches. I love this feature (and it was unique to EmEditor until HippoEdit, below) (also available in EditPad Pro and HippoEdit).

- Will highlight matching brackets (but does not mark matching tags in html or xml files).

- Endless customization. Easily the highest number of options of all the editors I've seen. Plenty of properties for specific file types.

- The only text editor I know (ed: apart from HippoEdit) that lets you assign more than one keyboard shortcut to the same function. Useful.


The Bad:

- Not as fast as TextPad; became perceptibly slower with large xml files after upgrade from version 7.x to 8. With syntax highlighting on, cursor movement and scrolling can become extremely slow (like, move one character per second or so), even with word wrap off.

- In the screenshot above, the weird white rectangles are EmEditor's implementation of "mark current line" - it only colors text and white space in the line with cursor, but omits the tags. If they are ever holding an Ugly Contest, those rectangles should make sure to apply.

- Unlimited bookmarks like in TextPad, but no built-in functions to cut/copy/delete bookmarked lines. (Can probably be duplicated using NextBookmark() command in script, but troublesome and slower).

- No search and replace in all open documents. Why? Both the find and the replace functions now work across all open documents in EmEditor. Thanks to mwang for the correction.

- Relatively weak code folding (via plugin only)

- Relatively weak incremental search (via plugin only, you type in an edit box, Enter focuses the document). My main issue is you need to click the edit control on the toolbar; i.e. cannot initialize incremental search from the keyboard.

- It's a really good editor, but has shortcomings like every other application. The author tends to gloat a little too much about how great EmEditor is, and seems non-responsive to suggestions. I asked for "replace in all open files" two years ago, still not there, even though adding this should be a mere formality (checkbox in Find dialog box; loop s/r process over document buffers).

3. EditPad Pro

scr-editpadpro.png

The Good:

- Probably the most powerful, featureful search facility. Count matches, highlight matches, and the ability to fold document so that only matching lines are shown. Fancy syntax highlighting for regular expressions in the search pattern box. Replace with "adapt case", and more. Can save your "favorite searches" (this in addition to standard implementation of search history)

- Visually nice code folding (in the screenshot, see how the folding line "angles" at bottom - this provides a very distinct indication of where the block ends).

- Nice alternative to selecting with the Shift key: press Shift+Ctrl+B to mark the start of a block, navigate freely in the document, then press Shift+Ctrl+E to mark the end of the block. However, the starting point is not indicated in any way while you navigate to the end point.

- Interesting additions to the standard clipboard operations: cut or copy appending the text to clipboard, and Swap with clipboard.

- The author is very responsive to comments and feature suggestions.

- Comes with a separate editor for syntax coloration schemes, which I have never used. Is that Good?


The Bad:

- Surprisingly, incremental search implemented in a non-standard way: first of all, it's a toggle. When enabled, you still need to click the search pane at bottom, otherwise you'll just be typing letters in the document instead of typing your search pattern.

- Recorded macros are stored as INI files. This makes them theoretically editable, but the format is rather obscure.

- Default color scheme seems garish to me and distracting, but it can be tamed.

- No option to trim trailing blanks on save (most other editors support this feature and I always keep it enabled - a personal preference).

- Editing weirdness: in every typical Windows editor (I don't know about vi :) pressing Ctrl+Delete on a word deletes the word and any spaces that follow. This is usually what you want. However, EditPad Pro only deletes until word boundary. If you are removing an unwanted word from a sentence, you need to press Delete again to get rid of the extra space. Wrong!

- A little visual inconvenience: the text starts at the first (leftmost) pixel, with no margin between the text and the gutter. This affects readability, esp. with line numbers or code folding enabled. Most editors leave a two- or three-pixel padding between text and whatever surrounds it.

- The way the main menu is organized is somewhat random. The View menu isn't where it's supposed to be (Windows standard: right after Edit), and doesn't contain all the items you would expect. Some view-related toggles are under the Options menu, and others are elsewhere yet (try enabling the ruler and see how long it'll take you to find the setting).


4. HippoEdit

scr-hippoedit-1.png

The Good:

- I'm surprised! Great visuals and a rich in features. Very nice syntax highlighting, with automatic bolding of the nearest surrounding tag.

- The HTML tag "hierarchy bar" (breadcrumbs) line is visually stunning and very useful in navigation and to determine nesting. Pity it only works for html does not work for xml - why?

- For the screenshot above I turned on all the HippoEdit visual goodies. Note the progressively darkening background, which indicates tag nesting. Again, it's only for html this feature does not support xml.

- Incremental search uses a separate toolbar as in EmEditor, but it's a built-in feature with full keyboard access, Next/Previous links and highlighting of the search term.

- Another feature no other editor here has. Note the two purple vertical lines in the gutter below. The thicker line indicates lines in the editor which have changed since the last save. The thinner ones indicate lines that have changed in the current editing session and have already been saved. The latest editions of Code Gear Delphi do this as well, but most shareware editors have yet to catch up:

scr-hippoedit-2.png

- Oh, I forgot: one other cool thing about HippoEdit is that it can change the size of the caret depending on the state of the Shift or CapsLock keys. When either of these is pressed, the caret becomes taller. What a neat idea! It's exactly little things like these that are such fun to discover and actually help you work. I'd like to see this feature everywhere - in fact, since the caret is generally managed by Windows, it should be a feature of the OS.

The Bad:

- The name :)

- The hierarchy bar, indentation guides, nesting indicators etc. - all these fantastic features only work with html files, but not for xml do not work with xml files. Time to badger the author!

- Many toggles in the menu (e.g. options to show/hide a particular element of the interface) are not shown checked or unchecked according to whether an option is enabled. This is inconvenient when discovering the features of the program.

- No support for macros or scripting at all. The author says scripting support is coming, and there is some discussion of possible implementations on the forum.


5. HTMLPad 2008

scr-htmlpad2008.png

HTMLPad is a specialized editor for HTML, not that useful for other types of files. It's the best HTML editor I could find at the price I was willing to pay. I'm only including it here to showcase a few display niceties that regular text editors could benefit from:

The Good:

- I love the clear indication of surrounding tags (green background). Much better than just bolding them (or doing nothing).

- Note how the unmatched closing /b is marked in the screenshot.

- The Inspector pane (on the left) is actually useful. You'll note that all my other screenshots show no sidebar panes - that's because in other editors these panes never seem to earn the screen estate they take up, so I rarely use them. I do use them in HTMLPad.

- I like the thoughtful single-key commands to select the whole tag under cursor, or select everything between the opening and closing tags. In some other editors you might be able to fake such a feature by using a regex search in a script, but that won't always work correctly.

(On edit: of course, HTMLPad does much more - project support, ftp editing, live preview with split panes, dialog boxes for complex tags, integration with html and css validators, etc. I find it very convenient for editing html. It's the closest in spirit to the original HomeSite, and it's what HomeSite  might have been if it had not been sold to Allaire. There is also a more advanced version, called WeBuilder, which has all the HTMLPad goodies plus special features for coding in php.)

The Bad:

- No incremental search and no macros (that I can find).

- The display of the tag structure is very readable and clear, but HippoEdit's is better! Oh my.


7. Oxygen XML Editor

scr-oxygen1.png

This is a specialized XML editor, something of a high-end tool that thankfully offers an inexpensive personal license. It can do just about everything with XML, and is way better IMO than the famous XML Spy. I don't use 5% of its features, but it comes incredibly useful when I need to figure out the structure of complex xml files.

The Good:

- When you type a starting xml tag, Oxygen will automatically append a closing tag, that's expected. But the cool thing is, when you later edit an existing tag, it will apply the edits to the closing tag as well, so you never worry about mismatched tags. A thing of beauty.

- Another editor with actually useful sidebar. Note the Outline pane, where the whole structure of the XML document is visible, including (partial) text between tags. Click items in the structure to go there or to collapse and expand blocks. Clicking a section in this pane will also select the whole xml block. Love it!

- Note in the screenshot above the neat way of marking matching tags by underlining them, rather than coloring. Also, structural errors are clearly indicated.

- Oxygen has three different views of xml files. This one is called Grid. I haven't quite figured it out yet, but ain't it pretty?

scr-oxygen2.png

- And now the absolute win in thoughtful design! If you work primarily on xml tags, you can dim the text with a single click, so that the tags stand out better:

scr-oxygen3.png

Or, if you need to work on the text, dim the tags instead:

scr-oxygen4.png

If I were a computer, I would marry this program.


The Bad:

- Written in Java. Takes about a week to start.

- In the screenshots, notice the missing View menu? Turns out, a lot of immensely useful features, that you would expect to find under View, are instead located under the special Document menu. These are commands related to word wrapping, folding, font size, jumping to next/previous tags, as well as validating and refactoring xml. Worse, the Document menu is nested. Easily half the elements there belong under View, and most of the rest should reside under a menu named "Structure" or something similar. Here's just a small part of it:

scr-oxygen5.png

And that concludes my... Hello? Where is everybody? Where did ya'll go? Hello?!

71
I need to set up a small, simple website for my wife's one-person company. It would be mostly static except for a way to switch languages (the site will be bi- or trilingual), with a cookie to store the user's language preference, and perhaps a search mechanism. I know I could use any of the free content management engines, but they're far too complex on the one hand, and on the other hand they don't solve my major issue: the graphical design of the site. I am completely unable to imagine and design anything graphical, so this is what I need to buy.



So I went looking for templates and found a few suitable ones on 4templates.com (just as a reference, I particularly like this one, this one and this one). I like their general look, but before purchase you can only see small-size screenshots, so I don't know what they really look like in the browser, or if they are fluid vs. fixed-width designs, how they react to font scaling, or if the main section headings can be added / removed easily, etc. I would also need them customized in some small ways. The designers have a contact form and say they do customization, but they haven't responded to my questions sent twice over two weeks, so either they're not interested or their comment form is overrun with spam.

Anyway, I don't know where else to look, or even how much I should expect to pay for customizing templates like these. I don't even know if they are particularly good templates :) The ones at 4templates.com are priced between $20 and $30, which is certainly low - but do other designers offer any significantly better (design-wise and usability-wise) termplates for more? Has anyone used such services and would like to share their experience?

I wanted this as a birthday present for my wife, which is April 9th, so it's already a little late for that - but other than that this isn't particularly urgent, so I'd rather spend more time and choose well. Professional website designers, please feel free to respond, but please reveal your interest in keeping with DC policies, and please also understand this will not be a particularly high-yield account :)


72
N.A.N.Y. 2009 / NANY 2009 TEASER: SQLite Scrub
« on: December 10, 2008, 08:14 AM »
NANY 2009 Entry Information

Application Name SQLite Scrub
Version not released yet
Short Description Erase sensitive information from FireFox3 form, cookies and history or any other application using SQLite database for storage
Supported OSes all win32 (I hope)
Web Page none yet
Download Link watch this space...
Requirements
  • None, really. The program is only useful if you are using Firefox3 or other applications that store data in an SQLite databse, e.g. Ditto (clipboard extender)
  • In order to browse an SQLite database to see what it contains and what you would rather get rid of, you need a suitable utility. There are many; I recommend SQLite Spy (freeware).
  • No need to speak SQL :)

Description

Firefox lets you fine-tune which passwords you want it to remember, but this flexibility does not extend to other historical data it stores, such as form history. If you choose to let Firefox remember the forms you fill out, it will remember them all, even those on secure (https) websites. For example, if you've ever entered your bank account or credit card numbers on a form, Firefox remembers them. This may or may not be a concern, but I *am* paranoid about a rogue extension that could access FF's form data and deliver it to its maker.

There was once a Firefox extension to browse and edit form data, but it's defunct now and has not been updated for Firefox 3. My NANY 2009 entry is not an extension (I could never figure out how to write one!), but the upside is twofold:

- In Firefox, it can also be used to scrub data from the cookie file and (later) the history file.

- It can work with any application that uses the popular SQLite database for storing session data. One such application is the clipboard extender Ditto, which offers no way to block certain strings from being stored.

Of course, the same effect could be achieved by installing the free SQLite commandline client and writing a few simple scripts. However, that requires some familiarity with writing SQL statements. With SQLite Scrub you don't need to know any SQL, just tell it what pieces of text you want removed from the database.

Attentive readers will have noticed (I hate that phrase, don't you?) that there's a catch: you don't want your CC number stored in Firefox database, but you have to store it in SQL Scrub's configuration of elements to delete. So isn't it rather self-defeating?

It isn't, because you don't have to store the complete string. If your CC number is 12345678, you can configure it as "delete any string that ends with 78" or "delete any string that contains 456". This is much safer.

The idea is that SQLite Scrub will run at Windows startup and perform the cleanup. (It's very fast.) You can run it manually too, but in that case you need to watch for Firefox (or other supported apps) already running, since they will lock their databases and SQLite Scrub will not be able to modify them. I'm planning to add a feature to automatically close the suported application, perform the scrubbing, then restart the app.That would help, but still be suboptimal, because for example in Firefox you would lose your open tabs, etc.

Screenshot

Only a UI mockup for now, but it gives a good idea of what the finished application should look like, as well as the command set. And no, it doesn't seem to need a menu or a toolbar :) (Right-click menus though, yes.)

scrub02.png

Features
  • Currently, it's strictly a manual configuration deal. There is an xml file where you specify what you want deleted from the database. It's easy though and there will be a step by step guidance.
  • At the monent two applications are supported: Firefox3 and Ditto.

Planned Features
  • Log and report the number of entries found and scrubbed
  • Automatically close and restart supported applications to avoid locking conflicts
  • A nice GUI for configuring the items to delete from various databases.
  • I can add support for other applications - tell me what you need. (You can use SQLite Spy, the freeware utility mentioned above, to check if a particular application uses an SQLite database.)
  • It's possible to add generic support for any sqlite database, but that would require a little more user involvement (you'd have to specify detailed information about the database: table and field names, for example. If you can do this, you can probably write your own SQL scripts, so SQLite Scrub may not be for you.)

Interested? Let me know. I probably won't be adding a GUI unless anyone wants to use it besides myself :)

.marek

73
A huge compliment to Blueberry software, the makers of BB Flashback. I originally bought it in December 2006, almost two years ago, at a 50% (or so) Donationcoder discount.  :-* That was version 1.5.

Version 2.0 has been out for a while, with cool new features (scroll down the page for what's new). The full price is rather steep, at $225. Registered 1.5 users can upgrade for $99 - fair enough, but still costly. Click the Upgrade link, and you're taken to a page with several upgrade options, one of which reads I had an educational or charity discount when I purchased BB FlashBack. Do I get a discount on the upgrade?. Answer: Heck yeah! :up:

Enter your existing license number, and if you originally bought at a discount, the same discount percentage is applied to your purchase of 2.0! I have to use all thse exclamation points, because I could hardly believe it. So it's not $225, and not $99 either - I upgraded to version 2.0 for $49.50.

...and before I finished downloading the new version I already had an email with the new registration code.

Really impressive. Thank you, Donationcoder, and thank you Blueberry Software. A major win.

74
General Software Discussion / TheBat! 4.07 released
« on: February 08, 2008, 12:17 PM »
TheBat! 4.07 is now available. I think this is the first public release in the 4.x line.

http://www.ritlabs.c...s_detail.php?ID=2305

As we already knew, there are no revolutionary changes in this version, which is probably a good thing.


75
I'm looking for a utility that would read XML files and filter out or export only the contents of specified tags. I need to take this:

primevaljungle.png

and get only the "xxxxxx xxx xxxxxxxx xxx" content as output. (I've had to obscure the actual text with x-es in the screenshot, since when I get material for translation, it's accompanied by the most frightful NDAs you've ever seen outside of the likes of NSA/CIA, and I'm not even kidding.)

It has to work in batch mode or be able to load and process any number of files at a time. (The actual numbers are in the thousands, so a manual open->run->save process will not do.)

Has anyone come across such a thing?

(I've written a Python script that does the job just fine for a number of specific tags, but it would be nice to have a generic GUI solution.)

Thanks,
.marek

Pages: prev1 2 [3] 4next