Хроники лаборатории
Вкратце о текущем состоянии дневника:

В связи с загруженностью очень интересной работой, почти перестал вести блог. Но, как легко убедиться, пролистав блог слегка назад, так было не всегда.
страница: 1 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101
Проверим, чёрно-белая ли GIF (скрипт на PHP)

Давно назревала такая задача: в Архиве переводов выявить стрипы, которые переведены, но в чёрно-белом виде (это было очень давно, ещё до того, как Архивом занялся я). Чтобы не делать это руками, пришлось немного пораскинуть мозгами и написать скрипт, который анализирует изображения. Вышло вот что (привожу самый важный кусочек кода):
// Грузим картинку
$im = imagecreatefromgif($strip_filename);

// Подсчитываем цвета
$c=imagecolorstotal($im);

// Если цветов маловато
if ($c<40) {
$w = imagesx($im);
$h = imagesy($im);
$black=0;

// Возьмём сотню случайных точек
for ($ii=1;$ii<101;$ii++) {
$cindx = imagecolorat($im, rand(0,$w), rand(0,$h));
$rgb = imagecolorsforindex($im, $cindx);

// И если они плюс-минус серые, добавляем счётчику единичку
if (($rgb["red"]>($rgb["green"]-3)) and
($rgb["red"]<($rgb["green"]+3)) and
($rgb["red"]<($rgb["blue"]+3)) and
($rgb["red"]>$rgb["blue"]-3)) {
$black++;
};
};

// Если из этих 100 точек хотя бы 96 - серые, запоминаем стрип
if ($black>95) { $bw[]=$strip_filename; };
};
imagedestroy($im);

Результатом стало вот такое дополнение на сайте (чёрно-белые стрипы отрисовываются чёрными квадратиками):



Видно эту раскраску, конечно, только тем, кто состоит в команде сайта и может помочь сделать ремастер этих переводов.


комментарии: 0 RSS HTML рубрики: сайтостройjuick twitter facebook вконтакте
Дублирующиеся строки внутри одной ячейки. SAS Base/Macro

Фиксирую на будущее ещё одно решение рабочей задачи.

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

Схематичный исходник и пояснения - под катом


комментарии: 0 RSS HTML рубрики: рабочееjuick twitter facebook вконтакте
Хитрые функции в SAS Base/Macro

Этот пост я пишу скорее даже для себя. С другой стороны, подобных материалов по SAS Base на русском исчезающе мало, так что может и пригодится кому-то ещё.

Сегодня решая забавную задачку по работе, понял, что мне не хватает произвольной, собственной функции. Как её можно создать в SAS? Ну для начала там есть макросы. Но это не то. Макросы в SAS - это скорее метапрограммирование: ты пишешь код, который потом при запуске сгенерирует обычный SAS Base-код и уже он пойдёт на исполнение. А мне нужно было (не вдаваясь в подробности) формировать из одной таблицы другую по шаблону третьей. Уверен, это можно было реализовать вкраплением SQL-запроса (SAS это тоже позволяет делать), но моя мысль заключалась несколько в другом: как бы так объявить обычную функцию, которая бы преобразовывала дающиеся на вход данные, да ещё с участием данных из других таблиц?

Язык SAS Base/Macro - весьма своеобразная датаориентированная среда, и то, что в языках типа Java или PHP решается на раз, в SAS требует принципиально другого подхода. Поэтому пришлось попотеть. Схематичный исходник и пояснения - под катом


комментарии: 0 RSS HTML рубрики: рабочееjuick twitter facebook вконтакте
Что происходит с блогом

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

P.S.: Мало того, я ещё и движок сайта перебрать собрался. Ну это так, на будущее. Кстати, может, кто-то мне поможет с бутстрапом, например? ;)


комментарии: 0 RSS HTML рубрики: сайтоводство, жизненноеjuick twitter facebook вконтакте
Гарфилд. Похожие стрипы.

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

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

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



комментарии: 0 RSS HTML рубрики: сайтоводствоjuick twitter facebook вконтакте
Гарфилд и школота

Ну вот и пришла популярность (сарказм)!

Даже странно, что это случилось только сейчас, спустя столько лет. Безымянные и не блещущие фантазией школьники накидали в предложку переводов на сайте Архива всякой лабуды. Я знал, что когда-нибудь это всё же придётся сделать (хотя очень, конечно, не хотелось): с сегодняшнего дня предложить перевод могут только те, кто привязал свои лайки к почте. Сделать это можно по ссылке тут.

Да, и кстати никаких паролей для этого запоминать и вводить не надо.


комментарии: 0 RSS HTML рубрики: сайтоводствоjuick twitter facebook вконтакте
По мотивам корма для кошек

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



комментарии: 3 RSS HTML рубрики: это я так шучуjuick twitter facebook вконтакте
Новый этап в жизни

