Good day Habralyudi!For this topic a respected
UFO sent me an invite.
Invite, I subsequently "for small" epically not profile
(thanks to gmail for having a dot in the login means nothing).
I warn you right away, I type quickly, so there will be a lot of letters.
')
The topic is dedicated
to this thing .
This is addon to Mozilla FireFox, which adds
kbTrainer to it.
If someone suddenly needs an office. site.Further recommended not to read.
Topic infinitely tedious!
Umm ... I edited it "slightly" here, of course, habrakat added, etc.
Nevertheless, Topik turned dull and boringThe answer to the question "Why" ...Somehow, a long time ago I found on your site an
entry about this my “hand-made article” .
Well, it happens that way, you know, you go around the network, you are looking for where and what they said about you.
Curiously, captures, here and wander through the search engines ...
Such a warm and exciting feeling when you see that someone needed what you did!
And not a "neighbor in mind" ...
(A neighbor of reason, this, of course, is “strong”, but you will agree: “Can a sane person write keyboard trainers?” The diagnosis is “obvious”.).
Nevertheless, I do not think that there is anything reprehensible in this.
I, in principle, and then and now it was enough that the craft is generally downloaded ...
But I wonder where, why, why! :)
That wandered, wander, I'll wander, etc.
Mostly come across links from software directories ... sad and boring ...
And here, in the issuance of Yandex page so on the tenth - such a wonderful little article.
By the way, it was after this that I generally found out that there is, it turns out, Habr, Leprere and Themed Media ...
In general - stumbled. Ran through. It turned out - fun.
Having poured a seagull and stocking up with buns, I decided to finally read EVERYTHING sensibly and with an arrangement ...
After all, comments are the most interesting!
Thinking a little more, he went for valerian and corvalol.
As it turned out not in vain ... After some "pearls" I had to pump myself a little.
Then very, you know, I wanted to talk with the commentators ...
In the end, I realized that even if I get an invite, it will all be a “necropost”.
And the necropolis is antisocial.
But, nevertheless, at first I tried.
I am not a designer, for an invite I needed some kind of picture ...
You could still write an article ... But I'm not a writer.
To write about what I did - and why I actually did this, what I should write about ...
And about kbTrainer already written instead of me.
In general, I decided that the desire to respond to "commentators" is not worth the effort to get an invite.
Articles on Habré can be read "and so", which means "nefih-nafih" ...
What happened now, and why I actually write this now.What happened was that I started
Ubuntu 8.10 at home.
He cherished it and cherished it, but could not start the
HTA .
My hands are growing like most "normal people", in general, "not a sysadmin" I am.
I don’t know C / C ++, I don’t understand the Linux source codes, I don’t rebuild the kernel myself ...
Why did I need it (Ubuntu)?
You see, I work, so to speak, in a company that fights for the rights.
Actually, I have a laptop, a worker, on it "take it out and put it" ...
And at home, and at home - not to be in danger.
This, in general, the situation happened ...
My “creation” remained “at work”, and now it wasn’t at home.
Sad, sad, insulting - in the end!
The months went by, I was sad, but I did not do anything - well, work, life, you know.
"- Hobby is not such a thing that is seriously distracted."
The continuation happened recently, and, as usual,
suddenly .
“On duty” I met “wonderful [... fill in the right here ...]” - “ADODB.Stream”.
Who knows will understand.
I realized that for about a year I hadn’t updated my brainchild ...
“So what, that only for Windows ?!” - I thought - “but if you add work with Latin1, UTF, KOI - then how many users will I still“ open the way to perfection ”!
Such a thought came.
Correction of the code took a couple of tens of minutes.
After that, on all "my" directories, the version was immediately updated.
But then an emergency occurred.
You see, except that I am not a sysadmin, I am also not a programmer at all (or not a programmer at all).
I do not have a special "programmer" education.
I represent myself as a “normal man like that,” an economist and mathematician by profession. No, well, I once went to university, not the worst. We, as future economists, and little, again,
"future" mathematicians were taught there Word, Excell, Visual Basic. There were even special courses on Oracle (but so, "without fanaticism") and mathematical logic.
As a good programmer friend once put it: “You are a man spoiled by Visual Basic.”
"I program" as an alcoholic - "avidly."
How many times have already renounced - "Do not start again!".
It spoils, you know, the measured life of a quiet man in the street.
It spoils something like a bearded joke about “here and now ...”
But, nevertheless, THIS - happened, and now, it's one o'clock in the morning, but I am not sleeping again.
I have, so to speak, the next "binge."
Anyway…
Nevertheless, when IT happens, in my opinion it turns out - not bad ...
How did IT start?
After completing my studies, I had a trick “tinkering” a couple of times, but that was the time of “becoming RuNet”, and for clients the static site “with snowflakes” was considered “Riding Perfection” for the new year.
It has since remained an interest in JavaScript.
After all, in fact, this is the only thing that I had to do then.
Unfortunately, the lack of skills in algorithms and reading manuals often led to incidents.
I regularly "reinvent the wheel." He drew these snowflakes, made trees "as in Explorer"
(on the tables, the fact that the lists are easier and more fun I learned much later).
In general - ate. And threw. For a long time.
Later, from time to time I had to practice, but these were corporate networks and WSH.
By 2005, I was tightly hooked on 1C, and the skills to
Create an Object ( " Scripting.FileSystemObject " ) helped a
lot .
Then I abandoned 1C, I started a normal philistine job - I got a job as an engineer in a bank.
*** years passed ***
In the summer of 2007, I decided to learn FAST! print.
Many had, some, as you see, did not pass.
I do not sit in chat rooms, rarely on forums.
Almost no one writes letters to me, and I write to almost no one.
Instead of all these wonderful delights of civilization, I use the phone.
But here, it seemed to me that having the line “speed typing Ru (***) | EN (***) characters” in the summary would be a very weighty argument in my favor.
Conclusion - download keyboard simulator.
Stumbled - found
Solo .
It turned out that it was worth a damn ... not so hot, but it was worth it.
Having passed a couple of lessons in the demo, I realized that this is psychological pressure - “not for weak minds like me,” and it is no longer able to withstand it, you need to look for an alternative ...
Subsequently, however, Solo, I still bought.
Do not imagine a friend for his birthday. Previously, of course, I looked at what I was buying.
It was “already better,” and it seemed to me that, as a small gift, it would be “by the way.”
But - let's continue: Yandex will help us - found and downloaded
Stamin'u .
I trained with mesyatsok, caught up to 250 ...
In the process of self-improvement,
I , as a
“creative person,” with a
“rich inner world,” came up with different thoughts to improve this remarkable piece of programming art.
First, I wrote to Alexey Kazantsev (the author of Stamins) a couple of letters asking “is it possible?”.
Alexey answered something in the spirit of “I have not programmed for 3 years already”, etc. etc…
Then, after reading the forum, I realized that such "requests" come to him regularly.
This is not to say that I was very upset - Stamina is a wonderful product.
However, something is so "stuck."
And then, one day, it dawned on me:
But I can do this in JavaScript!It so happened that I was already familiar with what is, it turns out
HTML ApplicationsExcited, I went out into the yard ... sat down on a bench and lit a cigarette.
Ideas "swarmed" in the head. The latter was not the most successful ...
But, nevertheless, it sounded like this: “Everything! No, EVERYTHING will be written in scripts! ”
Of course, inside the scripts I used to create HTML tags and access CSS properties. But the initial decision that 99% of the code will be through JS, no longer changed. Just so, because "we are not looking for easy ways." It was important for me, you see, to prove to myself that this can be done only by coding scripts.
Such is the most important task ...
Then came the "hard times" of sleepless nights, being late for work, overflowing ashtrays and indignant relatives. But somewhere deep inside, deep down, I was in nirvana, because I was Created!
Of course, the "lack of opportunity" to write in HTML and CSS interfered, but not much. I "beat" the next "bicycle". Made short links to all the objects and properties I needed, that was enough. The idea that there is a jQuery and a Prototype somehow didn’t even occur to me (well, I didn’t know about them), as well as the thought that it is worth looking for something similar. After all, "We are Russian programmers" - we despise someone else's code! Such a naive one. By the way, maybe it is for the better. After all, the code was 100% personal, mine, “licked” by me. The first thing I encountered was that large scripts are very uncomfortable. I decided to write my pre-loader. I heard the concept of AJAX, but I didn’t really read anything ... Thus, I finally found out that it turns out that even if you make an array of paths and feed it for loading, it’s not a fact that the scripts will be loaded sequentially. Loading is asynchronous, something is slower, something is faster, even working on a local machine ... It was sad, but saved readyState. There were other "problems", in particular, the "wonderful work" of Scripting.FileSystemObject with large text files (as it turned out, 200 kilobytes is dead !!!). I had to "cut them into pieces of 8 kilobytes." But the most Dreadful thing was that, directly from JavaScript, it was impossible to find out the current layout, you need to make a COM object ... And I do not know how. As a result, I had to write my own handler for Ctrl, Alt, Shift. But now it doesn’t matter to me what the user’s layout is ... I’ve chosen the one I’ve chosen ... If you only knew how much time it took to add a reaction to CapsLock! (I decided to make such a feature, because I saw it in linux) It turns out that it’s not being pressed, the reptile ...
Well, yes, "f furnace", done already ...
One way or another, but in the end, by January, something appeared that was later written on Habré.
I can only note that “by the end of development” it became so lazy to write that I stopped creating objects, and “in the tail and in the mane” pulled innerHTML, “put”, so to speak, into it. :)
The development has been completed. "Tired but satisfied, they were returning home ..."
It remained to do just one thing ...
I just had the idea that you could write something for yourself, and then give it to others to be torn apart.
The motivation is clear - "increased self-esteem."
(again, if needed, it will be possible to put a tick in the summary)
But before you put it on the Internet you had to do something else that is IMPORTANT ...
Eating someone else's bread is bad. It is necessary though to ask permission.Because I was already slightly acquainted with Alexey, then, in fact, this is the
question .
And, to my indescribable joy, there lies the answer.
(if someone Suddenly is interested in the accuracy of the correspondence - I can send it)
Well, on March 5, 2008, kbTrainer appeared, along with the site
code.google.com/p/kbtrainer .
I sent the program to Alexey, and he even posted the news on his site (it is still hanging, on March 5, just in case
here is a screenshot ).
After this "execution" the unexpected happened. Another half a year I was engaged in the development of new versions and the correction of errors. It is difficult, hard ... I didn’t expect that “careless users” would, well, try to print. So, from version 1 it reached version 1.23U (U appeared as a result of the conversion of all code into UTF 16LE).
Then, again for about a year, until I found out about ADODB, I no longer returned to the edit code. But I found out. And on August 11, version 1.25 appeared (the last one at the moment) and now I think that U is support for Unicode encodings when loading books into the library.
***
Farther…
Unfortunately, in August 2009, Linux was already in my home. I did not manage to get rid of the half-hour coding of version 1.25 - I instantly went into a rage and another “binge” began.
I just knew that there is FireFox in Mosilla, and there is XUL in it, and addons are written in JavaScript.
What is not a reason: “And here Ostap suffered ...”
The result: September 17, 2009 appeared
XUL version kbTrainer .
The code is significantly modified, not only for working with XUL, but also for various other useful things.
CSS is now also "possible" (skins and keyboard layouts).
It works in Linux, hurray!
True, my Linux is stealing the layout change, and instead of the key codes it gives out “0”, so now there is a magic F5 button, which forcibly changes the layout.
In general, something here and there is still being tested and appended, but one way or another.
It turns out that the “Microsoft rights movement” led me to a creative process.
So - thanks Billy! This is such a joke, "if cho."
Yeah, well, and here ...
The code is open, use at your discretion.
The code for communicating with the FireFox API is cheekily rewritten from the source code at
https://developer.mozilla.org/En (well, there are comments from where they come from and what has been taken).
Please, if suddenly you want to use JQwery for some reason and you decide to take my mixer.txt (well, all of a sudden) - make a link to the kbTrainer website in kamentah.
If someone wants to add "something of their own" - you are welcome:
http://code.google.com/p/kbtrainer/wiki/slkmIf anyone wants to download Addon right now:
https://addons.mozilla.org/ru/firefox/addon/14396It is possible and on my site (though, there is not configured to issue a header for XPI, well, Google doesn’t know what kind of animal it is, so save and drag it to FF):
http://code.google.com/p/kbtrainer/Yes, the button itself does not appear on the panel, please add it yourself from “View -> Toolbars -> Customize”. This is a Mosilla recommendation, I did not invent it. Maybe later, somehow, I’ll finish the automatic output of the button to the panel, but not now, for I am tired of not sleeping again for a month and a half.
What forWe can say that I almost answered the question "why did I write it now."
I will answer “to the end” so that everything is clear: although the likelihood that another site about kbTrainer would accidentally appear on this site is negligible, however, I don’t want to worry if I’ve learned about it not personally, but from the issue of Yandex.
:)
How to live with all this knowledge ...Comrades, if someone liked it all and "it became terribly interesting."
I invite you to "join the project":
can be hereor hereIn addition, you can leave comments on the
add- on
page , down there.
Finally, there are significant issues:
here (XPoint.ru) .
In general, I will be sincerely happy with any help.
I promise to tell about you in the help system, etc.
Thank you, sincerely your went.