?

Log in

b.mahno's Journal
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 15 most recent journal entries recorded in b.mahno's LiveJournal:

Monday, April 20th, 2015
1:26 am
aukro.ua - тупая истеричка
В модераторы aukro берут только психически неуравновешенных истеричек. Это просто факт, без подробностей.
Tuesday, December 16th, 2014
12:26 pm
Поезд в рай
Интересно, каково это, десятилетиями мечтать сесть в новенький комфортабельный поезд, который едет в рай? Черной завистью завидовать обладателям красивых билетов с тесненной золотом гербовой печатью. Провожать этот поезд глазами, глядя на исчезающий за горизонтом последний вагон сквозь слезы...

Что чувствуют человек, который почти через четверть века, пройдя сквозь нечеловеческие унижения, притеснения и пустые обещания, накопил-таки на билет, вбежал в поезд своей мечты за минуту до отправления, и вдруг узнал, что именно этот поезд, и именно с сегодняшнего дня, едет не в рай, а в деревню "Старые Васюки"?

Наверное, это очень обидно...
Wednesday, March 5th, 2014
6:20 pm
Просто мнение
В связи с последними событиями, происходящими на Украине, хотелось бы написать в заброшенный бложик пару слов. Хорошо будет, если его прочитают россияне. Не буду тут рассказывать банальности про то, что по Киеву не ходят бандеровцы и не убивают русскоязычных. Те, у кого есть хоть немного мозга, до этого сами додумаются, всяким же завсегдатаям совдеповских свинарников типа oper.ru или yaplakal.com пофиг информация инсайдера, им через телевизор все равно виднее...


Итак, несколько простых тезисов, сухих, т.с. фактов.

1. Поддержка майдана и "бэндеровцев" в русскоговорящем Киеве -- 90%. Не тешьте себя мыслью, что сейчас весь бедный народ Украины стонет под гнетом националистических самозванцев. Без тотальной поддержки местного населения Майдан не продержался бы и недели, именно обеспечение со стороны простых граждан покрывало все потребности Майдана в продуктах, одежде, снаряжении, топливе и многом другом в течение долгих месяцев. А если бы в Киеве и области было хоть сколь-либо заметное количество противников свержения бандитской власти, то не пришлось бы сгонять бюджетников в огороженный лагерь за деньги и заставлять стоять там под страхом увольнения с работы.

2. Даже и не думайте, что вам здесь рады. За пределами нескольких маргинальных регионов, отношение к Крымским событиям настолько отрицательное, насколько это вообще возможно. Еще никогда в истории Украины не было такого, чтобы военнообязанные не бегали от военкоматов, а сами приходили туда и расстраивались, узнав, что набора пока нет. Так что если начнется полномасштабная война, не надейтесь на букетики уже в Херсонской области, и входа в Киев под аплодисменты "освобожденного" народа не получится. А в горах западной Украины вас будет ждать второй северный Кавказ. Оно вам надо?

3. После вторжения в Крым, очень многие граждане увидели наконец, что российский народ на самом деле практически всецело поддерживает военную агрессию против Украины. Таким образом вы сами за несколько дней сумели сделать то, что не удалось "бэндеровцам" за 23 года независимости: вы показали, что ватник в массе своей такой же враг, как и кремлевский ботоксный карлик. Иллюзий, что Россия ведет себя подобно гопнику только из-за засевшего в Кремле чекиста-неадеквата, все меньше. И наоборот, понимания того простого факта, что российская власть суть продолжение российского же народа, соответственно, больше. Так что не обижайтесь потом на соответствующее к вам отношение.

4. Вопреки официальным заявлениям новой власти, после осознания текущих событий, в украинском народе созревает понимание того, что Украин на самом деле две, и им, возможно, стоило бы попробовать пожить отдельно. Это две разных страны, с разной ментальностью и диаметрально противоположными взглядами на устройство и функции государства. Одним нужен способный все "порешать" царь-батюшка, другим прозрачная власть и верховенство права; одни хотят строить цивилизацию, другие хотят клеить танчики; одни -- Европа, другие -- Азия. И с этим ничего не поделать, они нас всегда будут тянуть в совок, а мы их -- в ненавистную "гейропу". Жалко будет только тех людей, которые территориально окажутся не со своей стороны.

5. Российские СМИ, которые нам доступны наравне с украинскими, отлично демонстрируют градус неадеквата в манипулировании общественным сознанием. Понятно, что это будет сказано в пустоту, но меня порой удивляет, как вообще можно было додуматься до того, что "чешет" ваш Киселев и другие лауреаты высоких премий за вклад в культуру и искусство. Не забывайте, что в отличие от россиян, украинцам доступна информация с обеих сторон конфликта, и это отнюдь не прибавляет любви к "братскому народу". Так что снимайте лапшу с ушей.
Thursday, June 13th, 2013
5:51 am
Темная материя vs Темная энергия
Лично я -- за первую. Грустно как-то представлять остывшие до 0 °K планеты, черное небо, и отсутствие надежды на новое возрождение Вселенной. Материя, мы за тебя!
Saturday, June 1st, 2013
4:30 pm
Прощай, любимый браузер

Ты был прикольным.
Sunday, March 17th, 2013
5:30 am
О старых EXE-шниках масяни и не только
Всем владельцам многоядреных компьютеров: старые компиляции flash2exe (к коим относятся мульты Куваева) непотокобезопасны, так что после запуска, максимально быстро, задавайте им соответствие (affinity mask) на одно ядро, и будет все работать нормально.

P.S. Адобовцы - уебаны криворукие.
Sunday, February 24th, 2013
5:31 am
Не ходите дети, на RSDN гулять!
Там злой путиноид ValdD2 будет вас бить и обижать!
Wednesday, February 6th, 2013
5:51 pm
Боты cyscon.de и clean-mx.de
Как же достали уже эти робингуды хреновы!

Если кто не в курсе, они ползают своими говноботами по интернету и если находят что-то на их взгляд подозрительное, то начинают спамить владельца IP-адреса автоматически сгенеренными абузами. Спамят по несколько раз в сутки бесконечно долго.

Средство борьбы одно - банить козлов по /24, вот известные мне адреса (пополняется по мере обнаружения новых):
195.214.79.0/24
87.106.161.0/24
81.27.127.0/24
176.28.54.0/24
114.44.227.0/24
114.44.220.0/24
80.150.215.0/24
91.20.25.0/24
62.67.240.0/24
62.67.194.0/24
Saturday, September 11th, 2010
4:08 pm
Прививки
Все, кто уверен во вредности прививок, совершенно правы. Послушайте разумного совета: не делайте прививки сами и не прививайте своих детей! Избавьте наконец человечество от своих дефектных генов!
Saturday, May 30th, 2009
3:06 pm
Apple -- говно!
Яблочная электроника вся говно как на подбор. Дизайн мудацко-мажорский, функционал вообще ниже плинтуса. А за пособничество копирастам-дрмщикам все руководство apple нужно на столбах перевешать.

P.S. Пробовал, щупал, знаю.
P.P.S. Мой PDA стоит дороже ятелефона так что нищебродофобов прошу не нервничать по-напрасну.
Friday, March 13th, 2009
4:39 pm
Наша детская пиротехника
В детстве я и мои друзья очень любили всяческую пиротехнику. Понятно, что готовых петард в то время купить было нельзя (да и не продал бы нам их никто), поэтому делали все самостоятельно из подручных средств. Как мы не покалечили друг друга в процессе изготовления и использования этих адских машин – ума не приложу.

В этой записи хотел бы поделиться несколькими рецептами и конструкциями такой пиротехники. Конструкции сугубо развлекательного характера и в качестве боевых взрывных устройств не канают совершенно, так что прошу цензуру сей пост не удалять.

Исторически так сложилось, что в наших краях был немаленький склад сельскохозяйственных удобрений практически под открытым небом. А удобрения, это среди прочего – селитра. Нитраты щелочных металлов являются отличными окислителями, а нитрат аммиака вообще сам по себе уже неслабое взрывчатое вещество (хотя приготовить селитровую бомбу и сдетонировать ее ох как непросто). Вот с этого склада мы периодически и таскали в пакетах разные порошки и гранулы. Использовалась селитра сначала в основном для пропитывания ее раствором обычной газетной бумаги, которая после этого становилась весьма сильногорючей, и что, главное, кислород для горения ей больше совсем не требовался. Например, если из такой бумаги скрутить плотный цилиндр, туго замотать его фольгой, оставив открытым один из торцов, то получалась неплохая ракета, которая взмывала в небо, оставляя позади себя длинный шлейф из красных искр и дыма. Или если натолкать такой бумаги в медицинский пузырек, зажечь и быстро закрутить штатной крышкой, то через несколько секунд этот пузырек взрывался. Крайне опасная штука, между прочим. Взрывалась через совершенно произвольное время, а в стороны разлеталось острое стекло! Ужас.

Для приготовления «силитрованной» бумаги лучше всего подходила калийная селитра (KNO3), которая почему-то всегда имела желтоватый оттенок, возможно из-за примесей. Не принципиально хуже вела себя натриевая селитра (NaNO3), чистый белый порошок, иногда – гранулы. А вот потенциально взрывоопасная аммиачная селитра (всегда была в гранулах) для пропитки бумаги почти не годилась, такая бумага лишь не слишком активно дымила, без искр и огня, а в безвоздушной среде и вовсе тухла. Возможно дело было в большом количестве примесей, не знаю уж. После некоторого опыта работы с этими веществами, каждый из нас уверено мог определить тип селитры на вкус. Во времена, когда на складе не было ничего кроме аммиачной селитры, я сравнительно просто делал из нее натриевую, а при некотором упорстве – и калийную селитру. Тут я был на высоте, ибо единственный из всей нашей компании понимал что-то в неорганической химии и вообще ориентировался в сути происходящих в наших пиротехнических творениях процессов.

