пʼятниця, 27 серпня 2010 р.

Спасибо Партии за это!


You will find that I am kind. Unlike the cruel Leonidas, who demanded that you stand...I require only that you kneel.
Xerxes

Як навчив мене ivanko, у житті простих українців не все так погано! Сьогодні, наприклад, з'ясувалося, що програма Януковича вже почала виконуватися в розділі про відтворення населення. Щоправда дехто вперто вважає, що це їхня особиста заслуга, хоч у програмі чорним по білому написано
МОЯ МЕТА – П’ЯТДЕСЯТ МІЛЬЙОНІВ ГРОМАДЯН УКРАЇНИ ВЖЕ У 2020 РОЦІ.
У мене таке враження, що не всі ще розуміють переваги вертикалі влади, яка ударними темпами будується в Україні. Ну, нічого, незабаром по телевізору розкажуть правду! Адже за Ющенка такого не було, значить — заслуга нової влади!

Инша річ: як удалося досягти таких успіхів за такий короткий час? Ще навіть тримісні ліжка «Федорович з нами» не почали випускати, хоч усе до того йде... Та в мене є теорія! Думаю, це прямо пов'язано з кількістю активів подарованих новою владою братній Росії. Отож божественна благодать (МП) і спустилася нашу грішну землю, і вже від цієї благодаті народжуються онучата Януковича!

Можливо, ви і не збираєтеся так виховувати своїх дітей, але не хвилюйтеся: у школі їх обов'язково навчатимуть правильно! Адже одразу після зміни минулого зазвичай іде встановлення контролю над реальністю. Я думаю, Федорович такими темпами до кінця наступного року впорається — ще й дядя Вова заздритиме!

четвер, 26 серпня 2010 р.

Інтер-nazi-аналізм


...Несмотря на всю эту милицейскую хунту и попов-скинхедов, в России по-прежнему случаются чудеса и свершения – нет глобальной надежды, но есть отчаянные пугачевские бунтари, приморские партизане, издательства, выпускающие важные книги, вращение крови, дискуссии, люди, идеи. Россия – большая беспощадная тюрьма, но не все заключенные там лишились достоинства. Украина – полная противоположность. Это страна, где плохое встречает худшее; государство и народ без достоинства, истории и культуры. Украину населяет презренная заискивающая прислуга. Нет там ни значительных писателей, ни издательств, ни музыкантов, ни художников, ни мятежников, ни мыслей, ни дискуссий, ни идей – есть только обманчивый самогипноз хохла, как если что-то действительно происходит и развивается. Украина - ошибка, которая не заслуживает свободы, потому что неоднократно демонстрировала, что не станет за неё, свободу, бороться. Значит, ей она не нужна. Как и независимость.
[info]dadakinder

Я не знаю, чи це така особливість в українського суспільства, чи це якесь прокляття лежить на цій землі, та всяка ідея чомусь перетворюється на фарс і клоунаду. Так москалі вважають себе українськими націоналістами. Фашисти в Україні — це унтерменші в квадраті. Комуністи, лишаючись в опозиції, входять в коаліцію з олігархами. А сьогодні я познайомився з представником «інтернаціоналістів». Епітет я не підібрав, але в послідовність вкладається чудово! Отже, цитую цього «інтернаціоналіста»:
Нет, я не видел таких националистов, которыми пугают нас в России, тех, что воюют с оружием в руках против российских войск в Чечне и Грузии, в таких я вообще не верю, хотя улица Дудаева во Львове – это явный и безусловный признак политического маразма.
Отже, ті, хто називає вулицю в українському місті іменем президента Ічкерії, або ж допомагають грузинському народу боротися проти иноземних загарбників, — це націоналісти. А ті, хто вважає, що такі вчинки є «політичним маразмом» бо Дудаєв і Саакашвілі недостатньо зробили для Львова, — це інтернаціоналісти!

Тільки мені здається, що все мало бути навпаки? Чи це значення слів так сильно помінялося, відколи я їх вивчив? Втім, пояснення тут дуже просте і ми всі його прекрасно розуміємо: справжній совковий інтернаціоналізм — це коли Москва вказує яка правильна точка зору на будь-яке питання. Ну а неправильна — це автоматично «український буржуазний націоналізм» і «німецько-українські фашисти».

