At the autumn of the year 2000 I've started to develop a text editor (for Windows) which called TEA (something like "Text Editing and Authoring program"). It was more than popular in ex-USSR countries such as Ukraine, Russia, Belarus and others; and I did 11 versions until 2004. Then I stopped "TEA for Windows" and began "TEA for Linux". It is my first Linux application, and, actually, my first C-application at all :) I am not a programmer, I'm a writer and a journalist, and I need a text editor that can inspire me to write text. So I do it :)
I completely understand that my English is truly BAD (articles, tenses and orher stuff), but I promise to write this manual good as I can. Note - I don't use a spellchecker, because I think that human minds need to training - both readers and writer's minds. By another hand, any spellchecker will die until it trying to check my writings.
If you have any questions, ideas, propositions or patches, feel free to write me - roxton@linux.kiev.ua. By the way, I understand English good as my native Russian, so don't look at how terrible I write.
Please read this manual entire, coz TEA in some cases is a very non-standart editor. By the first, there are no any confirmations. Why? We are not stupid, that's why! If I wanna do something, so I do it. If I want to close the door, but the door ask me "Are you sure to close me?" and show me the heap of buttons which I must select - it can just annoy me, nothing more. "No time to loose!" (c)Monty Python's Flying Circus. I just want to close the door, and I know that what I want, but the door talks with me, asks me. Am I idiot? Definitely not. So what the reason I have for answering on confirmations? "Are you sure to overwrite?" Yes, because I, with a clear mind, have selected some file name and I have already know that file is exists.
Confirmations are like training level in some first person shooters. THEY supposes that we don't know how to walk, to jump etc. I think that even a little baby knows from the borning that "w" means forward. But no, THEY force us to complete training level. I'm asking - are we morons?
Some words about the interface. Attention! :)
Here are a layout of TEA control elements, from top to bottom:
1. Window bar.
2. Menu.
3. Text-tabs area.
4. Text field called "log_memo" for information output.
5. Text entry (I call it "the famous text entry") for input of misc values such as text for searching, tags for enclosing selections with them, etc.
6. Statusbar :)
About drag and drop. When you drop some text file[s] into the TEA window, that file[s] opens in editor. If a file is the image, it inserts into the current text document as the IMG-tag. It works fine with Konqueror, Gqview, etc. Currently d'n'd don't work when Kwas tab is active!
New - starts a new empty document in UTF-8 encoding.
New Kwas - create a new tab with build-in file navigator that called Kwas. For details follow this link.
New from template - make a new file from the selected template. Please choose a correct encoding. All templates are stored by default in $HOME/.tea/templates.
Open - opens a file[s]. There are a charset selector in the File open dialog window. Choose the correct encoding or you will be amused... By default only 2 encodings are available: UTF-8 and current locale. If you want more, go to Utils > Control center > Add encodings. "What a hell?" - you should say, "is that a weird dream?". You see the file $HOME/.tea/iconv_rc, which is auto-generated by TEA start (if not exists). This file contain all encodings what known by iconv. Here is an example:
WINDOWS-936//
WINDOWS-1250//
WINDOWS-1251//
WINDOWS-1252//
and more...
Please don't try do with this file something another than adding + (plus) before the charset what you wanna add to the encodings list in File open/Save As dialogs. I mean, for example, if you wanna add Windows-1251, you must to edit your $HOME/.tea/iconv_rc like that:
WINDOWS-936//
WINDOWS-1250//
+WINDOWS-1251//
WINDOWS-1252//
and more...
and then save it. When you save this file within TEA, a charset list is immidiatly reloads.
By open multiply files, that files must be in a same encoding - the encoding which selected, or shit can happen. I can't say about the nature of that hypothetical shit, but now you've warned.
About RTF files.
Yes, TEA can OPEN them. Not to save. For correct opening you can define the default encoding for RTF. It can be done with a config variable called rtf_en. By default it is rtf_enc=CP1251
An another question is how TEA opens RTF's :) It really sucks, but it works. If you want just to read RTF quickly, use TEA. If you wanna edit them, use OOO ;)
Manage bookmarks > Add a bookmark - adds a new bookmark record into the Bookmarks list. Each record includes a filename, a charset and a position (position is now obsolete) fields.
Manage bookmarks > Open a bookmarks file - opens a bookmarks file. From there you can delete bookmarks. Bookmarks menu will be updated after you save this file. And don't say that is strange...
Backup - TEA make copy of a saved current file, NOT of a currently editing text.
Save - you know, right? Just a one note - document will be saved in same encoding as you opened it.
Save as - by the way, in this dialog you can select any of encodings what available.
Save as template - saves a current file as template in a default templates directory: $HOME/.tea/templates.
Save session/Open session - a stuff like in Opera; you can store lists of files, and then load 'em as well. There also a one menu item - Open session file - for opening a session file in TEA like a normal text file, without loading of filelist from it.
TEA stores to a session 3 elements per file - filename, encoding and position.
Open config - open the TEA's configuration file ($HOME/.tea/tea_rc). I've decided to don't make a Preferences window (I do not want an additional headache), so you can edit options using a simply text config, which will be described below in a section about it. When you'll save config, all options will be reloaded.
Close current - just close current file, without any annoying questions. I hate all that confirmations "Are you sure?", "Your file was modified" etc. Maybe in a future I'll make an optional confirmations, but for now it is not my primary goal.
Comment - enclose the selection into the comments. It works fine for HTML, Pascal and C/C++ files, according to syntax rules.
Swop - swap the selected text with clipboard content. I.e. text from the selection moves to clipboard, and at the same time the content of cliboard is moving to the place of the selection.
Copy all - copy all text to the clipboard.
Copy current URL - before using that, you must point with cursor to the URL at your text.
Cut/Copy/Paste to new - it means that the seletion in cut/copy to the newly created file. Paste to new works with external, normal clipboard, but cut/copy avoids it.
Of course you can :) TEA even can find for you a smallest star on the sky - just give him some text to find in the ENTRY UPPER THE STATUS BAR. Yeah. No dialog, no OK/Cancel buttons and other traditional stuff. Why? Because :)
Simple type the text what you wanna find, and press Enter or Ctrl-F. To find next, you can press F3.
A search is case-sensitive. It starts from the current cursor position.
Find/Find next - no more to say.
Goto line - enter line number into famous text entry, and use this function. Whoa, it works...
Replace all - and now for something completely different (c)Monty Python's Flying Circus.
Again - dealing with a famous text entry. But now in a special format:
text to find~text for replace
For example:
hell~heck
Scan for local links - scans current document for href-links to local files, and add them (if any) into "Links"-menu, from which you can open a text file in TEA, and a picture in en external viewer (same as Open Selected).
Scan for SRC's - similar as Scan for local links, but now it fills Links-menu with all local SRC-stuff - for most cases with images. It's very useful if you want to see some banner or another picture and don't wanna find it in the code.
Some of functions that described below are working in a dual-way - if there no text selected, then will be inserted pair of tags, otherwise selected text will be enclosed with tags.
Color - opens a color selection dialog. If no text selected, then a HTML-color inserts into the cursor position, otherwise the selected text embraces with FONT-tag with a color property.
Image - opens a file open dialog. You can select an image[s], which will be inserted as img-tags (with filled attributes such as height and width) into the current document. There are supported all formats what GTK+ 2 usually understands - PNG, JPEG, GIF, WBMP etc.
For use text-processing functions, you must select a some text.
Snippets.
A snippet is the piece of code, which you can insert into the text. TEA keeps each snippet as a single file in $HOME/.tea/snippets directory. File name of a snippet is a menu item in Snippets-menu, i.e. a content of Snippets menu is a list of files from $HOME/.tea/snippets.
To create a new snippet, you do:
1. Make some text.
2. File > Save as snippet. UTF-8 only!!!!!!!!!
3. Enjoy :)
You can create a snippet that use a text selection in a some way. For example, you wanna make snippet which encloses the selected text into some HTML-tags. The "%s" macro represents a text selection. Here is an example of such snippet:
<a href="%s">%s</a>
When that snippet will be applied, %s will be replaced with selected text. If no text is selected, snippet content will be inserted into the text.
Insert > Date/Time - inserts a date/time in a giver format. Format must be defined by you in TEA's config with parameter "date_time=" and can be:
A quote from Edition 0.10, last updated 2001-07-06, of The GNU C Library Reference Manual, for Version 2.2.x of the GNU C Library (quoted text is edited by Roxton):
%a - The abbreviated weekday name according to the current locale.
%A - The full weekday name according to the current locale.
%b - The abbreviated month name according to the current locale.
%B - The full month name according to the current locale.
%c - The preferred calendar time representation for the current locale.
%C - The century of the year. This is equivalent to the greatest integer not greater than the year divided by 100.
%d - The day of the month as a decimal number (range 01 through 31).
%D - The date using the format %m/%d/%y.
%e - The day of the month like with %d, but padded with blank (range 1 through 31).
%F - The date using the format %Y-%m-%d. This is the form specified in the ISO 8601 standard and is the preferred form for all uses.
%g - The year corresponding to the ISO week number, but without the century (range 00 through 99). This has the same format and value as %y, except that if the ISO week number (see %V) belongs to the previous or next year, that year is used instead.
%G - The year corresponding to the ISO week number. This has the same format and value as %Y, except that if the ISO week number (see %V) belongs to the previous or next year, that year is used instead.
%h - The abbreviated month name according to the current locale. The action is the same as for %b.
%H - The hour as a decimal number, using a 24-hour clock (range 00 through 23).
%I - The hour as a decimal number, using a 12-hour clock (range 01 through 12).
%j - The day of the year as a decimal number (range 001 through 366).
%k - The hour as a decimal number, using a 24-hour clock like %H, but padded with blank (range 0 through 23). This format is a GNU extension.
%l - The hour as a decimal number, using a 12-hour clock like %I, but padded with blank (range 1 through 12). This format is a GNU extension.
%m - The month as a decimal number (range 01 through 12).
%M - The minute as a decimal number (range 00 through 59).
%n - A single \n (newline) character.
%p - Either AM or PM, according to the given time value; or the corresponding strings for the current locale. Noon is treated as PM and midnight as AM.
%P - Either am or pm, according to the given time value; or the corresponding strings for the current locale, printed in lowercase characters. Noon is treated as pm and midnight as am.
%r - The complete calendar time using the AM/PM format of the current locale.
%R - The hour and minute in decimal numbers using the format %H:%M.
%s - The number of seconds since the epoch, i.e., since 1970-01-01 00:00:00 UTC. Leap seconds are not counted unless leap second support is available. This format is a GNU extension.
%S - The seconds as a decimal number (range 00 through 60).
%t - A single \t (tabulator) character.
%T - The time of day using decimal numbers using the format %H:%M:%S.
%u - The day of the week as a decimal number (range 1 through 7), Monday being 1.
%U - The week number of the current year as a decimal number (range 00 through 53), starting with the first Sunday as the first day of the first week. Days preceding the first Sunday in the year are considered to be in week 00.
%V - The ISO 8601:1988 week number as a decimal number (range 01 through 53). ISO weeks start with Monday and end with Sunday. Week 01 of a year is the first week which has the majority of its days in that year; this is equivalent to the week containing the year's first Thursday, and it is also equivalent to the week containing January 4. Week 01 of a year can contain days from the previous year. The week before week 01 of a year is the last week (52 or 53) of the previous year even if it contains days from the new year.
%w - The day of the week as a decimal number (range 0 through 6), Sunday being 0.
%W - The week number of the current year as a decimal number (range 00 through 53), starting with the first Monday as the first day of the first week. All days preceding the first Monday in the year are considered to be in week 00.
%x - The preferred date representation for the current locale.
%X - The preferred time of day representation for the current locale.
%y - The year without a century as a decimal number (range 00 through 99). This is equivalent to the year modulo 100.
%Y - The year as a decimal number, using the Gregorian calendar. Years before the year 1 are numbered 0, -1, and so on.
%z - RFC 822/ISO 8601:1988 style numeric time zone (e.g., -0600 or +0100), or nothing if no time zone is determinable.A full RFC 822 timestamp is generated by the format "%a, %d %b %Y %H:%M:%S %z" (or the equivalent "%a, %d %b %Y %T %z").
%Z - The time zone abbreviation (empty if the time zone can't be determined).
%% - A literal % character.
Case > UPCASE/lowcase - do that with selected text or word under cursor.
Numbers > Arabian to Roman - for example, was 1977, will be MCMLXXVII.
Numbers > Counter - generates a list of numbers. You must define the format string in the FAMOUS text entry. Format is:
start_value~end_value~[step]
For example:
1~10~5
And as a result we have:
5
10
15
20
25
30
35
40
45
50
By the way, default value of "step" == 1
String > Numerate lines.
Numerate selected lines. You must define the format of numeration in the famouse text entry. The format is weird one:
printf-like format string~step of the counter~initial value of the counter
The two last parameters are optional and equal to 1 by default. Let's imagine that you have a list of music bands:
Nirvana
Scorn
Napalm Death
Defecation
Neck
JR Ewing
Fall
RZA
Meathook Seed
The Doors
Led Zeppelin
Now you want to add a numbering to that list, and in a custom format. So, TEA can do it for you. You write the format string into the FAMOUS text entry. Format string is a very printf-like, i.e. you can use two makros - %d for a counter and %s for a string. To be more clear - %n represents the counter, and %s represents a string.
Here is some examples of format-string:
%d.)%s
%d.)%s~10
%d.)%s~10~4
The second line represents a format-string with a step parameter. Ten is the step value. 3-rd line is a format- string with a step and with the initial value of the counter. It is equal to 4.
You also can use %d after %s, i.e. "%s (%d)" gives to us a result:
Nirvana (1)
Scorn (2)
Napalm Death (3)
Defecation (4)
Neck (5)
JR Ewing (6)
Fall (7)
RZA (8)
Meathook Seed (9)
The Doors (10)
Led Zeppelin (11)
String > Convert tabs to spaces.
Be sure to enter tab-size into the famous text entry before. The value of tab-size is the number of charaters per one tab.
String > Convert spaces to tabs.
And here FAMOUS text entry = how many spaces to find for replace each of them to the tab.
String > Reverse - reverse a text. I.e. was roxton, will be notxor.
String > Antispam e-mail - makes selected mailto-link probably invisible to that damned spammer e-mail harvesters, by converting address into integer-code entities. For example, if you'll look at the source of that document, so that link will looks like a heap of garbage. I hope that scanners don't understands it. I took an idea from a some issue of LinuxGazette.
String > Remove blank lines - removes blank lines form selected text. I don't think that it is a needful thing, but... Maybe it will be useful to somebody.
String > Remove duplicates - removes duplicated _lines_.
String > Sort lines - Sort lines in the alphabetical order.
String > Trim each line left on char N - trims each line of the selection on a character N at the beginning of the line. You must enter the value of N into the famous text entry before using of this function.
String > Trim each line right on char N - trims each line of the selection on a character N at the ending of the line. You must enter the value of N into the famous text entry before using of this function.
String > Trim each line left on N - trims each line of the selection on a character position N at the ending of the line. You must enter the value of N into the famous text entry before using of this function.
String > Reverse order of lines - better I'll show you an example:
Was:
Line 1
Line 2
Line 3
Line 3
Line 2
Line 1
String > Enclose each line with - and again we use FAMOUS text entry :) For example, I want to add br-tag at the end of each line of selected text. So I type into the entry:
~<br>
And then I apply that function and get br added to the end of each line. In another case, I want to enclose each line into a pair of li-tags. I type:
<li>~</li>
Then apply a function, and feel the prana :) So, as you understood, the sign ~ is a divider between the prefix and the suffix of each line. There may be no prefix, or no suffix. If no suffix, then you don't use ~, just type prefix, and nothing more.
Filters > Kill lines with a phrase
Select a text. Enter some phrase into the famous text entry. Apply this function. As a result, all lines containing your phrase will be deleted from the selection.
Filters > Kill all lines except with a phrase
Select text. Enter some phrase into the famous text entry. Apply this function. As a result, all lines without your phrase will be deleted from the selection.
Document height - calculate total document weight including all SRC-staff (i.e. images, flashes etc). See result in the logmemo.
Make table - I don't like any wizards, but I always want a tool for a quick creation of tables. So I did it. Again we use FAMOUS text entry. It's very simply. Just type:
rows count~columns count
And apply this function...
For example, we wanna make 2x4 table - 2 rows, with 4 cells per each row. So our template will be such this: 2~4
Catch it? And now for something completely different :)
Build-in template - inserts hardcoded HTML template into current document.
Enclose selected link into tags - doing that :) If you want to enclose a www.foo.bar or ftp.foo.bar, or mailto:foo@bar.com with a "a href"-tag, so use this function and be happy.
Strip tags - kill all tags from HTML-document. Will you kill'em or not? It's a hard decision, but see - you must, MUUUST do that!!! AAaa!!
Convert tags to entities - if you want to show some HTML-tagged code in your HTML-document, so select your code and use this function. You'll get, for example:
<b>demo</b>
From this menu you can switch encoding for the current document. Encodings are the same as in "File open/save as" dialogs. When you switch an encoding, it means that the current file's content will be reloaded as with a different encoding. So use it carefully, only if you want to change encoding when you see some kind of crap in a place of text.
This menu called such in a historical reason. TEA for Windows had a VERY big menu, where not all top-level items can have a place, so I'd abbreviate some of them and made "Browsers" shorten to "Bro". From this menu you can view current file with some browser. To override default hardcoded commmand lines to each browres, you may open TEA's config (by File > Open config) and add your cm-lines in a form of browser_name=command_line, for example konqueror=konqueror %s. %s is a needful macro for a current filename, so use it in a properly place. Here is a list of browser names, which cm-lines you can ovveride:
opera
firefox
mozilla
konqueror
galeon
dillo
lynx
epiphany
arachne
other_browser
Please remember that names are case-sensitive, so Opera is not opera and will not works.
Go to previous tab - switch to the last accessed tab.
Focus the text/Focus the FAMOUS text entr - useful, if you want to assign some hotkeys for switch between a text tab and the famous text entry.
Go to the block start/end - really does it. For C-like languages or PHP. It moves the cursor to the current block's start or the end ({ and } characters). I think it's useful.
Open at cursor - if you have a link to a local file at your HTML-document, you can open it with this function, just point to filename in the text and use it (pressing F2 will be more quick). If you've pointed to an image-file, it will be opened with built-in image viewer. You can also use an external viewer, by config's variables use_ext_image_viewer=1 and "ext_pic_viewer=application %s". By default there is "ext_pic_viewer=display %s&". Display is a utulity from ImageMagick, which you can find in your distro.
If the file is not an image, then it opens in TEA as text file with a same encoding as of the current file's one. If the file is opened yet, it makes it current.
If you have a link to some local "a name=" - label, then by pressing F2 you'll jump to the place of definition of that label.
Edit at cursor - the same thing as the previous one, but it calls for a file not a viewer, but the external editor. Here is a clue: "ext_pic_editor=application %s". By default is: "ext_pic_viewer=gimp %s&"
Here are names of local files from links in the current document - you can get them by Search > Scan for local links (I've described it previously). More of that, from this menu you can switch to yet opened (in TEA) document.
Document stats - as for journalist, I more than often see text stats of current article ('cause characters is a money :), so you can imagine how I hate, using other editors, to press the OK button or Enter in the each case when I saw statistics. In a TEA, I do output into the log_memo, and I don't need to close any windows after that :)
Customize hotkeys - yes you can. All hotkeys were stored in the $HOME/.tea/tea_hotkeys file. This file MUST contain only UTF-8 data. It as a simple text file, which you can edit in TEA using Customize hotkeys menu item. All changes will be applied after you save this file. If new hotkey overlaps and older one for the same menu item, then changes will work after the TEA restart.
Each line of tea_hotkeys has a simple format:
menu item caption=hotkey
For example:
Reverse=Alt Shift R
Some notes. Caption is case-sensetive. So you must write it exactly as in the TEA menu. Otherwise, hotkey is not case-sensetive, so you can write freely something like that: "shift ctrl F5" or so. Available modifiers are: Alt, Ctrl, Shift. You must divide them by spaces.
You can assign a hotkey to any menu item, even for the dynamical-created items like a bookmarks.
UNIversal Text AnalyZer.
What is UNITAZ? It's a fine tool for the text analysis. It shows you the list of words from the current document, and shows the count of each word. Call UNITAZ with sorting abc - do analysis and then sort words list, Call UNITAZ plain - do analysis without sorting. Call UNITAZ with sorting by count - the same, but with sorting by the word's count.
Extract words - extracts all word from the current document. It is useful, for example, if you want to make a some sort of dictionary or so. Warning! All that functions are relatively slow, so be patient and don't think that TEA haz freezed.
Also UNITAZ shows how many words are total, and amount of unique words - words count WITHOUT repetitions of that words.
Dump menu - that function dumps menu to the newly created file. It is useful when you want to add some hotkeys into your hotkeys config-file and you don't wanna type all that menu item captions by the hand.
Refresh highlight - TEA has a very ugly ability to highlight HTML-code. With this function, you can update it manually. I promise, that in a future there will be more cool hl.
Word wrap - do you need an explanation? And why I write that paragraph?
Line numbers - the song remains the same...
Kwas is designed for replace the standart "File open" window in TEA, so don't expect much from that file navigator. You can open it in several tabs, you can navigate thru directories, sure you can open files in the desired codepage and view images. In the future I'll extend the reatures list, but for now that's all.
You can use the FAMOUS text entry as address bar for the Kwas. Just type there the path that you need (when Kwas tab is active) and press enter. While Kwas is focused, you may press C and jump directly to the FAMOUS text entry. You know, that's reflex from mc to try enter the cd
An another key is Backspace - directory up.
Here are basic info about options, what you can add into TEA's config file. I promise that will be more and better. Note - in the config, 0 means off and 1 means on - if no other meanings.
Do or not do backups:
do_backup=0 or 1
dafault value = 0
Type of main window's caption:
window_caption_type=value
where value can be:
0 - on default; it shows full path of the current file.
1 - show only filename (for misc. paranoic or security reasons - yeah, THEY will never, never know where you'd store your files and the most strategical weapon - unwashed socks...)
Word wrap by default
word_wrap=1 or 0
default value is 1
Show line numbers by default
show_line_nums=1 or 0
default value is 0
Maximum amount of recent items in a list
max_recent_items=value
default value is 7.
Default tab size
tab_size=value
The value must be in a count of characters, so, 3 = approx. 3 spaces. 3 is default value.
Set a default editor font:
editor_font=font description
The font description can be, for example, "Fixed 14" (without quotas) or "Monospace 12"... For correct font description string please use dialog from Utils > Control Center > Select font.
Syntax highlighting colors and fonts:
You can define color using variables below:
tag_comment=color
tag_identifier=color
tag_digit=color
tag_string=color
tag_html_tag=color
tag_preprocessor=color
tag_type=color
All colors are listed at the Appendix 1. Also it can be a simply "HTML-color", i.e. rgb-value in the format #rrggbb.
Also you can define a font for the each group of highlighting items:
tag_comment_font=font descriptionFor example: tag_comment_font=Monospace Italic 16
So, as you see, the font description has a format: font_name font_properties font_size. Examples are:
Monospace Bold Italic 16
Palatino Italic 12
etc
text_foreground=color
text_background=color
text_sel_foreground=color
text_sel_background=color
You can also use one of preset color styles by setting a editor_color_style variable:
editor_color_style=value
A value can be: disabled (this one applies your custom color settings; set by default), mc, fallout legacy, ukraine, console.
Turn highlighting ON on a file open
do_hl_on_fileopen=value
It working only for HTML-files (xml, xhtml etc.)
Autodetection of encoding (codepage)
do_enc_autodetect=value
value can be 0 (off) or 1 (on). By default is off.
Also you may specify the encodings/languages which TEA must detect. For this there are available some boolean variables:
enc_det_cp1251
enc_det_koi8r
enc_det_koi8u
enc_det_866
enc_det_finnish
enc_det_german
enc_det_serbian
enc_det_polish
enc_det_portuguese
enc_det_spanish
enc_det_turkish
enc_det_slovak
enc_det_slovenian
enc_det_latvian
So, if you want to autodetect German, you must set enc_det_german to ON, i.e. enc_det_german=1. All this variables are OFF by default (for a sake of speed).
Scan for local links automatically
scan_for_links_on_doc_open=value
value can be 0 (off) or 1 (on). If on, then TEA will scans local links automatically on file open. By default is off.
Turn the snippets engine on/off
use_snippets=value
If 0, then no snippets-directory scans.
Height and width of File save/open dialog windows
saveopen_h=value
saveopen_w=value
Values in percents. Default is 75. So,
saveopen_h=75
saveopen_w=75
Max. logmemo lines
logmemo_lines_max=value
Determines how much lines will be written in the logmemo before it will be cleared to prevent memory eating.
RTF default encoding
rtf_enc=value
Default: rtf_enc=CP1251
Peter 'Roxton' Semiletov (1977-20??). Today I'm working as a freelance journalist in Ukraine and Russia. I already have around 300 just "paper" publications (since the end of the year 2000) and I think it's not too bad. Yes, I sell my articles, but I don't make a commerce with my novels and stories - they are all available for free in the Net (look at www.roxton.kiev.ua). On the Russian language, heh-heh-heh... //I mean, that was a very sarcastic laugh.
Things that I like: punk rock, Nirvana, AMD processors, Russian classics literature, writing, Napalm Death, Scorn, indie-movies, vegetarianism, KDE, Led Zeppelin, Linux Mandrake, cola, Fallout, RPG's, my own ugly guitar playing and singing (oh, my aesthetic grindcore singing), Mitsumi classics keybord, Sinclair computer, NES, Sega MegaDrive/Genesis, Fender mediator .88 mm M/H (you know, such green), Monty Python's Flying Circus, H.P. Lovecraft's prose, Radiohead, Musorgsky, freedom of the choice, GPL, tea, kwas, black T-shorts with rock themes, gcc, walk by the forest with my girlfriend, 3dfx Voodoo 3000 (rules forever).
//note: you can find a full list of colors at pango-color.c from Pango library source distribution, or at rgb.txt - probably in usr/X11R6/lib/X11/
alice blue
antique white
aquamarine
azure
beige
bisque
black
blanched almond
blue
blue violet
brown
burlywood
cadet blue
chartreuse
chocolate
coral
cornflower blue
cornsilk
cyan
dark blue
dark cyan
dark goldenrod
dark gray
dark green
dark grey
dark khaki
dark magenta
dark olive green
dark orange
dark orchid
dark red
dark salmon
dark sea green
dark slate blue
dark slate gray
dark slate grey
dark turquoise
dark violet
deep pink
deep sky blue
dim gray
dim grey
dodger blue
firebrick
floral white
forest green
gainsboro
ghost white
gold
goldenrod
gray
green
green yellow
grey
honeydew
hot pink
indian red
ivory
khaki
lavender
lavender blush
lawn green
lemon chiffon
light blue
light coral
light cyan
light goldenrod
light goldenrod yellow
light gray
light green
light grey
light pink
light salmon
light sea green
light sky blue
light slate blue
light slate gray
light slate grey
light steel blue
light yellow
lime green
linen
magenta
maroon
medium aquamarine
medium blue
medium orchid
medium purple
medium sea green
medium slate blue
medium spring green
medium turquoise
medium violet red
midnight blue
mint cream
misty rose
moccasin
navajo white
navy
navy blue
old lace
olive drab
orange
orange red
orchid
pale goldenrod
pale green
pale turquoise
pale violet red
papaya whip
peach puff
peru
pink
plum
powder blue
purple
red
rosy brown
royal blue
saddle brown
salmon
sandy brown
sea green
seashell
sienna
sky blue
slate blue
slate gray
slate grey
snow
spring green
steel blue
tan
thistle
tomato
turquoise
violet
violet red
wheat
white
white smoke
yellow
yellow green