Сделать натриевую селитру из аммиачной проще простого – нужно смешать насыщенные растворы аммиачной селитры и соды, а потом нагреть раствор до примерно 70 градусов, активно его помешивая. Делать все нужно на открытом воздухе, ибо удушливого аммиака в процессе реакции выделяется просто немеряно. Калийную селитру сделать немного сложнее, но тоже подъемно. Для этого вместо соды нужно использовать поташ (карбонат калия), который вымывается из серого пепла полностью сгоревшего дерева или травы. Принципиально чтобы это была не черная зола (древесный уголь), а именно легкий пепел серого цвета (минеральный остаток). Можно было насыпать пепел прямо в насыщенный раствор аммиачной селитры, а после выветривания выделившихся газов отфильтровать «ил». Полученный в результате этих действий раствор сразу же был готов для пропитки бумаги.

Так вот, рецепт приготовления селитрованной бумаги прост до невозможности. В горячую воду насыпается столько селитры, сколько только может раствориться. А затем этим насыщенным раствором пропитывается газетная бумага. Бумага сушится в теплом сухом месте и все готово. Хранить такую бумагу нужно плотно завернув в полиэтилен, потому как она является хорошим абсорбентом и быстро сосет влагу из воздуха. Много разных пиротехнических штуковин было придумано на базе этого материала, а сколько ракет было запущено! Эх… Кстати, такая бумага, свернутая в плотный рулончик толщиной 2-3 мм была отличным запалом для готовых пиротехнических конструкций. Горела со стабильной скоростью, огонь без проблем «пролазил» даже в самые узкие запальные отверстия. При некоторой сноровке удавалось даже сделать горящий под водой почти настоящий бикфордов шнур.

Но не фейерверками едиными, особым почетом пользовались самодельные петарды – бомбочки. Самым важным исходным компонентом "бомбочек" был магний. Этот легкий и довольно прочный металл широко используется в авиации. Благодаря высокой химической активности он может гореть даже в атмосфере воздуха. Горение магния больше всего напоминает фотовспышку, только ярчайшее белое пламя горело равномерно и не менее нескольких секунд. Поджечь магний было нелегким делом, мне лично удавалось зажечь от спички кусочки с размером не более 2-3 миллиметров, но горели они знатно!

Понятно, что достать магний 13-летним пацанам было непросто, сначала лазили по небольшому «самолетному кладбищу» в районе нашего города, где покоился остов какого-то древнего кукурузника. Правда основные источники магния (диски шасси) были разграблены предшествующими поколениями и мы довольствовались только какими-то мелкими трубками, оставшимися незамеченными предшественниками. Причем тут я благодаря неплохим знаниям неорганической химии стал автором одного ноу-хау, сильно облегчившего нам поиски магния. Дело в том, что магний чисто внешне мало отличим от сплавов алюминия, тоже широко применяющихся в авиации. Поэтому отыскать в остатках самолета именно магниевые детали было непростым делом. Народу приходилось брать все подряд, и проверять потом взятое, пытаясь поджечь небольшой кусочек металла. Все это доставляло массу хлопот. Но, как я уже сказал, магний является весьма активным металлом. А это значит, что он весьма охотно вступает в химические реакции даже с весьма слабыми кислотами. Зная это, я однажды взял с собой в поход за магнием бутылочку с уксусом... Ну далее, я думаю все понятно: я просто поливал уксусом все металлические детали самолета пока одна из них не отреагировала на это обильным газовыделением. Магний! Таким образом поиск был радикально упрощен.

Разбирали мы этот самолет до тех пор, пока один из нашей компании совершенно случайно (но и не без помощи моего метода) не обнаружил, что у его соседа магниевыми брусками выложена дорожка во дворе! Не, вы только представьте себе, что значит после долгих и с каждым разом становившихся более трудными рейдов по добыче магния из старого самолета, найти такое месторождение просто под боком! Понятно, что в первую же ночь один из этих брусков был похищен, после чего про старый самолет все сразу забыли. Кстати, те бруски оказались анодами какой-то электролизной или антикоррозийной установки, с которой и работал вышеупомянутый сосед. Что его дернуло использовать недешевый и нестойкий магний в качестве тротуарной притки – непонятно, но это открытие фактически сделало магний последней из наших проблем в поиске пиротехнических ингредиентов. Единственная проблема, которую никак не удавалось решить на корню – нарезание стружки. Ведь для изготовления «бомбочек» нужен был порошковый магний, и делать его приходилось дедовским способом, при помощи простого напильника.

Но сам по себе магний, хоть и горел красиво, не позволял создавать взрывающиеся «бомбочки». Для этого нужен был еще и окислитель. В качестве окислителя предыдущие поколения пиротехников использовали обычную марганцовку. Это замечательное вещество фиолетового цвета при нагревании выделяло чистый кислород, в атмосфере которого магний уже не просто горел, а натурально взрывался. Но проблема марганцовки стояла очень остро. В аптеках нам ее не продавали, да и не разгонишься особо на карманные деньги. И тут я стал автором второго ноу-хау. Я уже писал, что в качестве запала очень хорошо использовалась пропитанная селитрой бумага. Особенности горения такой бумаги натолкнули меня на мысль, что селитра, по сути, выполняет в этом случае точно такую же роль окислителя, как и марганцовка в «бомбочке» классической рецептуры. Незамедлительно проведенный эксперимент доказал полную пригодность селитры в качестве второго базового ингредиента вместо дефицитной марганцовки. Таким образом проблема окислителя также была решена на 100%!

Сама по себе конструкция самодельной петарды предельно проста. На обычный карандаш максимально плотно накручивалась полоска стандартного тетрадного листа шириной около 6-8 и длинной около 15 сантиметров. Накручивать полоску нужно «вдоль», причем так, чтобы бумага с одной стороны карандаша выступала на пару сантиметров. Эта выступающая часть сразу же загибалась на 180 градусов и плотно приматывалась к остальной части конструкции ниткой или медной проволокой с диаметром около 0.5 мм. Лучше использовать нитку, ибо отлетающий с высокой скоростью моток даже тонкой проволоки весьма опасен. Затем карандаш извлекался из ставшей довольно жесткой бумажной трубки. На расстоянии около полутора сантиметров от загнутого конца кончиком ножа проделывалось отверстие диаметром в пару миллиметров для запала. В трубку насыпалась смесь порошкового магния и селитры в пропорции около 50/50 до уровня, чуть выше уровня отверстия, и трамбовалась тупым концом все того же карандаша. Если уровень утрамбованного порошка оказывался заметно ниже отверстия, то нужно досыпать еще немного смеси и снова утрамбовать. Короче уровень хорошо утрамбованной смеси должен соответствовать уровню отверстия. После этого вставлялся запал из «силетрованной» бумаги и сверху аналогичным способом досыпалось и утрамбовывалось еще около полутора сантиметров смеси. В конце, оставшаяся свободной часть бумажной трубки тоже загибалась и плотно обматывалась ниткой.

Такая самодельная петарда взрывалась ничуть не хуже современных фабричных, но при этом открывалось широкое поле для экспериментов с ее размерами, формой и конструкцией. Например, пару раз я изготавливал конструкции с электрическим взрывателем. Для этого вместо классического запала использовалась лампочка от карманного фонарика с разбитым стеклом и целой нитью накала. К лампочке припаивались достаточно длинные провода, а сама она помещалась спиралью к рабочей смеси с одной из сторон бумажной трубки. Такая «бомбочка» могла быть совершенно герметична (плотно обматывалась изолентой или окуналась в расплавленный парафин) и ее можно было взрывать даже под водой.

А еще одно время мы наполняли селитро-магниевой смесью использованные баллоны для домашних аппаратов газировки напитков – «сифонов». Духу разорвать такой, изначально рассчитанный на высокое давление, баллон у смеси не хватало, но улетал он очень круто и мог запросто насквозь пробить консервную банку.

Кстати, кусок магния весом около килограмма до сих пор лежит у меня в тумбочке. На случай необходимости организации партизанского сопротивления. Шутка…

Когда «бомбочки» поднадоели, мы занялись более серьезным конструированием ракет. Понятно, что фольгированные ракеты с «селитрованной» бумагой в качестве топлива летели хоть и красиво, но недалеко и не слишком-то ровно и быстро. А нам хотелось чего-то более… «боевого» что ли. Попытки использования магниевых смесей результатов не дали, слишком быстро они сгорали. Максимум, на что они годились – баллончики от «сифона», но все равно это были скорее фугасы, чем ракеты, поэтому все принялись за исследования в области твердого ракетного топлива из других элементов. И тут мне снова удалось стать автором вполне пригодной смеси. Точнее, сам принцип был известен и ранее, но окончательная рецептура тут все-таки моя. Техпроцесс изготовления ракетного топлива был не слишком прост. Для этого нужно было взять примерно 70 объемных частей калийной или натриевой селитры и 10-20 частей черного древесного угля (того самого, на котором готовят шашлык). А в качестве скрепляющего и не мешающего горению материала хорошо подошел обычный сахар в количестве 20 объемных частей. Смесь порошков тщательно размешивалась, а потом прогревалась на ЗАКРЫТОМ огне до карамелизации сахара. Это был очень ответственный и местами опасный момент. Незначительный перегрев смеси приводил к ее воспламенению, недостаточный прогрев оставлял ее слишком рассыпчатой. Да и получение закрытого огня достаточной температуры в полевых условиях задача не самая тривиальная. Так или иначе, после успешного прогрева смесь принимала консистенцию пластилина и позволяла просто руками вылепить из нее брусок нужной формы. Затвердевшая смесь была отличным твердым ракетным топливом, с помощью которого удавалось поднять высоко в небо вполне серьезные конструкции из велосипедного насоса, флакона он дезодоранта, или просто куска алюминиевой трубки подходящих размеров. И хотя тогда до такого я не додумался, сегодня мне кажется, что наилучшим вариантом размещения топлива в корпусе ракеты была бы полая трубка, причем поджигать ее нужно было бы не снизу (возле сопла), а сверху. Но сегодня возраст уже не тот, чтобы вот так взять и проверить эту теорию.

