akry: (16 tons)

Дополнение к статье о продуктивном использовании Gmail.

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

Примечание: скрипт предоставляется в открытом виде и «как есть». Автор не несёт ответственности за утерю или иные неприятности с чьей либо почтой и здоровьем. 

Read the rest of this entry » )


Процитировать в LiveJournal! Процитировать в LiveInternet! Процитировать в Twitter! Добавить блог в GoogleReader!    

содержаниевся фототематикатолько фотографиимыслиновостиобзорыинтересноеalex-krylov.ru

gmail • gmail scripting • программирование • скрипты • фильтры gmail


akry: (16 tons)

В книге Джона Бентли «Жемчужины программирования» в главе 6.1 (нет на сайте) описан пример оптимизации программы, считающей гравитационное взаимодействие изрядного количества тел (планет, звёзд, галактик). Тел ~10 тысяч, в первоначальной реализации считать их программе год, если не отключат электричество за неуплату. 

Книжка суперская, всем рекомендую, даже непрограммистам. Вы, например, знаете, что π секунд ≈ нановеку? А изящество алгоритмов… Я был близок к оргазму.

ах эти множественные тела…

Год — много. Пришлось оптимизировать. Итоговый вариант работал в 400 раз быстрее, и решал задачу за день. Теперь собственно, к чему я. То, что делалось для оптимизации, на мой взгляд, очень интересно в любых областях, включая бизнес. Вот что делал Эппель, и какой выигрыш это принесло.

Read the rest of this entry » )


Процитировать в LiveJournal! Процитировать в LiveInternet! Процитировать в Twitter! Добавить блог в GoogleReader!    

содержаниевся фототематикатолько фотографиимыслиновостиобзорыинтересноеalex-krylov.ru

алгоритмы • бизнес • бизнес-процессы • консалтинг • оптимизация • оргструктура • программирование


!!!

Nov. 2nd, 2012 02:45 am
akry: (16 tons)

Съел себе мозг этим. Пока скрипел, понял, почему некоторые пишут после предложений не один, а несколько восклицательных знаков. «!» — оператор отрицания во многих языках программирования, логическое NOT. Поставленный в конце, а не в начале предложения, он намекает на то, что у нас стековый язык, где сперва идут значения, а потом действия над ними. И отрицает всё (или только ближайшее) вышесказанное, типа немецкого nicht. Но это один «!». Когда их больше, они последовательно отрицают предыдущие значения — т.е. если «!» чётное число, то фраза в целом позитивна. А если нечётная, то следует понимать, что смысл фразы обратный. «Я тебя люблю!» == ЛОЖЬ, но «Я тебя люблю!!» == ИСТИНА.

Точки и вопросительные знаки можно интерпретировать как части регулярного выражения. «.» — любой символ, вставляй, что хочешь. «?» — зависит от ситуации. Это либо «ноль или один раз», либо квантификатор «жадности»: «как можно меньше раз». Сами решайте по контексту. «Я тебя люблю!?.» == «Я тебя не люблю ни разу или разок, вставляй, что хочешь». «Я тебя! люблю» == «я люблю не тебя». «Я тебя люблю!!?» — «люблю, но стараюсь при этом не перенапрягаться».

continue// Интересно, среди всего сонмища безумия, сделал кто-нибудь язык программирования, синтаксис которого зависит не только от букв, но и от кегля, цвета и начертания? Это было бы круто. Эдакый «Designer's Talk».


Процитировать в LiveJournal! Процитировать в LiveInternet! Процитировать в Twitter! Добавить блог в GoogleReader!    

содержаниевся фототематикатолько фотографиимыслиновостиобзорыинтересноеalex-krylov.ru

brainfucking • программирование • тайные смыслы


akry: (16 tons)

Манифест Fama Fraternitatis описывает легенду о немецком ученом и философе-мистике, чье имя было «Брат C.R.C.»… (*)

…А помогали ему сестра SHA1 и племянник MD5.


Процитировать в LiveJournal! Процитировать в LiveInternet! Процитировать в Twitter! Добавить блог в GoogleReader!    

содержаниевся фототематикатолько фотографиимыслиновостиобзорыинтересное

программирование • розенкрейцеры • тайные общества • тайные хеши


