February 24, 2007

Copyrighting Databases

Here is a brief summary of the discussion about a GNU license for databases/dictionaries, and a primarily conclusion out of it.

“You cannot copyright databases in the US AFAIK. There was a case about a phone dictionary” “why would we regard some dictionaries' definitions as better than others? There is not a single, correct definition of any English word”.
“A dictionary requires as much work as a phone book and isn't a very creative process” “The amount of work isn't important, it's about the creativity. Writing all those definitions in the dictionary requires creativity, so you get copyright on the dictionary”.
“you cannot copyright the name + number in that phone book, since that is considered a ‘fact’.”  
“a list (database) of genomes for a bunch of species isn't copyrightable either”  

Yes, phone numbers, contact info, genomes, are definitely facts. In this case, I don’t claim the its content is subject to copyright, but maybe its design.

By contrast, natural languages, so far, don't have a structured architecture. Most people believe that its impossible or very difficult to put them in a structured shape.

So, here, in this case, in a dictionary case, when you build a bilingual dictionary - not just a wordlist -, in fact, you're trying to convert something unstructured to a structured thing. You're trying to (create) and (innovate) 'structuring standards', and structuring contents according to these standards.

So, the procedures and the activities that make databases subject to copyright are:

  • Normalization: Designing UML/ERD.
  • Structuring something unstructured: Word definitions are not “Facts”.
Posted at 11:11 PM | Comments?
Categories: Business, Internationalization

February 12, 2007

Notepad2, a silver pearl in a 'win' shell!

It's been more than ten years since Microsoft published the first version of its own plaintext editor (Notepad). And so far, no significant improvements or modifications happened. It still as is: simple, small, without frills!

Notepad2 is an alternative, tries to expand the original software's capabilities, with following and maintaining its principle; simplicity.

A principle-driven software

So, can we say here that Microsoft's applications are principle-driven, rather than user-satisfaction driven?

Well, actually, I don't think so.

Commercial software, just like any commercial products, are customer-satisfaction-driven. And that's what happening in all commercial Windows-based applications, but not in Windows itself!

Why?

Because Windows is meant to be an infrastructure for these applications, and any functional improvements in this infrastructure can hurt hosted-software's functional role, and thus, their competitive existence in market! So? there's no serious chance for functional integration in Windows!!

And that's why Notepad is still like this!

Now, on the other hand, in business life, "Customer is always right", which means even if he or she isn't! I mean according to given principles or standards. But in software industry, which seems like chemical industry, because of its complex and critical nature first, and its deep and unexpected effects in human being secondly, you can't follow this rule simply here!

A sophisticated software designer can provide far more than what user could imagine. He or she can offer him or her capabilities and functions user wouldn't imagine before.

As an example, I wouldn't imagine that it could be possible to show a bidirectional text in one plaintext file, so I didn't even ask myself if there's a solution for it or not! But when I saw it for the first time in a real software, which was gedit, I was very grateful to open source community for their unexpected help and solution!

Another example was the approach of showing (Find) function in Adobe Acrobat 7.0 and FireFox.

(Find) in Acrobat

So, unlike commercial software, that're necessarily user's-satisfaction-driven, open source software are principle-driven.

... Unlike a snowball trundled in a very quick, random, and non-stop cycle, the only one who can stay in shape, in such a 'storming environment'; is penguin!

Notepad2 and PunBB are the most successful examples for principle driven software.

Doesn't seem like you should sacrifice with some features and functions, in order to keep your software under your principle's control?

Simplicity deserves sacrifice!

An overview

Notepad2 consists of two software components: Scintilla editing component, located in http://www.scintilla.org, enclosed by a shell interface called Notepad2, located in http://www.flos-freeware.ch/notepad2.html.

A silver pearl in a 'win' shell!

The following matrix will give you a quick view of how far Notepad2 went comparing to Notepad, in which we want to suggest improvements.

Notepad Notepad2
Highlighting N Y
Regular Expression N Y
Rectangular selection N Y
Overwrite mode (insert) N Y
line numbers N Y
Tool bar N Y
Status bar Simple (XP only) Y
Replace 2k/XP only Y
UTF-8 support 2k/XP only Y
BiDi No, but you can use right Ctrl+Shift to turn the direction of the whole lines right. N

Requirements for Notepad2

Find & Replace
  1. Showing Find and Replace functions in a toolbar, just like FireFox and Adobe Acrobat 7.0. The find options (check boxes) will be turned to toolbar buttons, as switch buttons, just like Word Wrap button in Notepad2 itself. Notepad2 - DefaultNotepad2 - Improved
  2. Multiple line Find & Replace: is a controllable option, using a button in Find/Replace toolbar.
  3. Highlighting Regular Expressions syntax in Find/Replace field(s).
  4. Moving on a new line (using Find/Replace, or either Go To/Go To next or previous bookmark) should put the target line in the top of Notepad2 window as much as possible, rather than the bottom of the window, as usual!
Commands & Options
  1. All commands in File & Edit & Help menus should be customizable in toolbar.
    Since they're used as (operational functions), you need to deal with them continually, every time you open Notepad2.
  2. All commands in View & Settings menus, including all their sub dialogs should be organized in one tabbed dialog called (Options). With a button on toolbar to reach them. I might write more about this dialog box in future.
    These commands are used as (Control functions), you don't need to deal with them that much, but occasionally first; (therefore they shouldn't be as a part of the direct-interface items), and all together secondly (thus they should be in a One Control Panel). Operational Functions vs. Control Functions
Miscellaneous
  1. Keyboard shortcut info in tool tips.
  2. Showing/Hiding space/tab/paragraph marks.
  3. Cleaning Spaces.
  4. Print preview.
  5. Document statistics: Lines/Words/Characters without spaces/bytes. Just like gedit.

Requirements for Scintilla

Bidirectional text support:

As a suggestion, If the first character of the whole document was an Arabic character, the scroll bar should be in the left side of the application's window.

Notepad2 - No BiDi support Notepad2 - With BiDi support

Actually, I was planning to develop an Arabic GUI for Notepad2, but I realized it doesn’t make sense to provide an Arabic interface for a non core Arabic-support application!

It doesn't make sense to develop an Arabic interface while Arabic texts will not appear in the (right) direction!

Miscellaneous
  1. Highlighting CSS & JS scripts embedded in HTML documents.
  2. Linux shell (.sh) file support.
  3. Recognizing Hypertexts: optionally, just like 'Word Wrap' button.
  4. Spell Checking: with distinguishing between programming and natural languages.
Posted at 2:09 AM | Comments?
Edited on: June 17, 2008 10:06 PM
Categories: Business, Open your Windows