Шановні львів'яни, я знаю рецепт, як вам перестати бути махровими націоналістами в очах справжніх інтернаціоналістів! Просто терміново перейменуйте вулицю Дудаєва на вулицю Кадирова! Думаю, це буде ще більш інтернаціональненько, ніж перейменування вулиці Мазепи. І я готовий поставити бразильський реал проти російського рубля, що в жодного справжнього укра́інского інтернаціоналіста не виникне питання: «А що зробив Кадиров для Львова?»

Кнопка Facebook


Оскільки зараз тільки лінивий не має кнопки від Facebook на своїй сторінці, я і собі вирішив прикрутити її за рецептом для Wordpress. Код Blogger виглядає так:
<iframe allowTransparency='true' expr:src='&quot;http://www.facebook.com/plugins/like.php?locale=uk_UA&amp;href=&quot; + data:post.url + &quot;&amp;layout=standard&amp;show_faces=false&amp;action=like&quot;' frameborder='0' scrolling='no' style='border:none; overflow:hidden; width:100%; height:25px;'/>
Його, як завжди, треба вставляти в шаблон, наприклад після
<b:if cond='data:post.hasJumpLink'>
   <div class='jump-link'>
     <a expr:href='data:post.url + &quot;#more&quot;' expr:title='data:post.title'><data:post.jumpText/></a>  
   </div>
</b:if>

середа, 25 серпня 2010 р.

Золотий стандарт


Лібертаріанці мають, на мою думку, одну дуже дивну ідею, звичайно ж, у контексті звільнення від державної опіки. Це — золотий стандарт. Навіть [info]alex_rozoff у своїй трансутопії його має — тільки в нього стандарт алюмінієвий, що не міняє суті. 100% резерв золота чи будь-якого иншого продукту означає необхідність виведення цього продукту з обігу. Відповідно, ціна цього продукту буде завищеною, оскільки цьому «золоту» буде передано функцію універсального еквіваленту. Додаткова функція — це додаткова ціна. Але це ще дрібниця. Головне, що економічна активність перетворюється, фактично, на гру з нульовою сумою: на скільки кількість твого золота зросла, на стільки ж вона зменшилася в инших учасників гри. Якщо врахувати необхідність активних дій для того, щоб грати, найкращою стратегією буде сховати золото під подушку. Я навіть пам'ятаю, що ми цю проблему вчили на уроках середньовічної історії — закопування кладів і все таке...

Разом із тим, гроші в теперішньому вигляді — це чисте шахрайство. Навіть якщо припустити, що піраміда ніколи не впаде завдяки мудрій державній політиці підтримки багатих і жорсткого стягнення з бідних. Все одно ваші гроші знецінюються просто тому, що хтось має змогу друкувати їх стільки, скільки хоче, і цей хтось дуже хоче...

Відкрита фінансова система, на мою думку, має дуже багато переваг, але, на сьогоднішній момент, вона є нереальною. Та перший крок до неї робиться вже сьогодні. Цей крок — просто позбавлення держави монополії на гроші. Власне, це і є вирішенням лібертаріанських претензій. Для цього не потрібне золото! Досить того, що гроші зможуть вводити в обіг різні конкуруючі структури...

Більше того, така система вже існує і працює, але тільки на рівні крупного капіталу. Не виключено, що саме це стало причиною зростання політичної ваги міжнародних корпорацій. Вони не залежать від державної монополії на гроші! Їхні гроші — це цінні папери, якими вони обмінюються. Ці цінні папери забезпечені активами — і не потрібне ніяке “золото”. Якщо точніше — “золотом” може виступати будь-який товар чи навіть зобов'язання.

Лишається тільки спустити цю вже робочу систему до рівня окремої людини. У чому тут проблема? Головна проблема — це технічна реалізація, яка донедавна була неможлива. Та сьогодні вже кожен технічно може взяти з собою на базар мобільник замість гаманця і через біржу обміняти свої цінні папери на ті, які потрібні тому, хто продає вам кілограм картоплі. Такий собі натуральний обмін з використанням сучасних технологій. Відтак держава лишається зі своїми монопольними папірцями, які людям більше не потрібні!..