akry: (16 tons)

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

  • Дональд Кнут в TeX использовал последовательные приближения числа Пи (3.0, 3.1, 3.14…), а для METAFONT — приближения числа e (2, 2.7, 2.718…). В принципе, это означает, что номер версии просто равен количеству цифр в её описании. Про текущую версию TeX («3.1415926») Кнут сказал: «окончательным изменением (после моей смерти) будет поменять номер версии на «π», и с этого момента все оставшиеся баги станут постоянными фичами».
  • SuSE Linux начал счёт от версии 4.2 (ага, «Автостопом по Галактике»).
  • Microsoft Office после 12-й версии выпустил сразу 14-ю. По очевидным любому средневековому крестьянину причинам.
  • Corel Word Perfect Office поступил в этом случае изящнее. В 13-й версии он смешал римские (10 = «X») и арабские цифры, и получил «X3» (имхо не очень удачный для России ход, цифра «3» уж очень похожа на букву «З»).
  • Nokia после «S60 3rd Edition» выпустила сразу «S60 5the Edition», потому что в Азии число 4 считается весьма несчастливым (по китайски «четыре» произносится так же как «смерть» или «поражение»).
  • Текущая версия Slackware Linux — 13.37 (см. «leet»).
Поделиться, оценить: Процитировать в LiveJournal! Процитировать в LiveInternet! Процитировать в Twitter! Добавить блог в GoogleReader!    
akry: (16 tons)

Он для нас как Ленин, Энгельс и Маркс. Вечно живой и вечно классик. Вот  только автор Капитала сиквел уже не напишет, а у Кнута пороха в пороховницах осталось не меньше 68% при четырёхпроцентном заполнении страницы.

Как живое свидетельство торжества разума над возрастом, в печать пошёл четвёртый «А» том его знаменитого «Искусства программирования». Первые три вышли в 1968, 1969 и 1973 г. А всего задумано семь. Когда наконец выйдет последний, наступит конец света.

Первые три тома пыльными глыбами лежат у меня на полке уже лет пятнадцать. Стив Джобс, известный также как Билл Гейтс, как-то заявил: «Если вы считаете себя действительно хорошим программистом…, прочитайте „Искусство программирования“ (Кнута)… Если вы сможете прочесть весь этот труд, то вам определённо следует отправить мне резюме». Судя по Windows, сам Гейтс труд всё-таки не осилил. Впрочем, то же можно сказать и про меня. Нет, внешний и не очень внимательный наблюдатель мог бы решить, что я труд читал: ну как же, водил глазами, бормотал губами, перелистывал руками. Но судя по результату, в этих действиях меня вполне мог бы заменить манекен с пружинным заводом.

Очень надеюсь на приложения к книге, переводящие алгоритмы с этого жуткого MIX/MMIX на что-то, легче воспринимаемое манекенами и мной.

Процитировать пост: Процитировать в LiveJournal! Facebook Share Процитировать в Twitter! Добавить блог в GoogleReader!
akry: (16 tons)

В коде напавшего на АЭС Ирана вируса Stuxnet нашли слово myrtus, что как бы указывает на еврейское происхождение зверька. Вирус выполняет благородную эволюционную задачу — укрепляет противовирусный иммунитет атомной станции собратьев-семитов. Ни в коей мере не подвергая сомнению предположение о происхождении (всем известно, что во всём виноваты евреи, а тут уж особенно), хочу вдруг неожиданно вспомнить, как ради развлечения делал посимвольный поиск по всему объёму жёсткого диска с какой-то юниксятиной. Слово «хуй» в дистрибутиве FreeBSD было найдено 6 раз, «fuck» — 2 раза, «merde» и «scheize» — ни одного раза. Из чего можно предположить, что создатели FreeBSD на 75 % русские и только на 25 % британцы-американцы, без примеси немецкой и французской крови. Жаль, не догадался поискать слово «myrtus» или хотя бы «schmuk», не исключено, обнаружил бы и еврейский след. Вирусная стохастическая топонимика, такая забавная штука.

Пока писал, вспомнил своё тёмное детство, ассемблер, злобный C-- и всякие шутки над школьно-институтскими компьютерами. Зверьки были самые разные и презабавные, с принципиально редуцированной половой функцией, были даже полиморфики. Но вот чтобы обязательно вставлять в них фрагменты «Отче наш», «XXXX съезда КПСС» или «Сказки о царе Салтане», такого не было. Старая школа, сейчас наверное по другому учат, без цитат нельзя даже вирус написать.

