суббота, 25 декабря 2010 г.

Потролль лиспера, получи книжку в подарок

Чуточку расслабился у товарища в ЖЖ, потроллил лиспера, не долго. Но он сам пришел. :) Видимо старость пришла: в большие и скандальные посты вообще не суюусь, да и так хватает не на долго -- скучно.

Зато пока поджидал в свои сети книжку по MongoDB, выловил не попадавшуюся мне ранее лисповую книжечку: "Sketchy LISP: An Introduction to Functional Programming in Scheme. 3rd edition", N.M.Holm; lulu.com(2008)
Книжка на бывшей гига-сами-знаете-чём (кто не знает, стучитесь).
Ням! :)

Раздумываю, когда ж ко мне "Let over lambda" приплывёт. :)

Фиды стали утомлять

Гугл-ридер перестает меня устраивать, причем очень сильно. Может дело в источниках, которые я в нем просматриваю (rss-агрегаторы), но от этого не легче.
Как-то сподобился, и провёл чистку фидов, повыбрасывал много отдельно-стоящих журналов, заменив их тематические агрегаторы (scala-planet, russian-lambda-planet, итд). Некоторые блоги все же оставил.
Теперь стоит две проблемы: дубликаты постов в оставшихся блогах и агрегаторах, и необходимость фильтровать поступающий контент по предпочтениям. Ну вот интересно мне читать конкретного блоггеров, почти все, что они пишут, но не о живописи, дартс или полетах на аэроплане. Или наоборот, не хочу я читать в аггрегаторе вытяжки из stackoverflow -- я читаю их отдельно. Или блог знакомого я читаю полностью, а не только то, что он намерен отдавать в "планету" (к чему мне дубли его постов в планете?)
Попробовал использовать для фильтрации greasemonkey (для него есть плагин-фильтр для гугл-ридера), не понравилось: в ридере многие вещи перестали работать совсем, или стали работать через раз на третий.
Возникают мысли о переходе на более развитый клиент, пусть и на локальной машине.

UPD: Google Reader Filter, на который пожаловался, глючит под firefox 3.6.13
UPD2: А товарищ сообщает, что под Google Chrome 8 все работает нормально.

пятница, 10 декабря 2010 г.

Хвалебное

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

Книжка "UNIX Network Programming: Network API" -- отличный пример великолепного справочного издания. Этот фундаментальный труд актуален до сих пор (лет 12 прошло с момента издания), и как мне кажется, будет еще актуален лет пятнадцать. Детальнейшее пособие для "низкоуровневого" программирования сетевых приложений. Я редко встречал книги, оказавшиеся мне настолько полезными: такие можно спокойно пересчитать по пальцам рук, и лишние останутся. Не представляю, сколько труда в нее было вложено, но результат стоил того. Сейчас почти не встретишь книгу, которая бы даже в узкой области содержала бы такую громадную концентрацию полезных вещей, почти на все случаи жизни.

Кому-то может показаться, что я незаслуженно обошел вниманием его же "TCP/IP Illustrated". Ничего подобного. Тоже хорошая работа, очень бы хотел заполучить ее лет 13-15 назад. Но первая меня впечатляет намного больше.

Вот собственно и все.

понедельник, 6 декабря 2010 г.

scala under windows

Cmd-line утилита scala не реагирует на properties, выставленные в командной строке виндового шелла (cmd.exe). А я кучу времени проебся и не мог понять, отчего же размер пула тредов для акторов не увеличивается. В bsd работает, а в винде -- хрен:
$ scala -Dactors.corePoolSize=20 BlockedActorTest
Прийдется значения для property назначать непосредственно при старте программы.
scala.util.Properties.setProp("actors.corePoolSize", "20")

среда, 3 ноября 2010 г.

Неожиданно

Удачный улов. Две книжки за авторством R.Bird нарыл на гига-сами-знаете-чем.
Жаль, что "Introduction to functional programming" -- только первое издание (хотел второе, но и за это спасибо).

суббота, 30 октября 2010 г.

Мелочь, а приятно

8 лет назад один товарищ обращал мое внимание, что электронные книжки печатать не выгодно. Цена копии листа была довольно большой, для "струйника": лазерный был дороговат, а струйник просто уже был. Плюс переплет.
Для технической переводной литературы почти ничего не изменилось. Ну а для иностранной (не переведенной), глядя на цену многих книг (amazon), выходит что очень даже выгодно распечатать самому на лазерном принтере и пойти переплести в полиграфической контре, коих куча. С твердым переплетом собственная копия будет, примерно, в три раза дешевле.
Конечно, если оригинал был в pdf (извращаться с печатью не нужно).

пятница, 15 октября 2010 г.

Вполне подойдет

Есть люди, которым mercurial нравится больше git (и я в том числе). Но никуда не денешься от факта, что github гораздо популярнее и удобнее остальных vcs-хостингов.
Вроде бы все, суши весла и расчехляй git, когда припрет.

Но частично могут спасти расширения, как например hg-git. Небезызвестный Bryan O'Sullivan умудрился вполне успешно совместить работу на mercurial с bitbucket и git, о чем и отметил в своем посте. Т.е. не отходя от родного Hg, пользуйтесь, на здоровье, git-проектами.

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