Але для пересічної людини портфель акцій — це дуже складний інструмент. Його необхідно якось балансувати, слідкувати за ринками, вносити корекції тощо. Звичайно, на першому етапі цим можуть займатися холдингові компанії, які продаватимуть фізичним особам уже власні акції, забезпечені збалансованими портфелями. Проте це — теж зайві посередники. І, думаю, що саме перехід на повну фінансову відкритість зробить послуги цих посередників дуже дешевими. Та це вже, мабуть, наступний крок: спочатку фінансова відкритість посередників, яким буде більше довіри, потім прихід на цей ринок корпорацій, яким теж доведеться відкритися, — і так далі, аж до можливости бачити, скільки заробляє твій сусід, хоч як би це не псувало настрій...

вівторок, 24 серпня 2010 р.

Тост


Попередні дні незалежности я святкував авансом: хоч ніякої незалежности ми не мали, та принаймні була надія її здобути. Думаю, сьогодні вже очевидно: ці надії не справдяться. Визвольні змагання український народ програв. Власне, і українського народу більше нема — є населення, з якого можна зліпити що завгодно. Втім, і ліпити ніхто нічого не збирається — дешевше завезти китайців.

Ті, хто панує на нашій землі, переконують, що українська державність впала нам як сніг на голову. І байдуже, що дехто ще пам'ятає правду. Історія наша буде такою, як скажуть по телевізору. Думаю, час усвідомити, що вибору між провінцією і незалежною Україною більше нема. Вибір, який лишився: померти самим або ж забрати ворогів на той світ із собою...
Я дух одвічної стихії, що зберіг Тебе від татарської потопи й поставив на грані двох світів творити нове життя:
  1. Здобудеш Українську Державу, або загинеш у боротьбі за Неї.
  2. Не дозволиш нікому плямити слави, ні честі Твоєї Нації.
  3. Пам'ятай про великі дні наших Визвольних змагань.
  4. Будь гордий з того, що Ти є спадкоємцем боротьби за славу Володимирового Тризуба.
  5. Пімсти смерть Великих Лицарів.
  6. Про справу не говори з тим, з ким можна, а з ким треба.
  7. Не завагаєшся виконати найнебезпечнішого чину, якщо цього вимагатиме добро справи.
  8. Ненавистю і безоглядною боротьбою прийматимеш ворогів Твоєї Нації.
  9. Ні просьби, ні грозьби, ні тортури, ані смерть не приневолять тебе виявити тайни.
  10. Змагатимеш до посилення сили, слави, багатства і простору Української Держави.
Тому, хоч це і може лишити неприємний слід у душі, сьогодні я вип'ю за бомбардування силами NATO Києва і Донецька, Конча-Заспи і Пущі-Водиці, за руйнування шахт, фабрик, банків, заводів і газопроводів, які належать бандитам. Вип'ю за те, щоб танки чавили майбахи і каділаки, щоб горіли маєтки за п'ятиметровими парканами разом з їхніим мешканцями, і щоб конвенції щодо військовополонених на території України не виконувалися. Будьмо!

понеділок, 16 серпня 2010 р.

Дванадцятирічна симуляція освіти


Як я вже писав, у питаннях освіти я повністю підтримую Партію Регіонів. Навіть у тому, що стосується історичної пам'яті, яка, на мою думку, холопам абсолютно не потрібна. Більше того, холопи мовчки виконують указівки з переписування історії, а значить і так з усім згодні. Єдина незгода — кількість років навчання у школі. Щоправда, для чого була потрібна 12-річна освіта, я не знав доки не прочитав статтю. Тепер знаю! Цитую:
12-річна школа – економічно доцільна й ефективна форма зайнятості молоді 17–18 річного віку, яка в умовах конкуренції на ринку праці далеко не завжди може знайти роботу. Трирічна старша профільна школа передбачала широке залучення до професійної підготовки старшокласників міжшкільних навчально-виробничих комбінатів, кооперацію шкіл із професійно-технічними училищами. В межах дворічної старшої школи це повноцінно реалізувати не вдасться. До того ж у 12 класі учням пропонували для вивчення низку нових предметів: «Людина і природа», «Людина і світ», «Естетика», «Психологія», «Екологія», «Філософія». Ймовірно (можемо лише припускати, бо нинішні функціонери Міносвіти про це мовчать), цих предметів в 11-річній школі вже не буде.
Перекладаю: необхідно пхати лайно в голови молодим людям — аби тільки не відправляти їх працювати. Заразом і зайнятість “учителям” буде створено. Бо що вміють спеціалісти з предметів «Людина і природа» чи «Людина і світ»? Не думаю, щоб вони були здатні до якоїсь корисної діяльности. І саме тому, необхідно створити їм робочі місця в школах!