Процитировать пост: Процитировать в LiveJournal! Процитировать в LiveInternet! Facebook Share Процитировать в Twitter! Добавить блог в GoogleReader!
akry: (16 tons)

Долго-долго искал плавающего жука в программе и попутно обнаружил следующую особенность php: он весьма криво обрабатывает вложенные функции.

Например,

function foo ()
{
function callback_fn() {  }

$str = preg_replace_callback ($pattern, $replacement, 'callback_fn', $str);
}

запросто может вызвать ошибку типа 'Fatal error: Cannot redeclare callback_fn'. Особенно если foo() внутри класса.

Процитировать пост: Процитировать в LiveJournal! Процитировать в LiveInternet! Facebook Share Процитировать в Twitter! Добавить блог в GoogleReader!
akry: (16 tons)

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

Не сочтите за труд, кликните по ссылкам и отпишитесь, работают ли?

  • «Misc. Quotes» — случайные цитаты и анекдоты, когда-то показавшиеся мне забавными.
  • Сссссылка на пост «Водка — наше всё». По идее, если у вас не анонимный браузер, ссылка должна открыться в том журнале, откуда вы кликните.
  • «Чистая любовь» — пост на локальном сервере.

Спасибо!

Mirrored from тайный блог aKry.

akry: (16 tons)

Я попробую новую штуку для кросс-ссылок в постах.

Все ссылки будут вида http://alex-krylov.ru/redir/12345.html. И в зависимости от того, где ссылке, в ЖЖ или Лиру, редирект будет на статью именно в этом дневнике. Если конечно в этом дневнике есть соответствующий пост. В противном случае редирект будет на первый доступный. Например, «Обрабатываем, и точка!».

Скажите, если будет глючить, ладно?

Mirrored from тайный блог aKry.

akry: (16 tons)

 

10 случайных картинок из фотогалереи
кликните для увеличения  кликните для увеличения  кликните для увеличения  кликните для увеличения  кликните для увеличения  кликните для увеличения  кликните для увеличения  кликните для увеличения  кликните для увеличения  кликните для увеличения  

 

Насколько всё-таки продуман и удобен интерфейс к Гугл-штучкам вроде Picasa Web Albums. Даже ЖЖ есть чему у гугла поучиться, а про Лиру мы будем или хорошо, или ничего.

Трудозатраты:

  • 2 часа, чтобы сделать скрипт, выкачивающий все заголовки постов с ЖЖ.
  • 4 часа, чтобы сделать скрипт, выкачивающий все заголовки постов с Лиру.
  • 15 минут, чтобы сделать скрипт, выкачивающий все заголовки постов с WordPress. Локальная БД рулит :)
  • 1 час, чтобы сделать скрипт, который умеет искать соответствия ссылок в ЖЖ-Лиру-WP.
  • 4 часа, чтобы выкачать все фотки из покойной галереи в Лиру. Через грёбаный HTML и regexps.
  • 20 минут, чтобы написать скрипт, заливающий их все на Picasa Web Albums. 20 минут, тудыть их! При том, что я начинал с нуля, вообще не был знаком с Гугл-API. 
  • 3 часа, чтобы скрипты выкачали фотки, а потом залили их на пикасу. 350 мегов, 2200 фоток. С сохранением названий и бэклинков.

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

В общем, вот поисковик, мало ли кому кроме меня пригодится. Скажем, если хочется ответить на пост не в ЖЖ (ЛиРу), а в ЛиРу (в ЖЖ). Или быстренько найти пост по ключевому слову/заголовку.

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

 

 

footnotes

1 В 99% случаев компьютер/компилятор не виноват, виновата ушастая прокладка между стулом и монитором. Но каждый раз почему-то кажется, что сейчас именно тот 1% случаев, когда виноват компьютер. Чем скорее ушастая прокладка откажется от этой мысли и начнёт искать баг в собственном коде, тем быстрее всё заработает. 

2  Если переменная используется больше, чем на протяжении трёх строчек кода, нужно давать ей внятное имя. Даже в циклах. Никаких «$i». Иначе через какое-то время случится катастрофа.

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

0 Пикаса, а не фликер, потому что на фликере будет избранное, а на пикасу я буду класть полные версии — скажем, все фотки со сплава.

-1 Перечитал и ужаснулся. Я — бизнес-консультант и фотограф, а пост программиста. Да, кто-то ищет работу в сфере IT, а я, чем ни занимаюсь, у меня выходит IT в сфере работы.