пятница, 8 октября 2010 г.

Незнакомый "хомяк" внутри меня

Прошерстил очередную папку своей книго-помойки, аккуратненько занес названия в блог с коллекции. До сих пор не пойму, на кой хрен мне понадобилась когда-то "RS/6000 SP: Practical MPI Programming". Создается впечатление, будто за меня частенько искал книжки совсем другой человек.

четверг, 7 октября 2010 г.

Лисперы, такие лисперы...

Swizard -- молодца! хватило терпения и умения сделать низкоуровенную оптимизацию тредов на лиспе, подергав за нужные линухо-ориентированные рычажки pthreads.
Но думаю, что попкроном можно не запасаться: не верю, что жаберы полезут расчехлять свои JNI (или JNA, jinvoke or whatever), или хаскелянты в порыве мести побегут вытаскивать свои ffi. А если и полезут, то выйдет ли толк? ;)
Так что рекорд еще долго будет радовать глаз, обращая на себя горящие взоры зеленых юнцов. Неплохой шаг в популяризации, надо заметить.

Закономерность: более быстрые версии реализации на одном языке содержат больше кода. ;)

вторник, 5 октября 2010 г.

IDE? потом-потом...

По поводу плагинов для scala и clojure в популярных IDE (netbeans, eclipse).
Почему-то на довольно часто на глаза попадается, что кто-нибудь жалуется на ошибки работы плагинов. В том числе и при компиляции. Т.е. из командной строки компилируемся нормально. Из IDE -- где нибудь глюк.
Я в scala и clojure еще только начинающий. Разбираться с заебями плагинов в популярных IDE -- времени нет. Вот еще одна причина, почему всяческие IDE идут на йюх. Спасибо, обойдемся.
Тем более, что scala имеет более-менее юзабельный repl с теми же completion. А Clojure с емаксом хорошо интегрируется -- этим все сказано. Для scala все никак не гляну на приличные емаксовые моды (нужно на ensime кинуть взор).
Для maven есть плагины для обоих, с встроенным использованием repl. Вообщем мне пока без популярных IDE лучше, чем с ними.

Shelfari

Есть неплохой сайт, для хранения информации о своей библиотеке -- www.shelfari.com.
Неплохая вещь, однако нормально им пользоваться как-то не выходит.

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

Десктопные перестановки

Пока забросил Stumpwm и Xmonad в пользу Awesome.
Оба, при работе с внешним монитором (Xrandr), несколько теряли отзывчивость и подтормаживали. Раздражало. Надоело, решил передохнуть.
Awesome, по началу, был очень непривычен, но сейчас уже все нормально.

пятница, 1 октября 2010 г.

Интригующие заголовки

Коллекция книжек давно перестала содержать "must-read only". Повыбрасывать спорные книжки можно, но жалко. :)
И вот, опять захомячил пару прикольных экземпляров. Как ради коллекции, так и полистать на досуге.

1. Functional C (International Computer Science Series), 1997
Введение уже подкупило фразами: "We visit all dark alleys of C". Отчего-то вспомнился комикс Functional programming is beautiful.

This book is the course material to teach a second paradigm: imperative pro-
gramming, using C as the programming language. The book has been written so
that it builds on the knowledge that the students have acquired during their first
course on functional programming, using SML.


Ведь правда интересно, как кому-то, кто начинал программирование с SML, будут рассказывать про это чудо природы.

2. Functional Programming and Input/Output.

Тоже будет интересно взглянуть, краем глаза, когда время будет:

A common disappointment with functional programming is the difficulty of expressing input/output (I/O) while at the same time being able to verify programs. Here, the author shows how a theory of functional programming can be smoothly extended to admit both an operational semantics for functional I/O and verification of programs engaged in I/O.

четверг, 16 сентября 2010 г.

"Мой брат Нумси простил меня!" (с)Golden child

BitBucket стал выдавать осмысленные сообщения об ошибках во время неудачных попыток авторизации. У меня, в частности, referer запрещен, а он этого не любит.
Сказал firefox'у, чтобы отправлял их при навигации в пределах одного сайта (tip).
Теперь bitbucket нормально фунциклирует. :)

четверг, 9 сентября 2010 г.

Все идет своим чередом

Ночью температура на улице не больше 13 градусов. Выходишь курить на площадку и чуть подмерзаешь. Зато погреть руки за нотиком и чашкой горячего чая/кофе теперь одно удовольствие. :)

BitBucket подвел. Не могу зайти на свой аккаунт, не могу сбросить пароль, не могу завести новый аккаунт. Все время получаю:
Forbidden (403)
CSRF verification failed. Request aborted.

Результат одинаковый, что в Opera, что в Firefox.

А на github почему-то переходить не хочется. Или ждать, пока пофиксят, или на гуглевский или assembla-вский сервисы глянуть.

В фильме "Catch me if you can" главного героя мог Джонни Депп, вместо ДиКаприо. Мне кажется, что было бы значительно хуже, потому что типаж совсем не тот.

пятница, 3 сентября 2010 г.

Бытовое

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

воскресенье, 29 августа 2010 г.

Scala-книги