Насправді, якщо добре подумати, то такі предмети в шкільній програмі вже були. «Людина і природа» називалася курсом біології, а «Людина і світ» — курсом фізики. Та, думаю, всі чудово розуміють, що ці нові предмети — це просто инша назва фізикознавства, яке не має нічого спільного з актуальними знаннями.

Що стосується курсу марксизму-ленінізму, який тепер називається філософією, то я дуже сумніваюся в доцільності його викладання взагалі, та в школі зокрема. По-хорошому, кафедри “філософії” в університетах слід для профілактики посадити в повному складі на кілька місяців у тюрму за співпрацю з КДБ. Втім, таке можливо тільки в нормальній країні — я про таке навіть і не мрію... Але допускати їхніх випускників до дітей — це вже за межами добра і зла!

Екологія — це, на мою думку, курс дуже важливий. Але викладати його необхідно зовсім не в школі чи в університеті, а на обов'язкових курсах для директорів промислових піприємств, які, відкупившись хабарами від екологів, засирають довкілля, в якому самі ж мешкають! Курс можна було б організувати навіть не науковий, а наочно-показовий: демонструвати наслідки господарювання цих тупих злодіїв так, щоб доходило навіть до найтупіших з них, що від їхньої діяльности страждають не тільки холопи, яких вони цілком заслужено зневажають, а й власні улюблені діточки...

Єдиний предмет, який можна було б лишити в шкільній програмі, — це психологія. Але, оскільки це порівняно молода наука, скоротити курс до кількох уроків у межах вивчення такого розділу біології, як «психіка вищих приматів». Те саме, до речі, слід зробити з соціологією — вивчати її в рамках розділу «соціальне життя вищих приматів». На мою думку, для шкільної програми цього більше, ніж достатньо.

середа, 11 серпня 2010 р.

Як я провів вихідні


В оригінальній програмі, яка переключає розкладки клавіатур, перша кнопка на новій клавіатурі вводиться зі старою розкладкою. Я чесно намагався звикнути до цього, але не зміг. І тоді вирішив зробити неможливе: виправити цей недолік. Проблема була в тому, що подія WM_INPUT відбувається вже після обробки події натискання на кнопку. Мені ж необхідно було вставити повідомлення про перемикання розкладки до повідомлення про натискання кнопки. Для того, щоб перехопити цю подію, у Вікнах існує зачіпка на WH_KEYBOARD_LL, яка викликається після обробки клавіши драйвером. Здавалося б, проблем нема, але... в цей момент неможливо визначити фізичну клавіатуру. Очевидно, добрі дрібном'які програмісти вирішили нас уберегти від зайвої інформації...

Я так розумію, правильний підхід — це скачати WDK, розібратися як працює клавіатурний фільтр і навчитися передавати з нього повідомлення про поточну клавіатуру, щоб програма встигала переключити розкладку... Якби я був справжнім програмістом, я б так і зробив: уявляю собі вже справжній інсталятор, який вимагає пароль адміністратора, щоб установити клавіатурний фільтр, а після установки перезавантажуватиме систему. Саме так все і працює під Вікнами в реальному житті!