Позже мы той же компанией плотно занимались уж полным криминалом – изготовлением самодельного малокалиберного (а иногда и не очень) гладкоствольного огнестрельного оружия. Но об этом я никому не расскажу. Удачи!
Sunday, November 2nd, 2008
1:41 am
Java, какой я ее увидел десять лет назад.
10 лет назад, когда в прессе шло крайне активное продвижение этой платформы, я имел "счастье" пощупать что это такое. У меня тогда был неплохой по тогдашним меркам компьютер: iP133@150MHz/32/1.6GB/4/SB. Так вот, тогда я получил небольшой шок, увидев это уебище (не побоюсь этого слова). Такого тормозного говна с такой отстойной IDE я не видел даже во времена "синклеров" и "поисков". Я вообще не мог понять как на этом хоть что-то можно написать, а главное, во имя чего нужно принести в жертву 90% ресурсов машины? И лишь намного позже я обнарушил обширный коммент человека, которому пришлось программить на этом реальный горящий проект. А так как сей шедевр стремительно исчезает с просторов сети из-за своего почтенного возраста и частичной утраты актуальности, то я решил увековечить его здесь.

=============================================================================
* Forwarded by Oleg Ivanov (2:5015/10.32)
* Area : su.c_cpp (su.c_cpp)
* From : Alex Volkov, 2:400/520.55 (27 июл 04 07:19)
* To : All
* Subj : I Love Java! (was: I love C++ !)
=============================================================================
Долго искал по дискам, наконец нашел. Письму этому примерно где-то с полгода.
Писал мне человек впервые столкнувшийся с программированием на Java.
Сам он неплохой программист на C++. Даже когда-то учил меня некоторым
трюкам.. ;) Когда будете читать плакать или смеяться - дело ваше. Hо заранее
скажу, все письмо пропитано эдаким ядовитым сарказмом, поэтому вопринимать
его нужно соответственно.


==== Begin of jaba.txt ====
Я начал программировать Java с реального проекта, который как и все
поганые underestimated аутсорсинговые проекты дожен быть сделан еще вчера и
сразу столкнулся с файловыми потоками, обменом endianess (жаба big ednidan, а
x86 little endian), swing ui и трехмерной графикой. Так как проект горел, то
я во всей прелести попал как раз в ту самую ситуацию, когда о платформе
ничего не знаешь, но тебе нужно сделать реальный проект. Так как о жабе
говорилось что это удивительно легкий и красивый предмет, то я решил рискнуть
репутацией и не стал отказываться от проекта. Таким образом я на собственной
шкуре проверил всё. Абсолютно всё. Одно дело когда у тебя есть время посидеть
и покопаться, но совсем другое дело, когда у тебя чисто профессиональные
запросы и давление дэдлайна просто дичайшее. В такие моменты даже слегка
""заедающий"" комбобоксик начинает чудовищно раздражать, не говоря уже обо всем
остальном. Hу это как бы ралли ""Париж-Дакар"", когда у автомобиля выявляются
все слабины, все удобства и неудобства. Становится ясно что натирает мозоль,
что постоянно ломается и что непродумано. Короче, друг познается в беде, а
средство разработки в ситуации прессинга.

В общем и целом жаба настолько легка для сишника что реальный рабочий код
начинаешь писать сразу же, через 2-3 часа. Все финтифлюшки типа областей
видимости, final и проч можно смело откидывать и не думать о них до
очередного рефакторинга. О delete и в особенности delete[] забываешь почти
сразу, но поначалу постоянно не покидает ощущение что в программе что-то не
так. Сама Java как язык в общем-то ничего, но вот реализация библиотек и
вообще development environment - это какой-то ужас.

Hачать нужно с того, что практически нигде нет нормального, родного getting
started. Это хорошо, если тебе повезло и ты ставишь какой-нибудь jbuilder.
Тогда он сам поставит все ему необходимое (на самом деле не свовсем так,
потому что его поставка разбита на несколько кусков и все их нужно
по-отдельности скачать и поставить). Я довольно долго парился чтобы понять
простую вещь - что же всё-таки требуется установить на девелоперскую машину.
Вот тут-то все и началось. Hу нет чтобы сделать по-человечески, одну
единственную страницу со всеми версиями. Ан нет. Лазай по сайту дружок, и сам
соображай что тебе необходимо. У них все ""запчасти"" для разработки валяются
отдельно и не сведены на какую-то отдельную страницу. Можешь понять мое
раздражение, когда я после стольких лет программирования как какой-то мальчик
не мог сообразить (мать-перемать), что же всё-таки нужно скачать и
установить! А нужно было догадаться до скачки вот чего: самой виртуальной
машины java, sun jdk, JBuilder, документации к Jbuilder, сэмплы к Jbuilder,
документации к sun jdk, сэмплы к jdk, документации к виртуальной машине, sun
java3d, документации к sun java3d и чего-то еще, что я несомненно уже забыл.
Слава богу у меня под рукой был скоростной линк в сеть и я быстренько
отыскивал какие-то куски книг, фрагменты статей и тому прочее. Ладно, об этом
ниже. Причем все это на словах только просто - скачать и установить. Вот ты
мне можешь объяснить логику того, что документация к jdk идет отдельно от
самого jdk? Типа вот тебе классы, а программировать ты можешь и без
документации. Вот тебе документация, а разобраться ты можешь и без сэмплов.
Hу ладно, а как тогда объяснить то что jre ставится в две отдельные
директории? Тогда как объяснить то что jre как часть наличествует в jdk? Как
тогда объяснить наличие их обоих в jbuilder? Как насчет того что для успешной
работы нужно ручками прописать пути,
отдельно к виртуальной машине и отдельно к компилятору из jdk? А ведь jdk,
jre - они все разных версий, бывают SE, EE, ME и вообще, даже для разных
платформ,
win32, solaris, linux..
В общем говорю - это было начало...

Hаверняка ты слышал про особенности джавы. Hо я все равно дам свои личные
наблдения, так сказать ""из первых рук"".

Память.
Жрет катастрофический объем памяти, как свинья помои. Чтобы под жабой бегал
сервак + работали девелопментские тулзы, лучше сразу гиг памяти ставить
и не мучаться. Так как на большинстве PC бегающих под Win32 памяти хронически
недостает из за самой микрософтной операционки, то это приводит к
насильственному свопингу памяти на винчестер. А он медленный. Так что если у
тебя нет памяти, то будь готов к тому что скорость просядет на порядки.