Если кто планирует для знакомства с языком использовать литературу, то рекомендую не начинать с Beginning Scala. Лучше начать с "Programming Scala" (O'Reilly) -- книжка хорошая и полезная. Beginning Scala не бесполезна, там примеры разнообразнее, есть интересные моменты и вещи. Но стиль в представлении фрагмента исходника, с последующим обсасыванием каждой строчки (где заново ее покажут), мягко говоря, утомляет.

В "Programming Scala" подробно объясняется много вещей, их механизм работы и причины. После этого Beginning Scala можно будет читать как обзор мелких удобных фич, с пониманием дела, почти по диагонали. Хоть она и расчитана для изучения языка с нуля, но я бы начал с орейлевского варианта (если бы можно было вернуть время вспять).

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

Ждемсс

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

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

Собственно, жду выхода 10-дюймовой читалки (кажется в ноябре этого года должен pocketbook разродится). Лишние 10 (если честно, то 9.25) сантиметров к диагонали экрана явно не помешают. Хотелось бы побольше, но что делать.

суббота, 21 августа 2010 г.

API рубят, щепки летят

При несовместимых изменениях в api стандартных библиотек, страдают, в первую очередь, новички. Книжки пестрят старыми примерами, а в стабильной версии языка они уже не работают. Вот как в примере из ru.scala

Что новичкам нужно научиться делать, так это открывать документацию (api).
Она же есть и в online, и себе можно утащить... . Ведь стандартная библиотека, это не какой-нибудь зубодробительный фреймворк (от которых сам страдаю из-за своей ограниченности), все достаточно просто и ясно.

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

Могли бы в ru_scala, кстати, и комментарии по open id включить.

пятница, 13 августа 2010 г.

Ноутбучное

Сходил за батареей для нотика. Замечательное китайское барахло, но работает.
Пока тестировал, все не мог понять, отчего же индикаторы на батарее не показывают заряд по нажатию кнопки (на той же батарее), когда в hw.acpi.battery.life показывает 58 процентов. Думал, что просто не работает, но похоже кнопка фейковая (одна наклеечка, под которой нифига нет). Полагаю, что и индикаторы тоже.
Теперь ясно, отчего оно стоит гривен на 300 дешевле, чем должна бы. Но лучше такая, чем вообще без батареи. Тем более заряжается и разряжается нормально, заряд держит приемлемо, даже емкость чуточку большая, чем у предыдущего.
Вообщем, на безрыбье и рак -- селедка.

среда, 11 августа 2010 г.

Наконец батарея нотика успешно сдохла. Быстро, незаметно и без мучений: на ночь выключил ноут, а утром уже никто не желает заряжаться. Ну да и мир ее праху, сам виноват, угробил за последние два месяца несчастную батареечку.
Новая батарея, которую на днях заберу из сервисного центра, будет чуть меньшей емкости (было 5400mAh, стало 5200mAh), ну да не критично. Главное чтобы при отключении эл-ва, которые довольно часты осенью и зимой, была возможность спокойно и не спеша завершить работу.

пятница, 6 августа 2010 г.

Утомленные солнцем

Покуда супруга сегодня вечером занималась консервацией, пришлось выйти из-за компьютера, взять ребенка в охапку, чтобы под ногами на кухне не путался, и пойти с ним гулять в лесопосадку ("дикая" часть парка Ленинского Комсомола).
В такую жару (вечером 38 градусов в тени) там было очень даже замечательно. Не то чтобы прохладно, но по сравнению с улицами просто чудесно. Захотелось приобрести нотик с необычно емким аккамулятором и ходить туда работать, в тени деревьев, с раскладным столиком и стульчиком. Если подумать, то может быть и не такая уж бредовая идея. :)

пятница, 23 июля 2010 г.

Вернулся из отпуска

Отдыхали в поселке Береговое, на западном берегу Крыма.

Жара там переносится лучше, чем в городе -- нет этого асфальта, который целый день нагревается. Деревьев мало, но все равно чувствуешь себя ни в пример лучше. Море было просто чудесное. Неделю совсем не было волн: вода прозрачная и теплая.

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

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

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

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

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

Вообщем, несмотря на "мелкие невзгоды", отдохнул бы еще столько же. :)

суббота, 26 июня 2010 г.

Вдохновение не продается, оно отвоевывается

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

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

Буду воевать!

У меня дар использовать вещи не по назначению

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

Количество моих "черновиков" растет. Начав о чем-нибудь писать, замечаешь за собой нечеткость и противоречивость суждений, неосведомленность в деталях. Текст переписывается, уточняется, обдумывается, переписывается, обдумывается, переписывается еще раз. Уточняются детали. Переосмысливаются, уточняются, выбрасываются или заменяются другими тезисы. Если мнение на нетривиальную тему, мысль, о которой раньше не задумывался, то ты ее обдумываешь, вырабатываешь к ней свое отношение, стараешься четко его выразить. В итоге мнение может поменяться на противоположное. Бывает, если хорошенько задумываешься.

Но результаты не публикую. Могу удалить, но не публикую. Потенциально каждый может быть опубликован, только кнопку нажми, но это и сдерживает: вздор публиковать не хочется. Такое ощущение главный признак плохого владения вопросом. А после, когда прошло достаточно времени, и "пост" готов, то понимаешь, что незачем его публиковать. :)

