Книжная халява

Сегодня по дороге на работу купил «Порождающее программирование» и «Распределенные системы». За 40 рублей каждую. А неделей раньше там же приобрел «C++ Boost Graph Library» по той же цене.

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

Где купил — не скажу :)

CiteULike и асфальтовый каток

Наверное, искусственному разуму в недрах CiteULike не понравились мои легкомысленные высказывания в его адрес, и он решил мстить… Или просто у разработчиков руки смонтированы в неправильное место? Сейчас разберемся.

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

Я так просто не сдался и продолжил эксперимент. Пошел на CiteSeerX и нашел там общедоступную статью, которую и залил на CiteULike (кстати, шикарнейшая фича — автоматический экспорт библиографических данных с CiteSeerX и других подобных сайтов). Теперь у копирастов не было повода. Но через час статья все равно исчезла.

Было особенно обидно, что исчезновение не сопровождалось никакими спецэффектами вроде клубов дыма, воя сирен или хотя бы надписи в профиле «статья такая-то удалена». Я согласен даже на отсутствие объяснения причин (это позволяет предположить, что я чего-то недопонял), но какое-то уведомление должно быть! Нет, раздел «Library» нагло врет: «You haven’t added any articles to your library yet».

Еще одна статья, закинутая в порыве последней надежды, сумела пережить ночь, после чего отправилась вслед за своими почившими товарищами. Черная дыра прям, даже заходить теперь туда страшно. Вдруг и меня засосет? И не останется от меня ничего, только надпись у жены в паспорте: «You haven’t married any man yet». Стивен Кинг отдыхает.

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

Другое преступление, не менее тяжелое, — молчание в экстренной ситуации. Большая удача, что стерлись первые же добавленные статьи. А что если бы я туда напихал 400 статей, а потом некоторые из них взяли бы и исчезли? Я мог не заметить потери важной информации. Замалчивание таких случаев исключает возможность доверия. Подвел сейчас — значит, может подвести и потом.

Нет, я не буду писать разработчикам. К ним применима та же логика. Придется все же браться за дело самому.

УжасноПлохоНормальноХорошоОтлично (1 голосов, средний: 5.00 из 5)
Loading ... Loading ...

Личная научная библиотека онлайн

Я довольно продолжительное время носился с идеей написать  программу для управления личной библиотекой научных источников (книг, статей, отчетов и т.д.). Мои потребности были нехитрыми, но одних средств файловой системы явно не хватало.

С одной стороны, в иерархической структуре вроде дерева каталогов расположить все мои источники просто невозможно. Например, гипотетическая статья о моделировании протокола TCP относится сразу к нескольким категориям, скажем, «моделирование» и «TCP». Это теговый подход, и возможность хранить такие пометки и осуществлять по ним поиск уже была бы большим подспорьем. Еще лучше, чтобы система категорий/тегов была иерархической, чтобы можно было пометить статью тегами «моделирование%имитационное моделирование» и «передача данных%сетевые протоколы%стек TCP/IP%TCP». В принципе, это реализуемо с помощью ссылок, но, во-первых, это муторно, а во-вторых, у ссылок предостаточно ограничений. В будущем этим должны будут заниматься теговые ФС, но сейчас этот вариант не подходит.

С другой стороны, помимо семантических меток, прикрепленных к источнику, хотелось бы еще хранить и некоторую дополнительную информацию:

  • статус (прочитано/срочно прочитать/просмотреть и забыть);
  • библиографические данные, желательно с возможностью автоматического экспорта в BibTeX;
  • любая другая присоединенная информация, например, конспект, ссылка на сайт издательства или просто какие-то заметки.

К счастью, я не успел начать писать свою программу, когда нашел CiteULike. Это ровно то, о чем я говорил. Даже не буду вдаваться в подробности и описывать фичи. Большая часть из них мне не нужна, а остальное я уже описал выше. Позволю себе только пару оговорок:

  • теги таки не иерархические;
  • при экспорте в BibTeX добавляются мусорные поля вроде citeulike-article-id и priority, которые, впрочем, несложно вычистить;
  • много всякой лишней ерунды, загромождающей интерфейс (явно не обошлось без feature creature);
  • существующую локальную библиотеку статей переносить туда придется долго и с трудом; настольная программа могла бы большую часть работы сделать самостоятельно, пройдя по иерархии каталогов и индексируя файлы.

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

UPD: прежде чем пользоваться CiteULike, ознакомьтесь со следующим постом. Редакция изменила свое мнение.

УжасноПлохоНормальноХорошоОтлично (1 голосов, средний: 5.00 из 5)
Loading ... Loading ...

Windows, Linux или что там еще?

Везде есть свои плюхи и минухи. Ну вот, например.

С точки зрения пользователя:

  • Windows неэффективен и негибок (хотя многие об этом не подозревают);
  • Linux сложен в настройке и нестабилен (хотя многие это отрицают).