Та я вирішив обійтися тим, що є. Отже, для кожної клавіатурної події спочатку виконується зачіпка на WH_KEYBOARD_LL, а потім обробник події WM_INPUT який знає, яку розкладку вибрати. Перше, що прийшло в голову, — не ґенерувати подію натискання кнопки, а натомість зберігати всі кнопки за допомогою зачіпки, щоб після перемикання розкладки, відправити їх по черзі за допомогою keybd_event. Весь прикол в тому, що якщо перервати генерування події натискання кнопки, вернувши зачіпкою -1, то і подія WM_INPUT не настає! Таким чином, узнати з якої клавіатури прийшов сигнал про натискання кнопки можна тільки після того, як цей сигнал було оброблено.

Символ з кодуванням від чужої клавіатури обробляється при натисканні на кнопку. А відпускання кнопки зазвичай нічого поганого не робить. Отож можна почекати коли кнопку відпущено, передати цей сигнал, визначити клавіатуру, перемкнути, якщо потрібно, розкладку, а потім ввести цей символ ще раз за допомогою keybd_event. Це призводить до наступного ефекту: якщо ми натискаємо, наприклад, SHIFT отримуємо таку послідовність подій — SHIFT відпущено, SHIFT натиснуто, SHIFT відпущено замість SHIFT натиснуто, а потім відпущено. Сама по собі ця послідовність не має фатальних наслідків. Але разом з відповідними неконтрольованими подіями для CTRL і ALT може переключати в якісь незвичайні режими, коли система думає, що ваш SHIFT натиснуто, у той час, коли ви його відпустили. Вирішення цієї проблеми полягає в тому, що при натисканні цих трьох кнопок, ми завжди створюємо подію.

Це працює. Але створює одну незручність: якщо відпустити, наприклад, SHIFT до того, як подію натискання на букву було оброблено (натиснути SHIFT, натиснути букву, відпустити SHIFT, відпустити букву), SHIFT не спрацьовує — і набирається маленька буква. Те саме стосується ALT і CTRL. Подію відпускання обов'язково необхідно передати, бо инакше WM_INPUT не відбудеться, а значить можна впустити ланцюг виконання буфера. Тому відправляється подія відпускання, а в буфер записується віртуальне натискання цієї ж кнопки спочатку і відпускання її ж укінці.

Та найцікавіше було попереду. При переході від одної клавіатури до иншої, якщо натиснути одночасно кілька кнопок, вони натискаються з CTRL. Як з'ясувалося, причина в тому, що після повідомлення про зміну розкладки, з клавіатури приходить подія віпускання CTRL. Прапорець виставлений, як подія на реальній клавіатурі, при тому що ніякого CTRL я не торкаюся! Тобто ця подія приходить саме від драйвера, і я навіть уявити боюся чому... Відтак я зрозумів, що моя клавіатурна новація не вносить особливого хаосу в уже цілком хаотичну поведінку системи. Тому після зміни розкладки, я просто виставляю прапорець не зберігати CTRL, ALT і SHIFT у буфер доки буфер не очиститься і позбавляюся цієї проблеми.

Втім, нехорошу поведінку виключити повністю я не зумів. Якщо, наприклад, натиснути SHIFT на одній клавіатурі, а букву на иншій, програма смішно намагається встигнути переключитися двічі, але їй це не вдається. В результаті вводиться маленька буква з розкладки клавіатури, на якій натиснуто SHIFT. Взагалі, якщо потренуватися, можна зробити там переповнення буфера, абощо — та в нормальному режимі працює досить пристойно як для збочення...

Ще один не дуже приємний ефект — символ вводиться після відпускання кнопки, а не після натискання. З цієї ж причини неадекватно обробляється затискання одної кнопки на деякий час. Символи з'являються з запізненням і перший буде зі старої клавіатури. Думаю, якщо ви звикли до сліпого набору, то, можливо, зачіпку краще відключити і просто пристосуватися до неправильного першого символу при переході з одної клавіатури на иншу.


Ну і про неосновне, але найбільш помітне... Я зробив вибір розкладки для кожної мови. Це перетворює програмку на досить таку універсальну штуку. Уявіть, що у вас п'ять клавіатур з різною кількістю кнопок. Це не прикол: у вас може бути ноутбук плюс USB-клавіатура вдома, на роботі, в друзів — всюди різні. І ви набираєте текст десятьма мовами. За допомогою цієї програми ви можете налаштувати для кожної пари клавіатура-мова окрему розкладку з автоматичним переключенням на неї при наборі. Для деяких клавіатур можна задати мови, для яких вони не працюють, — на них не можна буде переключитися за допомогою цієї клавіатури. Для цього при першому натисканні кнопки у таких мовах слід задати розкладку з иншої мови.