Вспомнилась любимая поговорка (одна из ее вариантов): "если в чем-то хочешь разобраться, объясни это другому". Чувство удовлетворения испытывается не из-за хорошего поста, а от того, что разобрался в интересующем вопросе. Роль слушателя исполняет потенциальная "аудитория", даже если никто тебя не читает. Кнопка "Publish post" выполняет роль успешного завершения дела: нажать ее не стыдно, когда в нужной степени разобрался с вопросом. Но так-как другим это может быть не интересно, а я все "лулзы" уже получил, кнопку нажимать не обязательно. :)

Плохо то, что текст "льется" сам собой. Не приобрел желанную привычку составлять план, делать набросок, уточнять, корректировать. Изначально пишешь каждую строку как законченную вещь. С пунктуацией проблемы. Ну да ничего, это решаемо.

пятница, 25 июня 2010 г.

Плохие привычки

Работа на дому усугубляет некоторые нюансы, встречающиеся на "нормальных" работах.
Чтобы их избежать, есть два совета.

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

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

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

Никому не верь

Никому не верь. Да, вообще никому. Даже себе.

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

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

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

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

И так сойдет

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

четверг, 24 июня 2010 г.

PocketBook: читайте документацию внимательно

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

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

В разделе о мерах предосторожности, руководства пользователя, упомянуто первым пунктом: "Не подвергать устройство воздействию прямых солнечных лучей". Встал вопрос, что такое "воздействие"? За пару секунд "засветил", пять минут подержал, на час забыл? Что такое прямые солнечные лучи? Просто попадание света на экран, или попадание под прямым углом? Завтра детали уточню.

Оказывается этот вопрос уже неоднократно поднимался на форуме www.the-ebook.org, причем еще год назад. То ли бракованая партия экранов была использована, то ли еще у определенных моделей такие особенности, толком не ясно. Разобравшись с поставщиком железа, лица, похожие на сотрудников PocketBook порекомендовали нести читалки в сервис, где их заменят или починят.

Не знаю, какое отношение к этой особенности у сервисных центров сейчас. Скажут "соблюдать условия эксплуатации", или заменят, починят... . Буду надеятся, что за год уж точно найдено решение проблемы, приятное для пользователя. Которое не требует мчаться в тень с быстротой опоздывающего вампира: ведь я так и не уяснил, вредны ли краткомоментные "выходы в свет" для устройства, т.е. не ухудшает ли это, со временем, его свойств.

Важность устранения эфекта зависит и от ситуаций его проявления. С этим нужно будет поэксперементировать. Возможно, что текущее положение дел меня вполне устроит.

Графы, графини и графинчики

Ну вот, и эту секцию книжек тоже отсортировал и прошерстил на предмет дубликатов: Отечественные и переводы отдельно от зарубежных изданий

среда, 23 июня 2010 г.

Автоматы-автоматы, а я маленький такой

Наткнулся на пост jdevelop Мыслеформы, где заметил жж-пользователя realurix.
Нравится, когда человек ратует за четкость и однозначность терминов. Хоть ясно, что контекст и исторически сложившееся положение определяет значение слова. И от этого не уйдешь.

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

Например, интересно было, что он имеет ввиду под автоматами. Конечные автоматы? Помнится, где-то упоминалось об эквивалентности грамматик регулярных языков и детерминированных автоматов. Но слово "конечные" не упоминалось.

Услышав о сравнении детерминированных автоматов и лямбда-исчисления захотелось дать пример умножения двоичных чисел (Ю.Г.Карпов, "Теория автоматов", гл. 3, "Проблема умножения: алгоритм, которые не может выполнить КА"). Но тут склероз отступил; вовремя вспомнил, что автоматы бывают не только конечные, но еще и автоматы с магазинной памятью, клеточные автоматы, Машина Тьюринга, которая есть расширение конечного автомата. Так что в лужу сесть не довелось. Ну ничего, повод в будущем всегда представится. ;)

Вспомнил, что забросил обновлять списочек, и вообще забил на идею выкладывать на торрент свою библиотечку. Так что надо будет выложить из раздела Discrete Math/Automata Theory все немногое, что там лежит.

среда, 16 июня 2010 г.

Отношения на одну ночь

Xmonad -- звучит как имя французской проститутки.

Остаюсь на StumpWM, хоть после обновления и показалось, что подтомаживать стало чуть побольше, чем нужно. Для интереса собрал Xmonad, потрахался c виртальными окнами при использовании Xinerama/XRandr, заплатил и ушел.

updated

вторник, 15 июня 2010 г.

Scala and Windows

Пользователям Windows, которые хотят использовать scala с NetBeans: scala-проекты нужно создавать в каталогах без пробелов (drive:\stuff\scala_projects\).

понедельник, 14 июня 2010 г.

PocketBook: новые версии, новые баги

Обновил прошивку в своем PocketBook (15.2).

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

Последнее время заметил один баг у AdobeViewer. Возникает во время чтения pdf-файлов, при указании масштаба "по ширине", или указать его вручную.
Доходим до конца страницы, нажимаем "вниз", перескакиваем на следующую.
Возвращаемся назад (жмем "вверх") -- часть текста предыдущей страницы (в ее низу), не видна -- белый лист. Верхняя часть страницы, если поднятся выше, видна. Будто бы обрезали.