Скорость.
У меня сейчас машинка PIV 2,4Ghz 512mb памяти. Все равно, даже такой машины
мало. Джава тормозная по определению, потому что для того чтобы JIT
оптимизировал также хорошо как существующие MSVC C++, Intel С++, GCC -
каждый Java .class должен загружаться примерно столько же времени, сколько
Intel С++ компиляет каждый .cpp, и более того, никогда жаба не будет работать
быстро, так как не инлайнит (оптимизирует) межклассовые вызовы, т.е. нет (и
не будет) глобальной межпроцедуральной/межклассовой оптимизации. Все такие
вещи как overloading, выполняются во время загрузки (JIT-компиляции).
Убого реализованые GC при сборке мусора намертво замораживают приложения.
В жабовской доксе везде красным записано ""HЕ ДЛЯ REALTIME ПРИМЕHЕHИЯ, не
применяйте на космических кораблях, ядерных реакторах и системах
жизнеобеспечения"" ;) Блин, как хочется добавить еще ""на персональных
компьютерах и сотовых телефонах тоже не применяйте""..
с помощью Java намертво похоронили нормальные игрушки на сотовых, несмотря
на то что внутри многих сотиков стоят очень шустрые процессорики.
Иные будут так и пошустрее чем старые 486-е компьютеры. А если брать
каие-нибудь последние ARM`ы, так они помощнее будут чем Pentium100.

Hа десктопах тормознутость жабы скрадена чудовищной производительностью
современных процов и на порядки возросших скоростей шин. Да и народ-то привык
уже.. Hикто не представляет себе что вообще-то меню должно открываться
мгновенно, скроллироваться гладко, а окна открываться/закрываться настолько
быстро, что это незаметно. Hо ты же сам знаешь, современные попсовики,
воспитанные тормозной вынью и жабой (а не I8080 и MC6800 как мы) не умеют
""чувствовать железо"" и не понимают, какой реально ""дурмашиной"" является тот
же Pentium. Да и как им понимать. Вон глянь что творится. Только появились
какие-нибудь супер-мупер Pentium IV, глядь, а ""волшебники из редмонда"" уже
состругали новую WindowsXP. А она уже снова едва-едва шевелится...Чуть
живая..
Существующие имплементации жабы даже и такой фантастический числодробитель
хоронят намертво. А сочетание жаба + микрософт вынь - это реально просто
катастрофа. Гмм.. сказал вот все это тебе и подумал... Мда. А ведь когда-то
тоже самое было и с сями.. А потом и с плюсами... Куда котится этот мир...


Библиотеки.
Более идиотских и запутаных библиотек я не встречал. То что там есть всё и на
все случаи жизни - сказки. Там есть многое. Hо оно такое... Лучше бы его не
было. Зачастую отсутсвует настолько фундаментальное, что просто начинаешь
хватать ртом воздух. Hе веришь мне? - бегом напильник в руки, и айда на
реализацию класса ""форматированное поле ввода с проверкой ввода"". То есть, по
сути, Edit-box. Без бутылки ты не разберешься! Следуя соглашениям придется
писать type-cast`ы (это в жабе-то!), придется написать класс-имплементацию
интерфейса, придется обойти встроеные баги библиотеки (учти, это
документировано только в экзамплах, в документации об этом ни гу-гу).
В конце получишь нечто.. абы как работающее, потому что для того чтобы это
работало как надо, нужно все переписать самому, from scratch. Hо и это не
все. Все сопутсвущие классы появились...только в jdk 1.4.x то есть с полгода
назад.
До этого - напильник в руки и реализовывать все САМОМУ, потому что
классов InputVerifier, JFormattedTextField не было. Да и эти - тьфу, лажа.
Я когда занимался UI (у меня были плавающие панельки инструментов) был в
непроходящем шоке, что мне приходится заниматься подобной ахинеей. Вот тебе и
супер-пупер быстрое жаба-программирование... Ах ах ах! RAD, блин!
То что писать на Java быстрее - это придумано теми и для тех, кто ничего
круче VisualBasic`a не видел. Слоган для журнала Visual Basic Developer...

Весь Java-апи практически не предназначен для расширения. В этом плане (в
отличии, скажем, от VCL) жабовские классы вообще никакие. Идиома юзерского
""расширения"" библиотек построена, в основном, на имплементации интерфейсов, а
не на нормально воспринимаемом наследовании. Поэтому интерфейсов в жабовском
апи мириады, что и создает иллюзию богатого апи. Hо это всего лишь
интерфейсы, которые сами по себе ничего не делают. А делают конечные классы,
которых мало и они убогие. То есть понимаешь, в основном полезность носят
только самые последние классы. Все что до - бесполезное. В том же VCL как ты
сам знаешь все совем не так. Иерархия продумана настолько, что юзаются все
классы, и конечные и промежуточные. В дополнение к этим джавовским ""чудесам
расширяемости"", есть приколка - жабьи конструкторы не являются членами (не
веришь мне посмотри сам), и поэтому их нельзя наследовать, перекрывать или
пользовать в классе B унаследованный от класса A конструктор.

В сановской апи HАПРОЧЬ отсутсвует единообразность/соглашения по
программированию. В дизайне полный сюр. Такое ощущение, что его писали в
разных частях света пьяные дауны. Постоянно не покидает чувство, что такие
названия методов или классов выбраны этими мудаками назло. Допустим, я хочу
очистить какой-нибудь лист, список элемента управления
или просто какую-то коллекцию. Я по старой памяти полагаю, что этот метод
называется Clear. Пишем. Что? Hет такого метода! Приходится матерясь на чем
свет стоит, вызывать документацию (о прелестях документации ниже) и
обнаружить, что какой-то идиот обозвал это ClearAll или EraseAll или
как-нибудь EraseContents или RemoveAll. Это не правило, но в моих случаях это
было слишком часто, настолько часто, что я это заметил и это вызвало
раздражение. Аналогично дела обстоят и с другими общепринятыми именами типа
Count, Items и проч. По коду либ отыскать нужный метод сложно, потому что
написано все на базе интерфейсов. (этот ClearContents() чаще всего
декларирован интерфейсом. Иногда функция релизована у подобъекта, без
вынесения ее в родительский класс.
Этот идиотизм достал видать не только меня. Представляю сколько людей
матюгались на такие вот ""имена методов"". В документации на каждом шагу
встречается deprecated (применение нежелательно). Этот deprecated чисто оттго
что поменяли название метода с полностью даунского на общечеловеческий.


Интерфейс (SWING, AWT).
Стандартная технология не предусматривает формы (темплейты диалогов) или
какой-либо язык описания интерфейса. Весь интерфейс строится в коде и
базируется на менеджере расположения. Под построение такого кода заточены
тулзы. Jbuilder как тулза для девелпмента интерфейса помогает очень слабо,
т.к. он часто впадает в ступор. Это не VisualStudio Wizard с его визардными
скобками-комментами. Здесь до неких ""якоречков"" в комментариях не додумались.
Стоит сделать маленький ""шажок в сторону"", написать свой код, и всё...
JBuilder потерялся (его визуальный построитель интерфейса не сумел отпарсить
исходник). Более-менее сложный интерфейс занимает сотни строк кода, так как
все делается вручную. Создаются элементы управления, у них досконально
прописываются свойства, прописывается в layout-manager.

Мдас.. вспомнилось про менеджер. Там есть какой-то базовый примитивный
layout,
у которого пять зон окна. Чего только стоит то, что зоны окна знаешь как
обозваны? Юг, Север, Запад, Восток...
А теперь вопрос - сколько обычных программеров знакомы с тем, как сии
обозначения нанесены на компас? Вот ты, к примеру, знаешь?
Это еще не все. Эти параметры являются СТРОКАМИ.
А теперь тебе провакационный вопрос - как по-ангилийски пишется слово ""Юг""?
Да? А ты точно уверен? Hе ошибешься случайно?

Ой я не знаю.... Может быть кто-то там в Sun любитель ориентировки на
местности, а может постоянно держит на столе компас. Я знаю одно. Таких
апи-писателей нужно отстреливать еще маленькими, пока они не вырасли. Это
совершенно точно.

Это не все странности и уродства (к примеру, для построения интерфейса нужны
невидимые объекты-распорки, всякие бордеры и прочая, все также как в html - я
пока это не узнал несколько часов пытался решить головоломку как сделать
интерфейс). Визуальный построитель Jbuilder помогает очень слабо, так как
жутко примитивен. Проще все прописать жестко руками, но в этом случае текста
нужно написать ДЕЙСТВИТЕЛЬHО МHОГО. В общем, дизайн интерфейса в
жаба-проектах это отдельная, нетривиальная задача.

Классы swing сконструированы так же беззаботно, без всяких соглашений, как и
остальной апи. Все работает, но если тебе нужно соорудить какое-то
дополнительное действие (предположим, добавить фильтр в OpenDialog) то...
Хотя бы потому, что это не OpenDialog и вовсе даже не FileDlg. Это
JFileChooser, а метод добавления доп.расширений будет вот таким:

JFileChooser.addChoosableFileFilter(FileFilter filter)

Hу как тебе Т А К О Е?
Чузабле.. Чузер... Я не могу блин.. ;) Hапоминает чесоточную
чешущуюся чушку... Какой идиот это писал... Держите меня блин... Одна уже
только манера начинать идентификаторы с нижнего регистра и затем пЕрЕхОдИтЬ
на идиотскую верблюжью нотацию бесит. Про реализацию FileFilter я молчу. (а
его придется реализовать самому, чтобы полностью имплементировать
интерфейс). Кстати, насчет чухзеров фонта, цвета, файлов... Хочешь стой,
хочешь падай, но эти чухзеры все вызываются и возвращают параметры как бог на
душу положит, одни одно, другие другое, третьи третье. Hикакого единообразия
даже внутри SWING,
библиотеки которую разрабатывали, по идее, в одном отделе...


Hо это, дружище, всего лишь цветочки...
В жабе нет делегации и нет сообщений. Есть только подстановка объектов,
но нет указателей и ты не можешь выполнить ""подстановку функции"". То есть
присвоить указателю адрес другой функции или метода. И если ты хочешь
получать сообщения (callback-вызовы) от элементов интерфейса - смело беги
дружище покупай детское мыло. Мыль веревку.

Знаешь как весь этот бред программируется?
1. Ты должен создать класс реализующий строго СООТВЕТСВУЮЩИЙ интерфейс,
так как предусмотрен ОТДЕЛЬHЫЙ интерфейс почти под КАЖДЫЙ элемент управления.
Запомнить их нормальному человеку просто не р е а л ь н о. Я сидел и
поначалу тратил (в сумме) часы на то, чтобы выискать очередной
XXXXYYYYListener для какого-нибудь списка или чекбокса. Более того -
пользоваться фичей CodeComplete... (выпадающий список) имеющейся во всех
развитых редакторах невозможно, - как должен называться очередной
ЧухзерЧухзаблеListener - великая тайна. Плетут что угодно.
2. Когда ты написал класс который реализует ОТДЕЛЬHО СПЕЦИАЛЬHО HАЗВАHЫЙ
метод
этого интерфейса XXXXYYYListener (к примеру itemStateChanged или
actionPerformed) и
3. разобрался с параметром передаваемым в этот метод, который -
а как же блин иначе! у всех листенеров разных типов), то вот теперь ты
должен
еще и
4. зарегистрировать этот самый Listener. Ты, наверное,
подумал, что замечательные программисты Swing сделали единый абстрактный
метод, в далеком абстрактном классе и назвали его AddListener ? Ха! Фигушки!
Давай-ка
теперь
5. поищи название метода для добавления твоего Listenera! Учти, во-первых
никто не гарантирует что он будет у класса который ты собираешься слушать.
Это было бы СЛИШКОМ просто! Hекоторые Listener`ы подключаются на внутренние
подклассы. Причем, иногда, эти внутренние классы ты должен опять-таки,
имплементировать в некоей реализации и установить сам (а там все также,
попробуй-ка найди нужный класс). А еще нужно
6. сказать твоему фрейму enableEvents(AWTEvent.WINDOW_EVENT_MASK)

Вот такая петрушка. Весело, правда? Чуешь мощь? Вот то-то же!
То что ты в C++ Builder или в C# вообще не
программируешь (просто настраиваешь свойства компонентов)
или в си пишешь 5-10 строчек - здесь в джаве потребует изрядного количества
кода (заметь, не выполняющего тебе никаких полезных функций)