С точки зрения разработчика:

  • Windows сложен в изучении и неизящен; тысячи функций, не объединенных стройной идеологией; закрытые исходники не позволяют понять, как оно внутри работает;
  • Linux слишком разнообразен и многолик; для написания реального софта приходится пользоваться множеством библиотек с невнятной документацией и не всегда корректной реализацией; да еще и вечная проблема совместимости дистрибутивов.

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

Вот что нужно принимать во внимание при выборе:

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

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

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

Например, я считаю неправильным курс Linux на доступность для «домохозяек». У него была своя замечательная ниша: ОС для бородатых гиков, да и еще неплохо подходил для серверных приложений. Были толпы высококвалифицированных фанатов. Теперь же эти толпы фанатов решили навязать свое мнение всему миру. В результате ядро распухло и мешает при ходьбе. Реинкарнация DLL Hell. Квалификация фанатов упала. Появилась куча клонов Windows-приложений, которые работают чуть-чуть не так, как надо. Зато опенсорс, да.

С Windows тоже беда, но обратная. Microsoft случайно сделал идеальную ОС для обычных пользователей: Windows XP. Дальнейшие дерганья только подтверждают неизбежное: все уже написано. Пользователи хотят чего-то нового, но новое от Microsoft подозрительно напоминает старое. Чем успешно пользуется Apple, который принципиально ничего нового не делает, но зато делает не так, как Microsoft, чем и привлекает уставших от пятнадцати лет унылого интерфейса пользователей. Зато уж средства разработки Microsoft как блины печет: уже вон .NET 4 выходит. Несчастные разработчики в мыле корпят днями и ночами над книгами и мануалами, чтобы потом, прочитав последнюю страницу, обнаружить, что за это время вышло еще два фреймворка и три языка, и что они теперь мейнстрим. Утрирую, конечно, но скорость превращения версий дотнетов в legacy многих пугает (и я среди них).

Короче, смотрите на свои потребности и думайте головой. Идеальной ОС нет. Linux ужасный. Windows отвратительный. MacOS дурацкий.

P.S. Вообще-то я хотел ограничиться только предыдущим абзацем, но внезапный приступ графоманства заставил написать развернутое вступление.

УжасноПлохоНормальноХорошоОтлично (2 голосов, средний: 5.00 из 5)
Loading ... Loading ...

OpenOffice Impress во всей красе

Вчера весь день работал над своей SITOPовской презентацией в OO Impress 3.1.1 под Fedora 11. Работал — и получал от этого реальное удовольствие, настолько удобная программа. И что особенно приятно, думал я, не тормозит, радость моя, даже на моем стареньком рабочем P4. Ну просто счастье.

Сегодня прихожу на работу, открываю ту же презентацию, и… Иду пить чай. Отклика от интерфейса нет вообще. Смотрю в top — за звание самого прожорливого процесса борются simpress.bin и convert. Последний, очевидно, что-то делал со встроенными в презентацию картинками в формате EPS. Наверное, преобразовывал в какой-то свой внутренний формат. Ладно, минуты 4 попреобразовывал и перестал.

Но вот процесс simpress.bin после этого решил, что он теперь тут главный и ему все можно. Минут через пять интерфейс, наконец, начал неторопливо отвечать на мои действия. Все это время загрузка процессора одним этим процессом держалась на уровне 95%. Еще минут через пять тормоза почти окончательно пропали. Но стоит только просто поелозить колесиком мышки, как Impress тут же начинает жрать 20–40%. И основательно тормозит при любом редактировании. Xorg тоже хорош — глядя на Impress, выдает до 40% при прокрутке слайдов. Они что думают, я их за ушком чешу?.. Откуда такая гипервозбудимость?

Нет, правда, может кто-то знает? Уж очень не хочется для подготовки презентаций загружать винду.

Как преодолеть творческий кризис

Если кто-то из вас, коллеги, станет утверждать, что никогда не встречался с подобным кризисом, я ни за что не поверю. Такое бывает у всех, даже у суперзвезд творческих профессий. Бывает, что просто приходишь на работу и понимаешь, что ничего сегодня не получится. Внутренний голос прямо так и говорит: «Сегодня — не твой день. Смирись и попробуй завтра». На следующий день приходишь — и правда, работа спорится.

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

  1. личные психологические: поругался с собакой, увидел результаты выборов, вспомнил про кредит за квартиру;
  2. физические: хочется есть, не выспался, текут сопли, оторваны конечности;
  3. связанные с условиями работы: начальник идиот, зарплата маленькая, коллеги весь день отвлекают, сверхурочная работа;
  4. связанные с самой работой: работа слишком простая или слишком сложная, закончен один проект и надо начинать другой, начальство навязывает пути решения, ваще неинтересная работа, нет идей;
  5. ни с чем не связанные: просто тупо не хочется ничего делать.