Кроме того, у AdobeViewer появился новый баг. Просмотр pdf-документа при масштабе "Компоновка" возможен только вперед. Кнопка "назад" перелистывает документ не на предыдущую, а на следующую страницу.

Чуть больше радует pdfviewer. Хотя в режиме компоновка он по прежнему не показывает некоторые pdf-файлы, например журнал fprog, зато упомянутые баги AdoveViewer его не коснулись.

На сегодня имеем два pdf-просмотрщика: один работает хреново, второй -- еще хреновее. Злорадно отмечу, что хреновее работает проприетарное решение. Но вцелом пользоваться устройством пока можно. Был бы доступен только один просмотрщик, было бы значительно хуже.

Надо будет send-pr сделать, если не забуду.

пятница, 11 июня 2010 г.

Синтаксический сахар

Java -- трехлитровая банка с водой.
Python -- двухлитровая банка со сладким компотом.
Haskell -- пачка сахара-рафинада. Если кому сильно сладко, или беззубый, а кусочки дерут горло, запивают чем могут.
Scala -- банка Python, в которую впихнули и утрамбовали много пачек сахара-рафинада.
Lisp -- дольки сладких сухофруктов, которыми выкладывают магические узоры на тарелке. С виду невзрачные, но если уж кто подсел, то надолго.
Clojure -- компот из сухофруктов.
Эрланг -- банка с кучей мелких драже.
C# и F# -- леденцы, которые разрешают только сосать.

Теперь понимаю природу вечных стычек Лисперов с Хаскелитами. Редко кто может заедать сухофрукты рафинадом. Знаю одного, но он запивает рафинад компотом из сухофруктов.

Не забываем о ресурсах

Готовый тестовый пример на Scala, c тредами. Создается 2000 тредов, которые делают что-то необременительное. Запускаю -- "java.lang.OutOfMemoryError: unable to create new native thread". Чудненько. Пляски вокруг параметров виртуальной машины не помогают, или наборот -- загоняют jvm в "корку".
Читаю документацию, ссылки, маны, пробую, комбинирую... температура (у меня и у проца) выросла еще на четыре градусов. Замечаю нюанс: ulimit во freebsd не показывает ограничения на кол-во тредов. В мане (bash) ключ "-T" есть, а в самой утилите -- нет. В линуксе, кстати, man правильнее, ключ там не указан.
И тут наступает прозрение.
sysctl kern.threads.max_threads_per_proc: 1500
Уменьшаю кол-во тредов до тысячи, работает. Поднимаю до полторы тысячи, перестает.

Меняю на max_threads_per_proc до 2000, и сразу все как по маслу.

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

четверг, 10 июня 2010 г.

Оформление исходных текстов

Заболел! Летом, блин!
И вот решил побрюздать, по мелочи, на избитые темы.

О стилях кодирования говорилось много. Существуют стронники жесткого следования стилю, сторонники допустимых послаблений. Есть те, кто плюют на всех -- "пишу как хочу".

Благодаря моему непосредственному начальнику я давно стал сторонником строгого следования в собственных исходных текстах (своих и рабочих). Места, которые вынуждено соприкасаются с внешним кодом, могут использовать другой name-convention для сглаживания перехода. В зависимости от инструмента (языка программирования), становится очевидно, что может быть применено и может ли вообще. Есть места, которые могут иметь отклонения и варианты. Все это оговаривается на начальных стадиях, каждый участник работы подтверждает согласие пользоваться стилем, и ему следуют.

Просто стиль должен быть естественным, логичным и обдуманным. Даже в мелочах.

Но бывает, что читаю о людях, которые утверждают, что ему удобнее (он привык), например, не ставить пробел после управляющего слова, а ставить его после скобок. И скулят, что его свободу ущемляют, когда за подобные места делается замечание.
if( expr)
if ( expr)
Люди, не порите чушь -- "она визжит и брыкается". Вы, когда пишете по-русски, ставите пробел перед открывающейся скобкой, и наоборот, не ставите пробел за ней. Делаете это автоматически и не причитаете о каких-то ущемлениях. Более того, грамотно писать вы уже привыкли (если вообще умеете), вас этому долго учили. Так чего же вы теперь выебываетесь?! Т.е. десять лет вы привыкали писать с соблюдением одного стиля, а потом за пару лет привыкли писать нарушая правила? Вас что, пиздили, чтобы добиться нужного эффекта? Более того, в своих ЖЖ-шечках вам удобно писать по-русски правильно, а в исходниках меняется мировоззрение?

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

Но вой о том, что свободу ущемляют, это просто превыше моих сил. Свой псевдокомфорт ставится выше, чем продуктивность всей команды. Если вы считаете, что круче своей команды вместе взятой, так работайте один. Если нет, и ваши дурные привычки для вас важнее, то вы хуже избалованного ребенка, ковыряющего пальцем в носу на людях, и хнычущего, когда его отрывают (было ведь так хорошо и удобно). Более слабые и сильные коллеги должны читать вашу "резьбу по коду", в самих исходниках, в "патчах"/"диффах", и видеть ваше неуважение к ним в элементарных вещах.

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

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

Привыкайте, блять, уважать чужой труд!

воскресенье, 23 мая 2010 г.