Mirrored from тайный блог aKry.

akry: (16 tons)

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

1. Налажена синхронизация ссылок на посты в ЖЖ, Лиру и WP. Оно само, в зависимости от того, куда шлётся пост, заменяет внутренние ссылки на другие посты. В ЖЖ все ссылки на посты в ЖЖ, в ЛиРу — на посты в ЛиРу. Я долго возился со всякими XML API, потом плюнул и за полчаса написал парсер, который все посты вытаскивает из обычного HTML. Посты синхронизированы по хешу из имени статьи и года, чтобы отличать статьи с одинаковыми названиями. Их немного, но вдруг. В принципе можно подумать о меньшем зазоре, скажем, размером дней в 15. Больший зазор маловероятен, а пара недель однажды была. UPD. Сделал. Обнаружилось много постов с информативным именем «***».

2. Ссылки на юзеров автоматом преобразуются в то, что нужно — в зависимости от блога, куда они шлются. Например,  <lj user=”username”> в ЖЖ таким и остаётся, в WP он превращается в ссылку с картинкой, а в ЛиРу он становится . Соответственно, Лирушный [user=имяюзера] при отсылке поста в Лиру таким и остаётся, а в WP и ЖЖ он превращается в ссылку на дневник юзера. Причём даже с мужской или женской иконкой, в зависимости от пола юзера. А ещё появился [xuser=LiRu_Username, LJ_Username], для обозначения тех, кто, как и я, имеет счастье быть зарегистрированным в обоих блогсервисах. Нужный код для ссылки на юзера выбирается автоматически при экспорте.

Надо сказать, что программисты Лиру не очень позаботились об удобстве для тех, кто хочет доступа к дневнику с помощью программных клиентов. API кривое, глючное, местами нерабочее, нет необходимого функционала. На этом фоне заявление ValeZ, что «у нас больше API чем у ЖЖ» выглядит смешно — доведите до ума хотя бы одно, не гонитесь за количеством. Что конкретно не так, здесь писать не буду, чтобы не отвлекаться от хвастовства.

3. Написал постыдную библиотеку доступа к постам в Лиру. Постыдную, потому что доступ идёт через HTML, а это некрасиво и чревато. Но всё-таки о ней напишу, потому что она позволяет делать то, чего я не смог добиться ни от каких API. А именно — получение/изменение назначенных посту категорий, ключевых слов, видимости поста и комментариев. Мог бы добавить и загрузку картинок, но пока не уверен, что мне это надо. Если кто-нибудь сейчас снисходительно засмеётся и скажет: «Бууу! Так это же элементарно сделать через (например) MT API!», пожалуйста, скажите это в комментариях. Я буду чрезвычайно благодарен тому, кто избавит меня от доступа через HTML.

Вот.

Теперь осталось написать плагин для вордпресса, который будет использовать этот код мне во благо и вам в удовольствие.

Вдогонку: хорошая статья с рекомендациями по оформлению программ на PHP. Без фанатизма, с обоснованиями, почему и зачем.

Mirrored from тайный блог aKry.

akry: (Default)

«Тудыть Борна»

 

Шизодурка. Генератор названий для могучего сериала про Борна, в помощь сценаристам. Откройте и медитируйте.

NB. Включите JavaScript.

оригинал сообщения

akry: (16 tons)

«Тудыть Борна»


Шизодурка. Генератор названий для могучего сериала про Борна, в помощь сценаристам. Откройте и медитируйте.

NB. Включите JavaScript.

Mirrored from тайный блог aKry.

akry: (16 tons)

Теперь о Лиру и вордпрессе. О сколько нам открытий чудных… Интересно, для Лиру вообще есть хоть один вордпрессовский плагин, написанный нормально? Или тут место заколдованное, как холм, на котором АвтоВАЗ стоит?

Плагин LJUsers превращает ник в ссылку вида http://www.liveinternet.ru/users/%%username%%/profile. Вставьте сюда кириллический ник и получите щастье, умноженное на ноль. Для таких ников у Лиру есть система перевода их в циферки. Блин, опять придётся патчить…

Дальше — больше. «Сервис дневников liveinternet поддерживает MovableType и MetaWeblog API в полном объёме». Ага, щаз. Спрашиваем не у администрации, а у самого сервера — он лучше знает. «Сервер, солнышко, скажи нам “mt.supportedMethods”!». Спрашиваем у liveinternet.ru и сервера с WordPress. Получаем:

Supported MT API methods

И это пустяки, если бы не одно «но». Может быть я не разобрался с API, я всего день вожусь, но судя по гуглу, проблема не только у меня. Метод blogger.getPost не работает («server internal error»), а метод metaWeblog.getPost почему-то в «полностью поддерживаемой» реализации отсутствует. Результат — чтобы получить список ключевых слов и категорий для поста, пришлось тупо лезть через HTML и парсить его регулярными нецензурными выражениями. А поскольку посты бывают приватными, пришлось через тот же HTML ещё и логиниться. Ужас. Нет, не ужас. THIS IS RUSSIA!..

ps. Хочу механизм синонимов к ключевым словам в WordPress, как в Lightroom. Вводишь одно слово вроде «infrared», а он сам добавляет из списка «инфракрасная фотография, инфракрасная съёмка» и т. п. Попробую сделать. А может и иерархические теги сооружу. Да, движок на своём сервере даёт свои преимущества.

Mirrored from тайный блог aKry.

akry: (16 tons)

Сейчас начну пилить напильником плагин для кросспостинга в LiveInternet из WordPress — LIci.

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

Нужно:

  • Добавить поддержу <!–more–> — на самом деле это тупой поиск и замена на [more], одна строчка кода. Непонятно, почему этого не сделали сразу. Сделано.
  • Преобразовать все параграфы в <p style=”clear:none”>. Также добавить padding ко всем спискам, спасибо творческому подходу ЛивИнтернета к дизайну и CSS. Сделано.
  • Добавить всем картинкам красивые рамочки. Впрочем, для последнего пункта разумнее сделать скрипт для GreaseMonkey. Сделано в GM.
  • Убрать, убрать нафиг из отсылаемого текста все \n! Это ж уму нерястяжимо, зачем Лиру  меняет \n на <br>, если в HTML и так стоят <P> и <BR>! Сделано.
  • Хорошо бы заменить всех [user] — чтобы скажем в ЖЖ постился юзер с ЖЖ, а в Лиру — с Лиру. Наверное надо сделать какой-нибудь свой метатег, типа <!–multiuser=vasyaLiru,vasyaLJ–>, чтобы скрипт сам выбирал, кого из них подставить. Имена то бывают разные, не всем повезло нужные ники сразу занять.
  • LIci не поддерживает обновления уже отосланного поста — только что рылся в его коде, гарантирую. А это не айс, тот же JournalPress для LJ это прекрасно делает, и не кашляет. И вообще, вся сладкая идея в том, чтобы не скакать по блогам, а спокойно, как медведь в паутине, править всё в одном месте. Сделано, но обожемой, с какой мукой! lici_offline.php похоже вообще не поддерживает обновлений статей, пришлось искать документацию по MetaWeblog API и с его помощью уже менять посты. Но нет худа без добра — через этот интерфейс можно получать список категорий. Жаль, документации нормальной с примерами не могу найти. Может вообще отказаться от того странного интерфейса «для своих» в пользу MT?
  • В кросспостах внутренние ссылки должны быть на посты того сервиса, куда шлются эти посты. В ЖЖ на статьи в ЖЖ, в Лиру — на статьи в Лиру. Если они там конечно есть. Ещё несколько дней назад у меня была БД, которая легко находила ответы на эти вопросы бытия. Сейчас её надо писать и наполнять заново…
  • Категории из WordPress должны отображаться в Лиру. У меня они совпадают по имени, но в принципе можно сделать более гибкое решение с таблицей преобразования. Сейчас в плагине, насколько я понял, этот вопрос игнорируется.
  • Ключевые слова плагин тоже игнорирует, надо исправлять.
  • Может быть добавить ссылки на кросспосты вниз основного поста.
  • Не уверен, что об этом все знают, но плагин шлёт информацию каждом вашем посте на адрес lici.ru/lib/stat.php. Само тело статьи не шлёт, зато шлёт всё остальное, включая юзернейм, название, закрытость поста, всякие настроения и музыку. «Старший брат» следит за тобой. Очевидно, что если пост закрытый, автор может не хотеть, чтобы посторонние люди знали даже о факте его написания и о том, какое у поста название. Этот кусок кода надо убрать любому, кто пользуется плагином.

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