Сегодня завершился значительный этап в моей жизни. Я уволился из НИИ, в потором проработал более 18 лет. Пришёл студентом на практику, да так и остался. Как оказалось - надолго, но не навсегда. Всё-таки в программировании я кажусь себе более эффективным, чем в роли возродителя величия отечественной космической отрасли. Ковыряться во всё новых и новых инструментах разработки мне нравится больше. Возможно, когда-то я снова вернусь к космической тематике, но только в роли разработчика программ или архитектора систем. А пока что я незадолго до своего сороколетия "перезагружаю" свою карьеру. Буду нарабатывать себе опыт в своей любимой области - интеграция всего со всем, скращивать ужей с ежами, инь с янь, жабу с гадюкой (Java и Python?) и прочие весёлые танцы с бубном. Удивительно, но в open space мне задышалось легче, чем когда я грезил открытым космосом. Возможно, у меня даже на блог появится больше времени.

Но это не точно.



комментарии: 3 RSS HTML рубрики: жизненноеjuick twitter facebook вконтакте
Гарфилд, чемодан без ручки

Вот и кончились моральные силы, после 11 лет работы Архив русских переводов Гарфилда превратился в дыру, в которую уходят деньги, внимание и (главное) время. Этакий чемодан без ручки — и бросить жалко, и нести очень неудобно. Гуглореклама приносит центы в день, донатами (в основном, на Патреоне) наскребается побольше, но развития всё равно никакого. Без серьезных помощников самой разной направленности не обойтись. И если они не найдутся до ноября, я законсервирую проект.

Итак, кто нужен (на постоянной или длительной основе!):
— Тот, кто поможет с фотошопом переводов. Сейчас под очень многими стрипами читателями оставляются очень толковые варианты переводов, но я уже просто не успеваю их перерисовывать.
— Тот, кто придумает, как развить и монетизировать группу ВК и займётся этим (за большой процент, как вариант). Организация тематических сходок, весь социальный движ.
— Тот, кто поможет с дизайном и вёрсткой новой версии сайта. В частности, очень нужен адаптивный дизайн. Дизайн потребуется время от времени обновлять и улучшать, разумеется.
— Тот, кто поможет с программированием скриптов для автопостинга в разные соцсети (подробная табличка тут).
— Тот, кто поможет с SEO, Яндекс.Вебмастером и Google.Adsense.
— Тот, кто поможет преобразить систему донатов и спонсорства на Patreon, Boosty или аналогичных площадках (вдруг я чего-то не знаю).
— Тот, кто поможет с раскопками истории персонажей: указать первое появление, краткую историю взаимоотношений, какие-то судьбоносные события, неожиданные твисты, связанные минисерии стрипов и экспериментальные "рубрики". Да, в интернете есть своеобразная Википедия по Гарфилду, но сайту нужен свой раздел про это все. На русской и более полно, чем есть.
— Тот, кому в перспективе не жалко будет всё это добро передать "по наследству". Хотя мне кажется, скорее это будет кто-то из перечисленных выше товарищей.

Сейчас всем этим в одно лицо по мере своих умений занимаюсь я. И разумеется, поскольку я ни разу не спец во всех этих отраслях разом, получается у меня не очень. Задумок ещё вагон, но вот отсутствие соратников (кроме тех, что помогают непосредственно с переводами — им, конечно, огромное искреннее спасибо) откровенно деморализует. Прибавить к этому тот факт, что юмор у Гарфилда весьма специфический и не всегда (особенно последние годы) смешной — и, думаю, ни у кого язык не повернётся винить меня за заморозку проекта.
Максимальный репост и всё такое. Это последний мой такой "клич", пожалуйста, отнеситесь к нему с максимальной серьезностью и пониманием.

Спасибо всем сочувствующим проекту.


комментарии: 0 RSS HTML рубрики: сайтоводствоjuick twitter facebook вконтакте
Гарфилд. Поиск по стрипам.

На сайте Архива теперь есть поиск по тексту оригиналов и переводов! Ищите на каждой странице со стрипами. Ограничения: не более 30 символов в запросе, слова менее 3 букв игнорируются, выводятся первые 100 результатов.


комментарии: 0 RSS HTML рубрики: сайтоводствоjuick twitter facebook вконтакте
страница: 1 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101
Подписаться


Рубрики:

жизненное
аудио-я
видеомонтаж
фотоохота
ремонт
стихи
рассказы
синематограф
библиотека
фонотека
точка зрения
FAQ
приемчики
придумалось
ожидания-прогнозы
допридумано
рингтоны
это я так шучу
обои
микрозарисовки
опасный Интернет
я в печати
поездки-тусовки
смехоспам
мой код
футболки
игродром
подводная жизнь
сайтоводство
программы
персоны
LI.ru
аватарки
курсоры


Разное:

Полка с фильмами
Книжная полка
Полка с играми
Избранное


Календарь записей

2021 (1)
2020 (7)
2019 (3)
2018 (1)
2017 (10)
2016 (12)
2015 (3)
2014 (12)
2013 (10)
2012 (17)
2011 (84)
2010 (172)
2009 (228)
2008 (263)
2007 (154)
2006 (4)
2005 (1)
2004 (1)
2002 (1)
2001 (9)
2000 (9)
1999 (1)
© сайт разработан и поддерживается мной.