Редко интересуюсь закадровыми голосами

Но в этот раз решил полюбопытствоать, кто же исполнитель песни в мультике из предыдущего поста. Это Ольга Рождественская, ребенком спевшая немало песен к популярным советским фильмам. Что я могу сказать, голос мне ее очень нравится: мощный, чистый и красивый. В "дельфинах" под песню он вообще очень удачно подошел.
Собственно, это и не удивительно, если послушать, как пела ее мать -- Жанна Рождественская, спевшая еще большее кол-во песен к куче фильмов. Собственно, голос Жанны оказался даже там, где всегда подразумевались другие исполнители. Но мне простительно -- слуха почти нет. Однако и его остатков вполне хватает для наслаждения красивыми песнями.

Хороший мульт: "Девочка и дельфин"

Показывал полуторогодовалой дочке советский мультфиль,- "Девочка и дельфин". Детке, вцелом, нравится.

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

среда, 5 мая 2010 г.

Угораздило спросить

Угадайте, на гига-чём появилась книжка Мучника. ;)

четверг, 22 апреля 2010 г.

Бобик ожил

Из сервиса сообщили, что читалка успешно работает и ее можно забирать. Внезапная разрядка батареи осталась для меня загадкой. Но то, что читалка не заряжалась, объяснили незакрытой защелкой на зарядке. Очень может быть, последние дни я довольно рассеян. Или дочь помогла, или нес в сервис и задел... . В общем сейчас уже неважно, время покажет.

среда, 21 апреля 2010 г.

Бобик сдох

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

воскресенье, 18 апреля 2010 г.

Баг запуска сервиса

Баг в mongodb на freebsd.
При старте сервиса mongod руками (из консоли) он сразу падает.
Лечится сменой локали на C:
env LANG=C sudo /usr/local/etc/rc.d/mongo start

пятница, 16 апреля 2010 г.

Старые английские эпиграммы всегда актуальны

Перевод С.Я.Маршака

- Расскажите-ка мне, что вы видите, дети?
- Дурака, что попался религии в сети.

Увидя "Таймс", черт взял газету
И рёк, багровый от стыда:
"О да, я лжи отец, но эту
Не порождал я никогда".

Не всякий лебедь должен петь,
Почуяв близость смерти,
Иному лучше помереть
До первых нот в концерте.

Эпитафия
Спит ростовщик в могиле этой.
Прохожий, не звени монетой.

вторник, 6 апреля 2010 г.

Заверните костыли

Какой же грязный хак обходится без костылей? Правильно -- никакой. Без них эти создания шевелятся из чистой случайности. И хак для mutt из предыдущего поста не исключение.

1. Обнаружилась неприятность с переопределением редактора. Вызов встроенного примитивного редактора (который должен быстро отдать назад управление) мешает вставке подписей к письму (из переменной $signature). Если назначить редактором любую стороннюю софтину, то она получит письмо со вставленной подписью. Встроенному -- кукиш.
Выход -- выставлять abort_unmodified=no и назначать редактором тупую внешнюю обертку, которая ничего не делает с полученным именем файла.

2. Если переменная $sendmail выставляется динамически, в зависимости от отправителя, прийдется поменять send-hook на send2-hook. Ведь запущенный "дочерний" mutt-процесс понятия не имеет о runtime своего родителя. Пилить это прийдется каждому под себя.

3. Грязные хаки в многозадачной среде сбоят, так задумано. Идея отложить письмо и запустить новый процесс, который подхватит отложенное, вполне логична, но есть нюанс. Новый процесс может запуститься раньше, чем письмо будет отложено. Причем mutt хитро откладывает письма, видимо сначала очищая postponed, а потом заново его заполняя. Иначе я не могу объяснить ситуацию, когда у меня валяется пяток отложенных писем, а запущенный "mutt -p" говорит что писем для отправки не найдено.
Тупая задержка запуска дочернего процесса в качестве синхронизации неудобна и ненадежна.

Итог. С хаками жить можно, но трудно. Пока что mutt остается одноконным приложением и его возможности для сложных взаимодействий мало подходят, с чем прийдется смириться.

четверг, 1 апреля 2010 г.

Грязный хак для Mutt

UPD: Глючное и не всегда работающее.
К почтовому клиенту mutt я привык, и менять на другой не горю желанием. Однако среди его некоторых недостатоков есть один существенный (для меня) -- отсылка письма у него блокирующая: не позволяет одновременно отвечать на письмо и в это же время читать остальные письма (а иногда нужно). Открывать "руками" отдельное окно, запускать mutt с нужным почтовым ящиком довольно утомительно, а зря держать запущенную копию программы в соседнем окошке терминала не удобно.
Но mutt позволяет сконструировать нужное решение самому, чем я и воспользовался: добавил альтернативные биндинги для reply и list-reply, которые сами открывают новое окно терминала с mutt, в котором немедленно запускается редактирование ответа на нужное письмо. Старое окно mutt не блокируется -- можно спокойно пользоваться для работы с остальными сообщениями.

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