Найпростіша конфіґурація: дві мови, — наприклад: українська та англійська, — і дві клавіатури — по одній для кожної мови.
  • Спочатку вибираємо англійську мову і натискаємо на кнопку «української» клавіатури.
  • Ставимо їй розкладку української мови. Програма переключається на українську мову.
  • Тепер натискаємо кнопку «англійської» клавіатури і вибираємо їй англійську розкладку.
  • Відтепер кнопки на англійській клавіатурі автоматично вводитимуть англійські букви, а української — українські.
Програмку відключати не потрібно. Це ще одна особливість, яку я додав: програма бачить нові клавіатури і розкладки на льоту. Ну і, звичайно, пам'ятає всі клавіатури, які коли-небудь підключалися до вашого комп'ютера. Якщо ви видалите розкладку, яку використовує якась із клавіатур, програма не зможе на неї переключитися і можуть бути проблеми. Те саме стосується особливо розумних програм, на кшталт Белазару, які завантажують власні розкладки — у цьому разі вам доведеться налаштовувати реакцію програми на нові мови вводу. Додавати нові розкладки можна без обмежень, проте одна клавіатура може використовувати тільки одну розкладку для кожної мови.

Скачати: програму або код.

Якщо код вас не злякає, буду радий коментарям і пропозиціям.

пʼятниця, 6 серпня 2010 р.

Дві клавіатури з різними розкладками


Купив собі вчора USB-клавіатуру. З португальською розкладкою. Думав, підключу і забуду про перемикання між розкладками. Чорта з два! Виявляється, що Вікна не прив'язують розкладки до конкретного пристрою. (Вони навмисне так все роблять, чи що?) І нема ніякої можливости це змінити! Лишається одне: визначати на ходу, на якій клавіатурі натиснуто кнопку і перемикати розкладки. Після довгих пошуків, я знайшов програмку, яка цим займається. При запуску вона лаялася на те, що не має достатньо прав. Виявилося, що це реакція на виклик чарівної функції SystemParametersInfo. Що вона робить лишилося для мене загадкою, оскільки перемикання прекрасно працює і без неї (принаймні під моєю сімкою). Програмку довелося допилювати, оскільки вона чомусь припускала, що одна мова повинна мати тільки одну розкладку. Хоч цілком логічно було б встановити різні розкладки для кожної фізичної клавіатури залежно від мови. Заразом виправив і це
foreach(Layout layout in RightKeyboard.Layout.GetLayouts()) {
   foreach(IntPtr installedLayout in installedLayouts) {
      ushort languageId = unchecked((ushort)installedLayout.ToInt32());
      if(layout.Identifier == languageId) {
         lbLayouts.Items.Add(layout);
      }
   }
}
Ну невже там замість масиву важко було мапу поставити?! Тепер програма (код, exe) розуміє також, що не треба викидати старше слово. По-хорошому, звичайно, треба було б додати правила перемикання залежно від поточної розкладки. Щоб вона знала, як після переключення мови переключити розкладку на правильну клавіатуру. Та мені ліньки цим займатися. Коли зовнішня клавіатура підключена, можна переключатися між португальською і українською автоматично — англійська не потрібна, бо всі необхідні букви є на португальській. Без зовнішньої клавіатури — відключаємо програму і перемикаємося вручну між українською і англійською розкладкою, яка стоїть за промовчанням замість португальської. У випадку двох розкладок з двома клавіатурами — взагалі проблем нема.

Наче працює... Головна проблема — введений символ доходить до місця призначення раніше, ніж відбувається перемикання. Так що треба вчитися починати писати з пробілів, бо розбиратися хто кому які повідомлення надсилає і як їх правильно перехоплювати, я, мабуть, не буду... Цікаво, що в Notepad++ цієї проблеми нема. Містика...