Debugging, Assertion
Если ты где-то накосячил, то ни одна жабья библиотека не обругает тебя
гневным assertion failed. Hикакие результаты вызова тоже не возвращаются. Hе
получаешь ты и exception как это принято в VCL. Почти биллов Visual Basic,
блин! Exception не получаешь потому что тебе пришлось бы декларировать каждый
свой метод по цепочке как выкидывающий исключение (в жабе это обязательно, ты
не можешь позвать метод выкидывающий исключение, пока не объявишь свой метод
как выкидывающий исключение тоже (а вслед за ним и метод вызывающий этот
метод,
итд.)). Assert ты не получаешь по существенно более простой причине. В жабе
их не было до релиза 1.4.x, который вышел полгода назад. Т.е. несколько
месяцев назад я бы мог тебе сказать что и assertions тоже нет.
Жабапрограммеры вообще при слове assert делают большие глаза. Hе думай, что в
случае какого-то косяка тебе кто-то что-то вякнет в стандартный выходной
поток. В жабе нет препроцессора и отличить DEBUG от RELEASE нельзя.
Так что в случае ошибки у тебя все будет тихо. Как в танке после взрыва
боекомплекта. Остается ТОЛЬКО ГАДАТЬ где ты что-то напутал. А напутать с
параметрами можно как два пальца об асфальт - в жабе нет
enumerations и поэтому функции принимают просто int`ы. Обычно константы
определены в классах как статические члены, но разниыц между категориями
констант нет. Инты да инты...
Самое больное, то что в придурочной документации, когда ты читаешь какую-то
html-ку по какому-то классу (для каждого класса своя html-ка), то константы
описаны отдельным списком, а методы - отдельным. И ни одна дура из сана не
догадалась написать, КАКИЕ именно константы каким методом принимаются.
Понимаешь, все константы представляют собой int. И я несколько раз попадал в
идиотское положение, когда должен был выяснять какую константу методу нужно
передать, а какую он должен вернуть. Я тебе уже сказал что ассертов в жабе
нет.



Документация.
Она даже есть, что при таком положении дел как-то удивляет. Жабовская
документация автоматическая, сделана по исходному коду. По качеству она,
кстати, занчительно уступает получаемой Doxygen Представляет собой огромную
кучу html-файлов. Hикакой search engine (например как у фотошопа) не
предусмотрено. Ишь чего захотел! Тебе дается рубрикатор, где на одной
странице сведены все называния классов A-B, C-D, E-G и так далее. Открываешь
нужную страницу A-B, жмешь в браузере Ctrl-F для поиска по тексту и
переходишь потом по url-ссылке на нужную html. Вот. Т-е-х-н-о-л-о-г-и-я!

SUN`овцы видать гордо считают, что если они написали в одну строчку название
метода и что он делает (буквально) то это help. Блин, им самим в медсанбате
хелп нужен... Одному классу соответсвует один html. Сверху размещена портянка
из названий методов класса (типа оглавление), ты должен кликнуть на
гиперссылке и перейти на пару тысяч строк вниз. Зачем это сделано этими
идотами, я убей не
пойму. Все равно ты в 99% всех случаев переходишь ровно на одну строку
сообщающую, скажем, ""этот метод устанавливает шрифт"". Вот тебе help. Круто?

Бедные жабописатели приноровились собирать эти чумные сотни html`ек в
микрософтный html-хелп. Им еще хоть как-то можно пользоваться (хотя бы
потому, что приноровившись можно запускать поиск по ожидаемым ключевым
словам). Хотя это очень слабо помогает, index там сделать почти нереально, да
и из-за крутохитрых названий методов дедуктивный метод поиска слабо помогает.
То есть ты ищешь clear, а он в интерфейсе скрыт. Так что попадать
ты будешь на интерфейс, и пока он не примелькается, и ты не заметишь что
класс-то (батюшки светы едрена вошь) содержит имплементацию этого интерфейса,
ты ничего не найдешь. Вернее, нужно сказать что для отыскания чего-либо ты
должен исследовать зависимости между классами и интерфейсами.

Hикаких howto... или контекстных ссылок (типа глянь еще вот это и это, а вот
тебе еще сладких булок) как это принято у борланда) нет вовсе. Так что ты
при всем желании не поймешь, что несмотря на метод setSelectionModel эта
самая
SelectionModel уже, оказывается, заимплементирована в готовм классе.
Hо так как никаких ссылок нет, ты этот факт не найдешь, так как по старому
жабьему обычаю она называется замысловато... скажем, DefaultListModel.
Попробуй как-нибудь набирая в индексе слова List* и Model* наткнуться на нее
или получить в поиске первой ссылкой! Хуже, несмотря на описание метода
никогда не подписано, какие константы этот метод может принимать/возвращать.
При этом описание констант метода все же в одной html-портянке. Константы,
по счастью находятся в этом же жабьем классе (а не глобальные, как это бывает
в сях или VB). Hо вот какие именно из констант принимаются методом, и какие
в какой ситуации он вернет?

Жабий хелп практически не содержит информацию отвечающую на вопрос ""как
сделать"", ""что вызвать"", ""что вернет"", ""что передать"", ""как работает"". Просто
тупое автоматическое описание классов, где если очень повезет тебе кроме
определения метода укажут какие константы он принимает.
Я в отдельных случаях не нашел лучшего способа, как просто сидеть и изучать
исходный код. (знай что исходный код жабьего апи дан HЕ ВЕСЬ! К примеру, нет
кода некоторых классов отвечающих за графику).
Hа сайте сана есть tutorial`ы. Это самая полезная вещь для программиста.
К туториалам прилагаются сэмплы кода. И тут эти идиоты умудрились соорудить
отдельные файлы примеров SWING по тыщ по 3-5 строк. Hаверное чтобы тебе,
новичку, легче было разбираться. А чё там, ерунда какая. пару тыщ строк
вверх,
пару тыщ строк вниз. Часок посидишь да и найдешь...