.muttrc
set my_editor="vim -c 'set et sts=4 tw=70 co=80 fo=cql autoindent nobackup'"
set editor=$my_editor
...
# Custom non-blocking Reply
macro index R ":unset editor\rr\n\n.\nP:set editor=\"$my_editor\"\n!process-last-postponed\n"
macro pager R ":unset editor\rr\n\n.\nP:set editor=\"$my_editor\"\n!process-last-postponed\n"
# Custom non-blocking List-Reply
macro index L ":unset editor\rL\n\n.\nP:set editor=\"$my_editor\"\n!process-last-postponed\n"
macro pager L ":unset editor\rL\n\n.\nP:set editor=\"$my_editor\"\n!process-last-postponed\n"
$HOME/bin/process-last-postponed
xterm -e mutt -e "push '<recall-message><last-entry><enter>'" &
Все.

понедельник, 29 марта 2010 г.

PocketBook 301 Plus, подключение через usb

PocketBook 301 Plus, при подключении к ПК через usb, распознается как две флешки (freebsd7, из коробки). Для внутреннего накопителя букридера создается устройство "/dev/msdosfs/Pocket301", для внешней флешки - "/dev/da1s1".
В /etc/fstab прописать:
/dev/msdosfs/Pocket301 /mnt/pocket301-system msdosfs rw,noauto,-DCP866,-Lru_RU.UTF-8 0 0
/dev/da1s1 /mnt/pocket301-card msdosfs rw,noauto,-DCP866,-Lru_RU.UTF-8 0 0

суббота, 13 марта 2010 г.

Письмо

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

Отрывок из Хакагурэ

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

Иногда попадаются слегка смешные своей противоречивостью эпизоды, которые выворачивают картину наизнанку, хоть автор этого и не заметил (скорее всего).
Или у меня просто извращенное чувство юмора.

Однажды, когда Набэсима Аки-но-ками Сигэтакэ обедал, к нему неожиданно пришел посетитель, и он ушел из-за стола, не за­кончив трапезу. Позже его слуга сел за стол и принялся доедать жареную рыбу, которая была на нем. Когда господин Аки вернулся и увидел слугу, тот испугался и убежал. Господин Аки крикнул ему вдогонку:
– Только презренный раб может есть то, что не доел кто-то другой! – Затем он сел за стол и продолжил обедать. ...

-- Цунэтомо Ямамото, Хакагурэ (из восьмой главы)

четверг, 11 марта 2010 г.

Ракировка

Все-таки я дремучий, ленивый и неспешный человек. Любые "новшества" трогаю в самый последний момент, когда они для остальных уже давно стали бояномобыденностью.
Выяснил, что большинство моих подписок в Google Reader могут быть заменены на одну -- http://fprog.ru/planet/. Можно спокойно вынести из follower и списка ридера большую часть блогов, и читать их сразу скопом, в одном месте.

To Виталий (АКА 13-49): на тебя есть там тоже есть ссылка, но только на ЖЖ-шный блог, а твои блогспотовский рускоязычный раздел и раздел о лиспе (Few words about lisp, который в ЖЖ не транслируется, кажется) - не фигурируют. Было бы удобно и тебя читать в ленте.

fprog.ru на букридер, без pdf

Задумался, что и правда неплохо было бы иметь возможность читать журнал fprog.ru на букридере в формате, отличном от pdf (например в fb2). Готовых конверторов из latex в fb2 с наскока не нашел.
Нужно будет попозже поглядеть на Hevea (конвертор latex в html). Также глянуть на plasTeX (Python framework for processing LaTeX document).

Есть резон не заморачиваться с latex'ом, а конвертировать сразу из html (статьи доступны и в этом формате). Из готовых юниксовых конвертеров на глаза попался только html2fb. Хоть он и не обновлялся с 2008 года, но результат оказался не таким уж удручающим.
Отработал скрипт без падений (python2.6) на статье Р.Душина из четвертого номера. Сходу увидел следующие огрехи в сформированном fb2-документе:
  • не проставлены линки на примечания, хотя из самих примечаний линк на место в тексте есть;
  • проблема с фрагментами кода в квадратных скобках, которые распознаются как ссылки на литературу;
  • настоящие линки на литературу не работают;
  • заметил отсутствие subscript и superscript;
  • многострочный код сливается в одну строку, но это уже ньюанс в форматировании исходного html.