Составляя этот список, я немного сжульничал. Поэтому, пользуясь подходом доктора Х., сразу должен заявить, что если ваш кризис подходит под пункт 5, то вы врете. Не бывает беспричинных кризисов. Состояние «просто не хочется работать» говорит о том, что вы просто боитесь копаться в себе достаточно глубоко, чтобы выяснить истинную причину.

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

Терапия, таким образом, заключается в следующем:

  1. уменьшить количество и силу демотивирующих воздействий;
  2. увеличить количество и силу мотивирующих воздействий.

Никакой rocket science, как нетрудно видеть. Теперь перейдем к конкретным рецептам.

Если у вас личные психологические причины, то искренне сочувствую. «Тяжелые думы» норовят постоянно занимать мыслительные ресурсы, да и настроение снижают. Мощный демотиватор. Однако если насильно погрузить себя на некоторое время в работу и пресекать попытки отвлекаться, то обычно через некоторое время весь негатив уходит: ему просто не хватает места в голове.

Физические причины нужно просто устранить. Тут и говорить не о чем.

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

  1. начальник идиот;
  2. начальник вас понимает, но не в силах помочь (денег нет, директор не разрешает);
  3. вы занимаетесь не той работой, которой хотели бы заниматься.

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

Наконец, творческий кризис может быть вызван отсутствием идей. Здесь медицина бессильна, каждый ищет свой путь.

Самое главное при малейших признаках кризиса — ни в коем случае ему не покоряться. Покорение — сильный демотивирующий фактор. Практика «ладно, пойду на башорг, развеюсь, глядишь и настроение работать появится» не работает. Стоит только на минутку поддаться деструктивным настроениям, и все, день потерян, и хорошо если только день. Так и будете заниматься всякой ерундой, пока в сумму факторов не влезет совесть и всех не раскидает. У меня бывало такое, что творческий кризис длился до двух недель. Ужасное чувство.

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

  • При малейших признаках состояния «влом работать» немедленно сменить занятие на другое, но имеющее отношение к работе — мозг должен продолжать находиться в рабочем режиме. Я обычно в таком случае начинаю читать какую-нибудь книжку по программированию. Через некоторое время надо попробовать вернуться к исходной деятельности.
  • Интерес к работе можно подогреть искусственно. Например, сообщить начальнику, что вечером сдашь работу, на которую планировалась неделя. Или начать обсуждать рабочие вопросы с коллегами. Иными словами, своими силами создать окружение, которое потом начинает само тебя подталкивать.
  • Если череда бессмысленных занятий таки сумела затянуть, нужно, как только это осознаешь, сразу же покинуть рабочее место. Походить по коридору, посмотреть в окно. В процессе этого выбрать следующее рабочее действие, после чего тигром броситься на свое место и начать выполнять задуманное. Мозг, пребывая в шоке от таких стремительных событий, соглашается работать.
  • Убрать с рабочего места все, на что не относится к текущей работе. Просто диву даешься, насколько незначительные на первый взгляд вещи могут пожирать внимание и время. Например, у меня на столе лежала книга задней обложкой вверх; там была напечатана ее аннотация. Однажды я осознал, что помню эту аннотацию наизусть. Стал за собой следить и выяснил, что непроизвольно, в задумчивости, читаю ее несколько раз в день, причем после каждого прочтения взгляд соскальзывает в сторону, на другие книжки, потом на разбросанные статьи, потом на рукописные записи, а потом уже начинают всплывать какие-то воспоминания, обрывки старых идей… Если при этом я еще и не слишком хочу работать, то затягивает надолго.
  • Заниматься посторонними делами нужно на мотивационном максимуме. Например, вам пришла в голову замечательная идея, и сразу зачесались руки ее воплотить. Вот это то самое время, когда можно пообедать, выпить чаю, сходить в туалет и т.д. Во-первых, в это время можно более тщательно обдумать идею. Во-вторых, вы вернетесь к работе с подъемом и желанием свернуть горы. Малозаметное, но важное следствие: не стоит стремиться доделать работу к концу дня. Лучше оставить небольшую и несложную часть на завтра, чтобы с утра недоделанная работа послужила «трамплином» для вхождения в поток.
  • Стараться не составлять распорядок дня, как бы это парадоксально ни звучало. Назначенные на определенное время события (обед в 13:00, чай в 17:00, уход с работы в 19:00) создают перед собой кризисные зоны размером до полутора часов. Скажем, вы заканчиваете некоторый этап работы за 5 минут до обеда. Будете ли вы начинать следующий этап? Скорее всего, нет. А если закончите за 10 минут? За полчаса? Думаю, идея понятна.

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

УжасноПлохоНормальноХорошоОтлично (5 голосов, средний: 4.00 из 5)
Loading ... Loading ...