Кстати. Меня спрашивали, а что я с ЛиРу вожусь? Во-первых в ЛиРу много хороших интересных людей, например я. А во-вторых в некоторых аспектах юзабилити там получше, чем в ЖЖ. Например, через какую задницу сколько кликов нужно сделать, чтобы поискать в ЖЖ в своих постах, а не по всей ивановской? В ЛиРу для этого достаточно воспользоваться поисковой формой на любой странице днева. Да, я знаю, как делать поиск по блогам — суть не в этом, а в маленьких приятных ништяках. Механизм тегов в ЖЖ какой-то недееспособный, опять же. Категорий нет. Я большой фан тегов и то, что есть в ЖЖ вызывает у меня грусть. В общем, ЖЖ большой, толстый и солидный, добротно сделанный, но кой-чего не хватает. Как в дорогом и радостном Ниссане Кашкай почему-то был вставлен сиди-чейнджер, который не понимал ни DVD, ни mp3, и вообще явно был выходцем из прошлого тысячелетия. А вот в значимо более дешёвой Хёндай оказался навороченный музцентр.

Mirrored from тайный блог aKry.

akry: (Default)

Зомбо-алфавит

После обеда мозг объявил забастовку, отказываясь думать про бизнес-процессы. Чтобы отвлечься, пришлось написать маленькую зомбирующую программу — вы вводите текст, а она бегает по таблице с алфавитом и подсвечивает буквы. Вот оно, столь любимое нлперами, «аналоговое маркирование».

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

Разрешите представить: «Зомбо-Алфавит»!

примечания: 1. JavaScript должен быть включен; 2. Программа as-is, безо всякой ответственности с моей стороны за любой вред или пользу. Используйте на свой страх и ужас.


эта статья в liveinternet

akry: (Default)

{code}

Написать программу заново часто легче, чем корёжить готовую. Даже написанную когда-то тобой самим. Отягощающее обстоятельство — программой, написанной на скорую сухую руку, с мыслью, что на один раз. Не смешите рефакторингом мои тапочки. Не смешите методом «сверху-вниз» мои брюки. Хоть комментарии есть, и иногда даже по делу… И имена функций с переменными тоже есть, и иногда тоже «говорящие», как в классической литературе. Помните, «конская фамилия», оказавшаяся «Овсовым»?

Но ружья… По всей стене развешана увесистая коллекция ружей. По закону жанра они должны выстрелить, хором или сольно, неважно. Зачем у меня три разных модуля отправки данных на веб-страницу, я уже не помню. Наверное, когда-то я решил, что один из них лучше всего и моё сердце отныне принадлежит этому модулю. А остальные почему не выгнал без содержания? Смутно припоминаю, что какие-то причины вроде были, но какие?

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

А заново писать жалко…


эта статья в liveinternet

akry: (Default)

Тег SELECT

Сижу, дорабатываю напильником отсылалку картинок для ли.ру. Всё просто, работы на полчасика.

Думаете вы.

Потому что тег <select> упорно не хочет отображать значение «по умолчанию», выдавая что-то своё.

Через час, перерыв весь код, я наконец догадываюсь: Firefox, заботясь о моём удобстве, просто запоминал значения всех «селектов» и, при перезагрузке страницы, восстанавливал их, невзирая на умолчания. Если бы я не прегружал страницу, а закрыл и открыл бы окно, всё бы прояснилось гораздо быстрее.


эта статья в liveinternet

akry: (Default)

У моего робота, занимающегося переносом постов из liveinternet в LJ, обновление. Теперь он ищет ссылки на старые посты, и если этот пост уже есть в LJ, то он подменяет ссылку на ЖЖ-шную.

По идее всё должно работать.

Но случай бывает всякий. Там что начинается сезон ловли багов.

В качестве сверхурочных, бот проставляет обратную ссылку на пост в ли.ру.

 

И есть ещё две интересные задачки, которые я никак не могу решить.

Первая — получение свежих комментариев в ЖЖ (буду лично бороться со спамом в комментах).

Вторая — в постах в Ли.ру проставление кросс-ссылок на эти же посты в ЖЖ. Есть у кого-нибудь сниппеты доступа к лирушным постам? На любом языке, кроме человеческого.


эта статья в liveinternet

April 2017

S M T W T F S
      1
2345678
9101112131415
16171819202122
23242526272829
30      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 3rd, 2025 07:39 pm
Powered by Dreamwidth Studios