Вообщем, я вполне его работой удовлетворен, и пока не вижу проблем, которые было бы трудно исправить: в конвертере или в самих исходных документах (или утилита, которая предварительно подготавливает исходные документы.

Может имеет смысл обратить внимание и на другие открытые форматы электронных книг, кроме fb2 (типа epub или prc), позже на них нужно не забыть взглянуть.

понедельник, 8 марта 2010 г.

Избавляемся от старых вещей

Убрал трансляцию в свой старый ЖЖ, вдобавок сам аккаунт заморозил.
Старая ненужная вещь, которая еще и время жрет.

четверг, 4 марта 2010 г.

Посоветуйте пожалуйста медиаплейер

Хочу купить недорогой медиаплейер. Можно без привода чтения дисков (утомило).
Если внутри есть винт, то чтобы была возможность подключать внешние винты/флешки (usb, 1394 (firewire).
Можно без каких-либо сетевых примочек вообще (пока некоторые затруднения с wifi и прокладкой кабеля).
Но чтоб хорошо показывал, не подтормаживал. Чтобы понимал много форматов.
Вообщем, хочется надежную и простую вещь.

пятница, 26 февраля 2010 г.

день третий

10, 10, 10, 10

четверг, 25 февраля 2010 г.

Вышел четвертый выпуск журнала "Практика функционального программирования"

Сегодня появится четверный выпуск электронного журнала "Практика функционального программирования".
Журнал всегда радует хорошими и полезными статьями, читать всегда интересно и приятно. Спасибо создателям и авторам за качественный материал.
И отдельное спасибо за дополнительную заботу о читателях: электронные выпуски доступны в нескольких фоматах:

  • Для eBook и низких разрешений экрана A5, 144 с., 1,0Mb PDF, крупный шрифт

  • Для чтения с большого экрана A5, 122 с., 980K PDF, для экранов 20" и больше

  • Для печати A4, 105 с., 1,4Mb PDF

  • Для экономной печати A4, 59 с., 1,3Mb PDF

  • HTML-версии отдельных статей

Читателям предоставляется ответная возможность проявить заботу о журнале. ;)

понедельник, 22 февраля 2010 г.

Работает -- не трогай!

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

P.S.
С благодарностью вспоминаю собственную прозорливость -- не поленился когда-то купить заглушки: предотвращает затопление соседей (и все сопутствующие этому радости) при утреннем включении горячей воды. Проблем будет уже более чем на половину меньше. :)

день второй

21, 26, 14, 7.

воскресенье, 21 февраля 2010 г.

Кому-то повезет

По ссылке френда bormotov прочитал интервью с провокационным названием "Называю вас обезьяной". Статья интересная, дядька прикольный -- вообщем "доставило". Чрезмерное упрощение не портит статью, на мой взгляд. В конце-концов, это интервью.
Я конечно и так знаю, что есть исключения: женщины, которые вопреки распространенному мнению, занимающиеся математикой и программированием успешнее своих коллег-мужчин. Правила, исключения -- дьявол всегда в мелочах. Поэтому мне несколько более интересна литература, которая затрагивает эти самые мелочи. Например книжка "Язык взаимоотношений (мужчина и женщина)". Обычно такие названия я отбрасываю, расплодилось их чрезмерно, но эта книжка оказалась интересной, несмотря на некоторые спорные моменты. Радует факт, что чтиво подобной направленности пока еще выходят на "просвященном западе".
После прочтения этих двух ссылок, возникла следующая мысль. Тот, кто более-менее грамотно умеет распределять людские ресурсы -- уже имеет преимущество перед конкурентами. Тот, кто пошлет нахуй радикальных теоретиков от идей равенства или преобладания полов, и будет делать свой выбор, более тонко учитывая природные закономерности и замечая очевидные исключения -- получит офигенное преимущество.

Я конечно же опять придираюсь

Захотелось глянуть, что javavmwrapper пихает в environment.
Написал, поглядел и почти успокоился.
for(Map.Entry item: System.getenv().entrySet()) {
System.out.println(item.getValue() + "=" + item.getKey());
}
Но черт надрал меня полюбопытствовать, добавив пару строчек.
for(Map.Entry item: System.getenv().entrySet()) {
String key, value;
key = item.getKey();
value = item.getValue();
System.out.println(key + "=" + value);
}
А компилятор глаголит:
incompatible types
found : java.lang.Object
required: java.lang.String
key = item.getKey();
^
Т.е. значение вызова getKey (и getValue) надо явно кастить к String, тогда работает.
Ну с какого хрена оно мне возвращает Object, когда в документации явно обещали коллекцию с элементами, в которых будут строки: public static Map<String,String> getenv().
Я конечно могу что-то упускать: мысль мелькнула, десять минут в документации, пару строчек -- появился результат, "всем спасибо, до новых встреч". Но со стороны как-то нелогично и неаккуратненько смотрится, при обилии явно указанных типов.

воскресенье, 14 февраля 2010 г.

"The intention of saying Java is strongly typed is to give the impression of robustness"

Смотрю статью на википедии о языке Ява: Typing discipline: Static, strong, safe, ...

Java SE 6 используется полным ходом, уже скоро на подходе SE 7, а статьи 11-летней давности (by Harold Thimbleby), похоже, актуальны и по сей день.

Java is strongly typed, but the type correctness of a Java program is not known at compile time. In other words, Java is not statically typed (like ML). The intention of saying Java is strongly typed is to give the impression of robustness. Type robustness would be achieved by strong static typing, where the compiler detects type errors before a program is run. Like Java, both BASIC and LISP are strongly typed, but neither are statically typed; their type systems do not seem to be what the Java hype seems to imply! Our discussion, above, of the duck and lame duck's equals method illustrated some problems of Java not being statically typed.

The following example demonstrates Java's lack of strong static typing; it involves creating an Object and casting it to a Character. This is statically correct (i.e., it compiles without error), but at run time it throws an error (a ClassCastException), because Objects are not Characters. (Sophisticated compilers might detect the problem (though whether they -- and they alone -- should is an interesting question of compatibility), but they can easily be defeated by passing an Object as a parameter to a method expecting a Character: the result will be the same.)
Character c = (Character) new Object();
// always causes runtime java.lang.ClassCastException
Apparently the assignment is not questionable, for
"Java prevents incompatible assignments by forbidding anything questionable." p121