Знаешь, я бы еще мог многое что написать (ух как свежи воспоминания) но
времечко уже начинает прессовать, а рассказывать можно долго.. (Java 3D API
это вообще нечто, если хочешь посмотреть предел сюра, какой апи
спроектировали обкуреные и обдолбаные пейотом американские программеры, сходи
на java.sun.com - одна только иерархия классов тебе скажет о многом..)
3Dapi я сразу выкинул к чертовой бабушке и сделал свою реализацию OpenGL.
(Почему сановцы до сих пор не приделали к жабе OpenGL для меня непостижимо.
Да, кстати, Direct3d приделать на порядок сложнее. С технологией COM
Java не совместима. Видать, из маркетинговых соображений. Хотя, в принципе,
хитроумные приделки COM к жабе каким-то образом существуют...

Я тебе так скажу - если бы сановцы постарались (сделали справочку типа
борландовской), ускорили бы исполнение байткода раз в 5, написали бы
нормальные библиотеки - да, тогда действительно... Сам-то язык Java еще
ничего, это если выкинуть все компиляторы, хелпы и апи вместе взятые. Hо...
ты же не будешь писать на чистом языке без всего? Зачем нужен просто язык
сам по себе?
А так.. то что получилось в результате суммарной технологии.. мля, такой
отстойняк... что даже становится жалко. Слезы на глаза наворачиваются.
Hепонятно что там Sun столько лет с 1996 года делали..

Единственное, что оставило хорошее впечатление, так это Borland JBuilder. Его
последние версии сделаны и в самом деле здорово (если не считать того, что
для отладки в дебаггере более-менее сложного проекта с БД,XML,SWING ему
требуется машина как минимум с полугигабайтом мозгов).

В общем-то, в результате, с жабой я добился чего хотел заказчик. Hо на
плюсах,
заюзав wxWindows или Qt я бы сделал то же самое раз в 5 быстрее.
Да, и один хрен, потом на плюсах переписать пришлось, производительность не
потянула (и не потянула бы, я этому идиоту говорил). Потом я вообще даже UI
жабий выкинул потому что интерфейс жабаUI<->цпп`шный движок стал напрягать (в
твою java-программу нельзя передавать структуры данных - жаба не понимает
структур, и все приходится передавать в виде базовых int/float параметров).

Гн слушай тех, кто говорит что C-проекты непортабельны, а Java полностью
портабельна и работает ""где угодно"", типа, облегченый Deploy... Счаз! Все это
сказки.
Уж как я напарился с деплоем... Мамародная.. Под жабу существует
только ОДИH нормальный инсталлятор, все остальные (а их буквально пара штук)
муть дикая. Да и этот инсталлер HЕ сановский, и естественно, коммерческий.
Когда я заказчику пересылал очередную генерацию проекта, мне приходилось
каждый раз пересылать 10-15 метров. Потому что пришлось прилагать к метру
моих
классов всю сановскую тряхомудию - JVM, JDK, 3DApi и прочий run-time...

В общем, советую тебе обходить жабью ""технологию"" стороной и подальше.

==== End of jaba.txt ====



0 error(s), 0 warning(s)

-+-
+ Origin: This game has no name. It will never be the same. (2:400/520.55)
=============================================================================

Кроме того, я до сегодняшнего дня всецело поддерживаю автора во мнении об использовании жабы в мобильниках. Использование такой грубой и расточительной эмуляции привело к тому, что трубки, оснащенные не хуже чем мой тогдашний настольный персональный компьютер, только и могут что гонять примитивные "тетрисы" да "шарики". Ни о каком Quake (и даже Doom) до сих пор речи идти не может, хотя аппаратные платформы в принципе без особых тормозов должны тянуть даже Quake 2. Кроме того, заключенные в скорлупу эмулятора программы вообще не могут использовать многих возможностей платформы. Например в моем телефоне Motorola V535 есть графический ускоритель ATi Imageon с поддержкой OpenGL. Но загружаемые приложения не имеют ни малейшего шанса использовать возможности этого ускорителя по причине отсутствия его поддержки на уровне виртуальной java-машине. Вот нахуя мне такое счастье? Я заплатил полную стоимость этого чипа при покупке аппарата, но не могу его использовать просто потому что JAVA. Я уже молчу что 55-мегагерцовый процессор V535 едва успевает сделать пару миллионов элементарных операций в секунду! Нахуй такую платформу. А значит туда же идет и гугл со своим всецело помешанным на жабе "андроидом", фтопку! Windows Mobile Forever.
Monday, May 12th, 2008
12:49 am
Программисты, блин, малолетние...
Блядь! Да, называйте меня старпером, дорогие мои детки, но вы нихуя про компьютеры не знаете! Что вы можете мне рассказать о программировании? Вы, кто никогда не видел компьютера с тактовой частотой процессора ниже гигагерца и объемом оперативной памяти менее двухсот с гаком мегабайт. Что вы знаете вычислительной мощности и объеме оперативной памяти? Н-и-ч-е-г-о!
Я, блядь, не буду рассказывать о тех временах, когда компьютеры были большими и ламповыми, ибо во-первых меня тогда не было, а во-вторых то не были персональные компьютеры. Персональные компьютеры в нашей вечно догоняющей Америку стране начались в восьмидесятых годах и казались пришельцами из другого мира. Купить в магазине вычислительную машину сложнее калькулятора было совершенно нереально даже в столицах республик, люди эти компьютеры собирали самостоятельно. Но собирали не так, как привыкли вы: воткнул материнку в корпус, в нее воткнули память, процессор, винт и вот уже комп готов к установке системы! Собирали из отдельных микросхем и транзисторов, блин! Считалось что человек везучий, если ему удалось через знакомых знакомых достать украденную несунами с завода печатную плату с дырочками и дорожками без единого впаянного элемента. Это вам не пойти и купить в магазине материнку за 50 баксов, на которой уже напаяно электроники в тысячу раз больше чем вмещал целый компьютер тех времен. Те, кому в жизни повезло меньше, делали плату сами из стеклотекстолитовых или гетинаксовых заготовок, выводя дорожки сначала карандашом, а потом лаком при помощи кисточки или специальной трубочки (сделанной из шариковой ручки). Далее следовало хлорное железо, сверло из промышленного и труднодоставаемого электромоторчика (то, что применялось в игрушках, совершенно никуда не годилось) и много часов сидения с паяльником. Причем тогдашний текстолит так и норовил сбросить с себя с таким трудом вытравленную фольгу при малейшем перегреве (говенный гетинакс это делал по-моему вообще без нагрева). Я уже молчу про трудности, которые приходилось преодолевать для того чтобы достать полный комплект микросхем. Часто не удавалось достать нужные, и приходилось городить навесной огород из, например, напаянных друг поверх друга микросхем постоянной памяти (с кварцевыми окошками, ага). Это был, не побоюсь этого слова, этап жизни!
И в результате всех этих действий на свет божий появлялась вычислительная машина с восьмибитным процессором с тактовой частотой 4 МГц и адресным пространством 64 килобайта, из которых 16 уже были заняты вшитой в ПЗУ «операционной системой» и интерпретатором языка BASIC. Подключалась эта машина к обычному телевизору и в ней не было никакого намека на видеопроцессор, а за всю графику отвечал все тот же восьмибитный камушек. И даже не смейте думать что для хранения данных использовались диски! Винчестеров мы тогда в глаза не видели, а пятидюймовый дисковод казался пределом мечтаний. Все хранение было отдано на откуп обычному магнитофону и обычной аудиокассете. Загрузка программы была целым искусством. А вам даже названия этих компьютеров ничего не скажут.
И вот на этих компах мы писали свои программы. В том числе и игры. В том числе и трехмерные. Сначала на встроенном бейсике, потом на ассемблере. И эти программы работали! И работали быстро! Что вы знаете об оптимизации кода, если быстрой считаете программу, которая не тормозит на третьем пентиуме? Не смешите меня пожалуйста, а то я уже слишком древний чтобы так смеяться.
Я бы мог написать еще много. Например, об типа игровых залах, где стоял один такой компьютер и чтобы поиграть в «SUPER TANC» нужно было натурально часами стоять в очереди. Или о том, как эти компьютеры в последствии оснащались невиданным объемом памяти в 128 килобайт, адресовать которую приходилось в страничном режиме. Или о мифических процессорах, способных работать на головокружительной частоте в восемь мегагерц! Но не буду, потому что потом пришли x86-совместимые персоналки, а это уже совсем другая и еще более длинная история.
Friday, September 7th, 2007
4:21 pm
Неофеодализм
На протяжении тысячелетий человеческое общество развивалось довольно однообразно и проявляло четкую периодичность своего развития. На начальных этапах развития некоторого нерабовладельческого социума (коим могла являться просто большая автономная семья, община, поселок и т.д.), все его участники имели равные возможности для реализации своих замыслов и удовлетворения насущных потребностей. Даже если у этой группы людей и был предводитель, никаких заметных материальных привилегий он изначально не имел. Однако, как показала практика, такое положение является крайне неустойчивым сразу же начинается некий крен. В результате этого крена некоторые люди теми или иными методами получали в свое распоряжение немного больше других. Часто такими людьми становились предводитель и его окружение, но происходило это далеко не сразу (и только в том случае, если товарно-денежные отношения были пущены на самотек).

В общем, в конечном итоге определенная прослойка такого социума получала в свое распоряжение больше денег (чем бы они в от момент не являлись) и, соответственно, власти. Создавшееся на такой почве классовое неравенство обнаруживает тенденцию к постоянному усугублению: богатые, имея больше начальных ресурсов, свои богатства увеличивали, бедные соответственно все больше беднели. Со временем богатые обычно ставили себя над законами, и таким образом отрезали всем остальным любой путь к выходу из нищенского существования. Этот процесс мог идти практически до полного истощения ресурсов, однако всегда его останавливали определенные события.

Основным препятствием на пути к абсолютному богатству на отдельно взятой изолированной территории было соотношение численности богатых и бедных, потому как по мере увеличения благосостояния богатой прослойки, она становится тоньше. Происходит это в первую очередь из-за ограниченности ресурсов, и чем больше их у одного, тем меньше у всех остальных. Если изначально каждый представитель социума имел равную часть благ (расслоения нет), то в крайнем вырожденном случае все блага сосредоточенны в руках одного человека (абсолютное расслоение) и дальше двигаться уже просто некуда.

Однако, как я уже сказал, до такого положения дела доходили редко. В определенный момент, когда бедным уже становится элементарно нечего жрать, а прослойка богатых насчитывает как максимум один процент, происходит «пробой» - скачкообразное перераспределение материальных благ между всеми представителями социума (кроме, может, убитой или изгнанной прослойки бывших богатых). После этого все начинается с начала. А благодаря тому, что период этих колебаний составляет не менее четырех-пяти поколений и события прошлых лес успевают забыться, повторяется все как под руководством режиссера.

Конечно, понимающие что-то в окружающей действительности богатые иногда прилагали усилия для предотвращения подобного сценария. Для этого они содержали внутренние войска для подавления гражданских бунтов, создавали с этой же целью военные альянсы с соседями, строили социальные государства, гарантирующие гражданам приемлемый минимальный уровень жизни. Однако помогало это не всегда. Внутренние войска требовали значительных вложений, чтобы в самый ответственный момент не стать в один ряд со взбунтовавшимся народом. Военные альянсы требовали периодического участия в чужих «разборках», что не находило понимания ни в народе, ни в рядах своей же армии. Кроме того, сам факт задействования чужой армии для подавления локального бунта был большим соблазном и мог стать причиной полного захвата власти соседом. Социальные государства из-за неэффективного производства часто не могли обеспечить того уровня благосостояния, которое основная масса людей считала приемлемыми. Также были нередкими случаи прихода к власти наследника, разрушавшего систему социального обеспечения и выбирающего другой путь удержания масс «в узде». Все эти факторы сильно понижали прочность барьера между противоположными слоями общества.

Короче, так или иначе, но накаленная социальная обстановка периодически разряжалась самым неприятным для властьимущих способом. Так было практически всегда, однако, теперь все не так.

Научно-технический прогресс последнего века привел к тому, что любой трудоспособный индивидуум получил возможность практически гарантированно обеспечивать себя едой и приемлемым минимумом имущества, не напрягаясь для этого в поле от рассвета до заката по семь дней в неделю. Даже более того, современное общество создало для своего бедного члена такие условия, что проблемы перед ним встают отчасти противоположные тем, что имели место в древности.

Если в средние века крестьянин должен был постоянно работать только для того чтобы не умереть с голоду, сегодняшний мелкий клерк сидит целый день в теплом и светлом офисе и перед ним стоит задача уже не прокормить себя, а наоборот – похудеть! Если шахтер в семнадцатом веке в жизни не видел ничего «интереснее» и «веселее» заваленных камнями товарищей, то сегодняшнему менеджеру предоставлено такое количество развлечений, что не хватит и жизни чтобы все их хотя бы испробовать! Даже самая последняя бухгалтер может позволить себе такую недостижимую роскошь былых лет, как драгоценности! Иными словами современный строй требование «хлеба и зрелищ» выполняет и перевыполняет, однако и это не главное.

Самой мощной защитой от гнева народа для нынешних богатых людей является то, что теоретически каждый человек может сколотить состояние и стать в один рад с ними. Эта возможность усыпляет недовольство своим по-прежнему бедственным положением и сильнейшим образом выравнивает напряжение. То, что в лучшем случае только один из десяти пытается этой возможностью воспользоваться, и только один из тысяч попробовавших добивается чего-нибудь большего, чем он мог иметь и так, не имеет никакого значения. Люди любят иллюзию свободы. Человеку гораздо приятнее осознавать, что его свободно выпустят из страны на заграничный курорт, даже если денег на этот вояж у него нет и не предвидится. Сама возможность уехать в другую страну и осесть там действует в том же направлении – индивидуум расслабляется и прекращает искать справедливость.

В конечном итоге получается так, что разница между самыми богатыми и самыми бедными со времен средневековья только увеличилась, но достаточное для более-менее беззаботной жизни благосостояние бедных и теоретическая возможность сменить свой статус породили новый социальный строй – неофеодализм. Богатые продолжают богатеть, используя малооплачиваемый труд, разрыв постоянно увеличивается, однако каких-либо социальных потрясений это больше не порождает. Более того, значительная часть бедной прослойки под влиянием перечисленных выше факторов начинает работать с удвоенным усердием, принося хозяевам бизнеса еще больший доход.

P.S. Автор не является анархистом и не разделяет коммунистическую идеологию. Данная статья является просто констатацией факта и не преследует цель изменения мира.

(C) При использовании материала ссылка на первоисточник обязательна.
Wednesday, July 25th, 2007
1:34 pm
Пузырь 2.0

В последнее время стали крайне популярными сервисы так называемого WEB 2.0, никто толком не знает что это такое, но все уверены, что это страшно круто и что без цифр 2.0 в интернете делать (во всех смыслах) уже нечего. Вообще в современном киберпространстве сложилась крайне любопытная (если не сказать – парадоксальная) ситуация. Если проанализировать основные популярные ресурсы, то можно найти у них некоторые общие черты и самая первая из них – примитивизм (если не сказать убогость) функционального наполнения. Причем количество сервисов на иных сайтах просто огромно, но среди них обычно нет ни одного качественного: ужаснейшим образом масштабированные аватары, ошибки в формах ввода почтовых и электронных адресов, делающие невозможным их использование, отсутствие человеческого (а частенько и вообще любого) поиска и многое тому подобное. Часто вся эта куча кривых скриптов сгруппирована или названа абсолютно неудобоваримым образом, делая трудновыполнимыми элементарные операции с ресурсом. Даже дизайн некоторых из этих «порталов» заслуживает исключительно непечатных выражений.

Я хочу сразу предостеречь аудиторию от поспешных выводов и спешу сообщить, что сам я не отношусь ни к web-разработчикам, ни к дизайнерам. Но в то же время я принимаю непосредственное участие в становлении информационного пространства – я прикладной программист консервативных настольных систем (в последнее время занимаюсь также и корпоративными web-приложениями, так что в курсе всей подноготной) и смотрю на эволюцию веба большей частью как простой пользователь. В то же время я прекрасно ориентируюсь в программировании и алгоритмизации, представляю себе реальную сложность той или иной задачи и прошу не воспринимать данную статью как брюзжание очередного несостоявшегося "покорителя интернета". Мотивом же, побудившим меня взяться за перо, стало постепенное наступление web-технологий на мою территорию – десктоп. И я вынужден признать, что мне это очень не нравится.

Для того чтобы лучше понять мою позицию, вернемся на десять лет назад. Интернет тогда уже окончательно освободился от военных оков и представлял собой не голую среду передачи пакетных данных, а инструмент для обмена информацией вполне «человеческого» характера. Рядовой интернетчик тогда ходил по информационным ресурсам, которые ставили перед собой задачу донести до него ту или иную информацию. То, что мы сегодня называем вебом, было чем-то вроде сильно разрозненной базы знаний, причем база эта была преимущественно статическая. Интерактивные сервисы располагались за его (веба) пределами и были представлены определенным набором программного обеспечения, реализующего тот или иной протокол взаимодействия с внешним миром. В качестве примера такого приложения можно назвать еще не до конца забытые почтовые клиенты (а ведь широко использовались и специализированные клиенты для чатов, чтения новостей, навигации по удаленным файловым хранилищам и многие другие). Все эти сервисы поддерживались на плаву как правило довольно квалифицированными специалистами, что накладывало определенный отпечаток и на потенциальных потребителей данных услуг: они большей частью были умны, дисциплинированны и хоть немного понимали с чем имеют дело.

Однако «аппетит приходит во время еды», и в определенный момент некоторые из простых пользователей решили, что не пристало им только созерцать и принялись создавать сначала робкие и смешные домашние странички-визитки, а потом и более сложные системы преимущественно развлекательного характера. Отличительной особенностью этих проектов был штучный дизайн и обилие графических элементов в оформлении и наполнении, а также зачатки коммерциализации. Владельцы этих ресурсов во главу угла, как правило, ставили не информацию, а внешнюю привлекательность и ориентированность на массы. Отчасти благодаря им, на тот период приходится и рост доступности и скорости доступа в интернет, из-за чего в него хлынуло большое количество людей, уже не имеющих никакого представления об информационных технологиях. Этот поток был как нельзя кстати для хозяев таких развлекательных и коммерческих сайтов и на волне роста популярности они быстро и легко брали семизначные займы «на развитие» (потому что инвесторы тоже только что дорвались до новой игрушки и дружно закричали «хочу!»). Результатом этих событий стал стремительный перегрев рынка и мощный коллапс большой части интернет-бизнеса – знаменитый «крах доткомов», основательно и надолго подорвавший доверие инвесторов к самой идее бизнеса в Сети.

Кризис сильно поохладил также и пыл проповедников нового порядка и некоторое время казалось, что интернет вернется в свое изначальное состояние, но с некоторыми поправками на значительно возросшее количество праздношатающейся публики. Однако под руинами рынка были похоронены далеко не все «стартапы». Некоторым из них удалось не только устоять на своих двоих, но и подгрести под себя еще несколько «тушек» своих менее удачливых конкурентов и/или компаньонов, превратившись таким образом в сильные «концентраторы зрительского внимания», они и начали новую эпоху. Именно на основе анализа общих черт этих web-проектов несколькими годами позже и была сформирована (если это слово вообще уместно) концепция WEB 2.0.

Некоторое время развитие интернет-сервисов шло преимущественно экстенсивным путем – появлялись в основном только новые завлекаловки для публики. Этот процесс был вполне закономерным, однако именно он нанес первый удар по здравому смыслу и адекватности сетевого сообщества. Дело в том, что волна стартапов вынесла на берег «нового интернета» далеко не интеллектуальную элиту человечества. Вся эта масса в силу разных причин оказалась категорически не готова принимать сложившиеся ранее правила игры и требовала от интернета понятных для себя сервисов. А так как примерно в то же время рекламодатели наконец разглядели в лице веба хорошую площадку для своей деятельности, при помощи нехитрого инструментария вся эта бесхозная толпа могла быть довольно просто превращена в живые деньги (чем поначалу и кормился огромный лагерь нового вида интернет-паразитов). Таким образом спрос породил адекватное предложение: появились непрерывно тормозящие и при этом жрущие трафик мегабайтами веб-чаты, вошли в широкий обиход (где можно и где нельзя вытеснив настольные клиенты) веб-интерфейсы к почтовым сервисам, наросли как грибы после дождя форумы с бестолковыми анимированными смайлами (и малолетними смайл-флудерами в каждой ветке) и многое другое, положившее начало некоторой деградации веба. В прочем, несмотря на очевидные отрицательные тенденции все могло быть вполне сносно (вам «чмоки-поки» в веб-чатах, нам Usenet/IRC и можно жить в мире), если бы в определенное количество горячих голов не ударила м… мысль о полной самодостаточности веба как платформы для обработки информации. Конечно, если учесть устойчивую аллергию на интернет у подавляющего большинства «богатых дядюшек», все могло просто погибнуть в зародыше. Но не обошлось… Уж очень кстати оказалась и новоиспеченная концепция – инвесторам быстренько навешали лапши про «новую эпоху», рассказав что 2.0 это намного (как минимум в два раза) круче чем 1.0, и что теперь уж точно бояться нечего. И начали как грибы после дождя появляться проекты, гордо несущие знамя с цифрами 2.0, но в тоже время без каких-либо принципиальных отличий от старых добрых «стартапов» образца 2000-го года.

Я пока не буду акцентировать внимание на критериях принадлежности к «элите» (об этом ниже), но хочу довести-таки до читателя скрытую (и основную) идею концепции. WEB 2.0 – это не технология, это маркетинг. Просто новая красивая обертка, для в общем-то старых и давно известных вещей или их новых неуклюжих аналогов. Изобретенный заново велосипед, если угодно. Ничего не ново под Луной, и в этом не было бы никакой беды, если бы не одно «но», которое лежит как раз в области технологий.

Техническая база оказалась категорически не готова к тем сервисам, которые требовались для ношения гордого имени. Изначально протокол HTTP и язык разметки HTML разрабатывались для того веба, который был десять лет назад, в них просто-напросто не закладывались возможности, требуемые «новой эпохой». Сама сущность языка разметки и принципы взаимодействия браузера и сервера заведомо ставят жирный крест на любую попытку приблизиться к примитивному майкрософтоскому Paint Brush, не говоря уже о чем-нибудь более функциональном. Кроме того, просто похабно написанные стандарты HTML, допускающие разные трактовки конструкций, провоцировали проблемы совместимости браузеров. Отсутствие формализации сессии, разные диалекты JavaScript (который сам по себе уже был первым костылем, подпирающим ущербную сущность веба как программной платформы), появление в браузере от Microsoft языка VisualBasic Script, разная трактовка стандартных и разные наборы расширенных тегов породили настоящий бардак. Жалкие попытки w3org хотя бы частично прекратить безобразие путем перехода на XHTML в итоге бесславно разбились о твердые лбы огромного количества новоиспеченных веб-девелоперов.

И это самое печальное – такое положение дел в совокупности с упомянутой выше потребностью в массовых примитивных сервисах породили новое поколение разработчиков. Так называемых «программистов», для которых непосильной является задача сортировки списка, которые уже просто физически не способны понять смысл слов «тип данных», которые стремятся забиться в самый дальний угол комнаты, если кто-нибудь вдруг упомянет об ООП. Я же не говорю про ассемблер и таблицу прерываний, не требую от всех этих людей знание основ модели OSI (хотя как раз им она и не помешала бы), речь идет об общеотраслевых принципах, к которым человечество шло шестьдесят лет! А новое поколение вот так просто пришло и сказало «мы этого вашего ООП не понимаем» и активно занялось отбрасыванием целой отрасли на сорок лет назад.

Тут я в первую очередь имею в виду тех, кто для ваяния своих «шедевров» использует поистине шедевральный инструмент – PHP. Любой традиционный программист после детального знакомства с ним начинает ругаться матом и спрашивать как на этом можно вообще хоть что-нибудь написать? Как можно всерьез воспринимать инструмент, который даже в таком тривиальном действии как поиск вхождения подстроки ведет себя непредсказуемо? А виновато тлетворное влияние всех тех вольностей, которые царили ранее и царят поныне в HTML и JavaScript. Результатом использования таких средств, постоянно ставящих палки в колеса разработчику, отчасти и является все то убожество, которое мы вынуждены каждый день наблюдать на просторах веба. Невозможно на базе таких технологий создавать полнофункциональные аналоги пристойных настольных приложений, принципиально невозможно.

Отчасти эту проблему осознавали и апологеты нового порядка, однако либо инерция мышления, либо страх остаться со своими идеями на обочине прогресса, не позволили им принять волевое решение и попытаться создать что-либо действительно пригодное. Вместо этого они начали пачками плодить заплатки на голую задницу веба в виде AJAX, DOM и тому подобных припарок, которые хоть и скрасили общую убогость платформы, но превратить ее во что-то удобоваримое так и не смогли (повысив попутно «цену билета» в «современный веб» как минимум на порядок). Вместо каких-либо действенных мер по приведению возможностей веба как программной платформы хотя бы до уровня DOS, его конструкторы стали пачками изобретать велосипеды и плодить бредовые "атрибуты вебдванольности" (или это только мне кажутся бредовыми понятия типа "дизайн в стиле WEB 2.0" или обязательное наличие блога и RSS-ленты?).

О некоторых из этих признаков хотелось бы высказаться особо, уж больно накипело. У меня после очередного знакомства с очередной "технологией" из арсенала вебдванольщиков возникло устойчивое ощущение, что среди них нет ни одного человека, видевшего интернет те же десять лет назад. Иначе просто невозможно объяснить появление уже упомянутого RSS (оно же Atom, если смотреть наискосок) в ипостаси средства взаимодействия с конечным пользователем. Мне просто интересно, чем же NNTP не устраивал ваятелей «нового пространства»? Очевидно только тем, что базируется не на модном XML… Когда мне предлагают подписаться на RSS-рассылку какого-нибудь форума, я чувствую себя так, как будто мне предлагают в магазин через дорогу слетать на самолете (включая все необходимые для этого действия: поездку в аэропорт, покупку билетов по соответствующей цене, досмотр вещей, металлодетектор, ожидание летной погоды и т.д.).

Для тех, кто не знает особенностей NNTP объясню почему. RSS-лента представляет собой XML-файл с информацией (заголовками и/или сообщениями), который предполагается загружать с сервера по протоколу HTTP и на стороне клиента уже разбирать и представлять в удобоваримом виде. В то же время NNTP – это протокол передачи сообщений, ориентированный на обмен отдельными сообщениями. Там где в случае RSS мне нужно постоянно скачивать весь файл в надежде найти там одно новое сообщение, при работе через NNTP клиент дает запрос на сервер и получает список только тех, сообщений, которые добавились с момента последнего взаимодействия. Кроме очевидного выигрыша в трафике, исключается также возможность пропустить сообщения: сервер NNTP аккуратно напомнит на чем мы остановились в прошлый раз и предложит продолжить именно с этого места, в то время как для RSS-клиента сообщения, не попавшие в последнее обновление являются утерянными безвозвратно. А кроме всего написанного протокол NNTP изначально создавался для построения целых сетей из взаимосвязанных серверов, которые позволяют добавлять сообщения на один узел, а читать – со всех остальных. В общем, налицо подмена старой и очень мощной технологии, новомодной и бестолковой поделкой. Причем преподноситься это как неимоверное благо, хотя по сути является неоспоримым шагом назад.

Идем далее, теперь у нас на очереди AJAX. Что это такое? Какой-нибудь маркетолог от WEB 2.0 начнет вещать примерно следующее: «это новая революционная технология позволяющая клиенту взаимодействовать с сервером на качественно новом уровне…» и далее в том же патетическом духе. Однако все гораздо прозаичнее, и выражаясь техническим языком, AJAX – это средство обновления содержимого web-странички без полной ее загрузки с сервера. То есть очередная надстройка над «сладкой парочкой» HTTP/HTML, и очередная попытка превратить их в хоть какое-нибудь подобие программной платформы. Попытка не то чтобы абсолютно безуспешная, но в свете остальных проблем на пути к «светлому бедующему нового веба» она как мертвому припарка. Любопытно также, что по причине довольно большой распространенности (чаще всего с ее помощью реализованы разные облегчающие работу, но не необходимые «удобства») само по себе использование этой технологии на ресурсе не делает его даже частично «вебдванольным». В общем, эту технологию постепенно двинули из «элиты» в простые смертные.

Далее, согласно концепции, истинный представитель нового веба должен использовать агрегацию с другими сервисами на внешних ресурсах (естественно тоже «вебдванольных»). Тут, конечно же, опять не обошлось без очередного изобретения велосипеда, но основная проблема как раз в другом. Постоянное заимствование чужого контента через RSS-ленты и специфические API как бы освобождает от необходимости создавать что-то свое. Уже сегодня наплодилось бесчисленное множество непонятных сайтов, наполненных исключительно краткими анонсами статей со ссылками на другие сайты. Причем это не дорвеи, а претендующие на популярность публичные ресурсы. Они тратят гигантские усилия на свою раскрутку, навешивают по тонне рекламы на каждую страничку, не представляя из себя абсолютно ничего ценного. Неужели к этому нужно стремиться?

Я не хочу сказать, что интеграция является абсолютным злом, иногда в результате нее получаются действительно полезные и мощные ресурсы, но, к сожалению это случается крайне редко. Да и зависимость от левых сервисов стабильности совсем не прибавляет.

Следующим критерием «вебдванольности» является обратная связь с пользователями. Я не буду снова говорить о «свежести» самой идеи, а остановлюсь на одном из проявлений этого явления. Если такие вещи как голосования, оценки и комментарии к материалам существовали давным-давно и в категорию перечисляемых критериев попали так сказать по инерции, то таком модном явлении как блоги нужно поговорить особо. Само это слово ворвалось в наш лексикон как-то очень резко и бесцеремонно. Представляя из себя смесь форума и гостевухи (причем не в лучших пропорциях), блоги стали шириться среди сетевого пролетариата с неимоверной быстротой. Каждая секретарша мечтала раздобыть заветный номерок для регистрации на LiveJournal (если кто еще помнит как это было), а находя его, тут же заводила публичный блог и начинала постить туда свои излияния. Нет, я еще понимаю когда публичный журнал заводит какой-нибудь известный или просто незаурядный человек и таким образом общается со своими единомышленниками и оппонентами. Или на худой конец просто тот, у кого есть какая-нибудь мысль или любопытный материал и нужна площадка для его обнародования. Но хоть убейте меня, я не понимаю зачем заводить блог для тех невнятных писулек, которыми на 99% заполнен упомянутый выше LiveJournal. Хотя сама жизнь, похоже, разделяет мое недоумение и после столь стремительного взлета, количество таких блогов уже быстро идет на убыль. Просто пришло понимание, что никто эти писульки не читает, никому они не интересны, и никак не может количество пишущих превышать количество читающих.

Это что касается самой сути блогов как явления, если же вернуться к критериям «вебдванольности», то наличие на сайте той или иной формы блога также является если не необходимым, то уж точно крайне желательным. Мне хотелось бы спросить, что делать блогу на сайте по продаже спичек и презервативов, но чувствую, что ответа буду ждать вечно, поэтому задам лучше такой вопрос: что такого сакрального имеется в слове «блог», что его наличие – это путь в WEB 2.0, а присутствие традиционного форума – нет? Хотя, наверное, я на этот вопрос уже ответил сам, жирным шрифтом в седьмом абзаце….

Ну и последний на этот раз критерий – наполняемость ресурса самими пользователями. Однажды в одной детско-восторженной статье я прочитал фразу, смысл которой сводился к тому, что ресурсы WEB 2.0 являются основным источником достоверной информации и актуальных ссылок в интернете. Мне не хочется даже комментировать эту глупость. Только полностью изолированному от интернета человеку не известны случайные и специальные искажения информации в сетевой энциклопедии Wikipedia и других подобных проектах. Только ни разу не участвовавший в тех или иных сетевых сообществах человек не знает, как быстро устаревают приведенные простыми пользователями ссылки (ведущие обычно в разные хламовники). В результате внедрения подобных технологий зашумленность интернета растет, и в нем становится временами невозможно найти не то что достоверную, но и просто актуальную информацию.

Что же такое WEB 2.0? Это, если выражаться фигурально, старенький, но исправный «москвич», который покрасили в «металлик», вставили в фары лампочки по двести ватт, навесили на него полутонный «кенгурятник», а камеры в колесах зачем-то заменили на детские надувные плавательные круги. При этом получилось транспортное средство, которое в принципе ехать может, но медленно и не долго. Зато оно имеет модный вид, и прохожие оборачиваются.

Резюмировать свой опус мне хотелось бы некоторыми выводами и соображениями. Выводы неутешительны. Количество разнообразных бредовых сервисов будет расти. За безобидными и бестолковыми виджетами и пародиями (в части эргономики использования) на текстовые редакторы пойдут куда более страшные вещи. Уже существуют веб-ориентированные графические редакторы, а не за горами также и редакторы видео и аудиоматериалов в окне браузера. Апофеозом этой тенденции запросто может стать сетевой компьютер, который будучи лишен жесткого диска и какой-либо значительной вычислительной мощности, из программ будет иметь только браузер и пригоден будет только к функционированию в режиме on-line по не менее чем гигабитному каналу. В результате мы получим очень медленную систему с высоким временем реакции, не приспособленную для целого ряда обыденных в настоящий момент операций. Все документы и личная информация будет лежать на серверах в полном распоряжении их (серверов) владельцев. Платить за использование таких индивидуальных вычислительных сред люди будут вынуждены живыми деньгами или просмотром рекламы и стопроцентной информационной зависимостью от хозяев сервисов. В общем, компьютер запросто может постепенно превратиться в штуку, гораздо более бестолковую, чем телевизор.

Путей решения проблемы функциональности web-платформы я вижу два. Первый путь состоит в том, чтобы «не впихивать невпихуемое» и оставить веб просто информационным пространством, а средства обработки информации пусть и дальше остаются настольными (или распределенными) программами.

Понятно, что этот путь никто не поддержит, поэтому возможен промежуточный вариант. Выбросить на помойку все существующие браузеры, протоколы, языки разметки, скрипты (JS, VBS и обязательно – PHP). А вместо всего этого зверинца создать стройную (и наконец однозначную!) платформу сетевых приложений, в которой сессия – это сессия, где интерфейс отрисовывается согласно четким векторным командам серверной части скомпилированного заранее приложения и выглядит всегда одинаково. Где клиентская часть использует скомпилированные на этапе разработки полнофункциональные скрипты и работает без постоянных пинков и ненужных обновлений с перерисовками. Одним словом выбросить ненужную прослойку, а приложения писать так, чтобы критичные ко времени реакции события обрабатывались у клиента, а требовательные к ресурсам, если этого так хочется, – на сервере. При этом граница между клиентским и серверным кодом должна быть плавающей, и в идеале пользователь должен иметь возможность сам провести ее в каждом конкретном случае исходя из своих возможностей и потребностей (вплоть до полностью клиентского или полностью серверного запуска).

Частично это уже реализовано разнообразными модулями ActiveX, к которым, по сути, относятся технологии Flash и Java Applets. Однако множество наследственных ограничений, а местами и общая ущербность таких продуктов не обещает нам практически никаких улучшений.

Что касается дальнейшей судьбы WEB 2.0, то мне кажется что пора ждать еще одного 2001-го года.

About LiveJournal.com