Shoor/нал

Акын-программист

Прибито гвоздём
  1. Всё, написанное здесь ниже — личное мнение автора либо цитата, что указывается явно. Редакция автор в переписку вступает (например, посредством комментов), однако рукописи не рецензирует и не всегда возвращает. Автор предпочитает писать и читать на русском языке, хотя может (или когда-то мог) на английском, немецком, перле, пхп, яваскрипте, C/C++, ассемблере процессора Intel 8086, бейсике, паскале, а также на ЯП ПМК «Электроника МК-52». В изучении иврита, итальянского, питона, руби, татарского, форта, французского и эсперанто автор пока не преуспел.
  2. Анонс:
  3. В записях используются метки — используйте их для поиска нужной темы.
  4. Основной адрес этого блога — shoorick.ru (с октября 2013). В ЖЖ — копия. Помимо ЖЖ транслируется в:
  5. Этот блог не является средством массовой информации.
  6. Используемые обозначения:
    • цитаты и фрагменты программного кода
    • программный код
    • клавиатурный ввод
    • аббревиатуры и другие сокращения

С таймером
Рыжий
shoorick
На перекрёстках Сони Кривой с Воровского и Красной заменили жёлтые секции светофоров — теперь они с таймерами.

Светофор

Больше букв
Рыжий
shoorick
Функция selectall_arrayref перлового модуля DBI хороша для тех, кому лень писать:
This utility method combines "prepare", "execute" and "fetchall_arrayref" into a single call. It returns a reference to an array containing a reference to an array (or hash, see below) for each row of data fetched.

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

Реальный пример: скрипт, извлекающий тайлы из пакета, созданного Тайлмиллом, пытался читать данные как раз функцией selectall_arrayref. Зная, что применяется запрос
SELECT * FROM tiles

и что представление tiles содержит, помимо прочего, содержимое тайлов, занимающее места больше всего остального, нетрудно догадаться, что попытка выполнения запроса потребует выделения памяти в объёме, сопоставимом с размером файла, в котором сидит база (пакет с тайлами — это база SQLite).

Набор тайлов для территории размером 600×400 км в средних широтах — например, с Челябинском по центру, Ашой на западе, Карталами на юге и Тюменью на северо-востоке — займёт больше гигабайта для набора масштабов не больше шестнадцатого. На практике так и получилось: скрипт отжирал больше гигабайта памяти и всё никак не мог приступить к полезной части, пытаясь отожрать ещё. Если же увеличивать масштаб, затраты вырастут ещё сильнее: добавим семнадцатый зум масштаб — понадобятся ещё три-четыре гигабайта, Добавим восемнадцатый, которого хватит даже для любопытных исследователей карт — ещё на десять-двадцать объём вырастет. Если будем сохранять тайлы с глубиной цвета 24 бита, а не восемь — ещё больше места израсходуем. Получается, что средних размеров российская область может занять своими тайлами десятки гигабайт. И скрипт бы безуспешно пытался эти десятки получить.

Переписал:
-my $tiles = $dbh->selectall_arrayref(
-    'SELECT * FROM tiles',
-    { Slice => {} },
-);
-
-foreach my $tile ( @$tiles ) {

+my $sth = $dbh->prepare('SELECT * FROM tiles');
+   $sth->execute;
+
+while ( my $tile = $sth->fetchrow_hashref ) {

и всё наладилось: скрипт перестал жрать память (ему хватило десяти мегабайт) и ждать её выделения — сразу работает.

Вывод: не всегда надо экономить рабочее время программиста — иногда надо и о машинном времени задумываться.

http://shoorick.ru/2015/08/26/more-code/

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

Ув. тов. челябинские френды! Посоветуйте, пожалуйста, куда обратиться.

Канал пройден
Рыжий
shoorick
Канал всё-таки удалось пройти. Во-первых, сменил смазку — вместо жидкого мыла использовал густой литол, он хотя бы не стекает с провода. Во-вторых, для прохождения угла на выходе из канала применил скользкую прокладку — графитовую контактную вставку от троллейбусного токоприёмника, применение такой прокладки позволило увеличить радиус изгиба кабеля и снизило трение — кабель тёрся не о торчащий из железобетона острый гранит, а о мягкий гладкий графит. Правда, провод удавалось сдвинуть только рывком и при каждом рывке вставка вылетала по непредсказуемой траектории, но провод-то двигался! За один рывок провод проходил от одного до десяти-пятнадцати сантиметров, несколько десятков итераций — и канал пройден.

Схема выхода кабеля из канала в потолке

Теперь можно штукатурить открытые каналы. Следующую часть, по большой комнате, в канал, наверное, пихать не буду — там будет натяжной потолок, и кабель можно пустить над ним. Или всё-таки попробовать? :-)

http://shoorick.ru/2015/08/18/lubricated/

Re: Не лезет
Рыжий
shoorick
Кабели, особенно самый толстый, упорно не желают лезть в канал. Картина пока что такая:

Кабели в потолке

Половина маршрута пройдена всеми тремя кабелями (рыжий — 3×6 мм² для плиты, бордовый — 3×2,5 на розетки и жёлтый — осветительный 2×1,5), а вот вторая пройдена только толстым кабелем. Стальная проволока, за которую я его тянул, всё-таки порвалась; хоть кончик кабеля всё же удалось достать из канала, дальше вылезать он не желает — слишком жёсткий да и застрял где-то внутри. Розеточный кабель во вторую половину канала ещё не заходил, а осветительному туда не надо — он уже дошёл до своей лампочки.

Чё ж делать-то? Тянуть со всей дури, всей своей массой как-то опасаюсь: медь-то выдержит, а изоляция может и порваться на выходе из канала.
Загнать в канал смазку? Тоже непонятно, будет ли смысл, и не повредит ли она изоляцию — в интернетах внятных советов по смазыванию каналов и кабелей как-то не нашлось пока...

http://shoorick.ru/2015/08/18/re-stuck/

Не лезет
Рыжий
shoorick
Пытаюсь проложить пучок свежих медных кабелей вместо старых алюминиевых — не выходит. По отдельности некоторые из них (гибкий 2×0,75 и жёсткий 3×2,5) даже удалось завести, но вслед за ними толстый жёсткий 3×6 не лезет. Вынул уже проложенную медь, соединил всё в общий пучок — всё равно не лезет. С одной стороны толкаю кабель в канал, с другой — тяну за стальную проволоку — не получается. Проволока рвётся, а кабель всё равно не лезет.

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

Схема канала в потолке

Диаметр канала — сантиметра полтора-два. Раньше в этом канале лежала пара хилых алюминиевых двухпроводных кабелей и три толстенных алюминиевых провода, каждый диаметром в полсантиметра (то есть, сечением не меньше 10 мм²). Медные провода — меньшего сечения (хотя и с более толстой изоляцией), значит, должны влезть. А нифига! Ситуацию осложняет малая гибкость толстых кабелей — похоже, кабели, зайдя в канал кривыми, упираются в изгибами в его стенки.

Что делать-то? Интернет подсказал вариант, до которого я и сам додумался (но ещё не реализовал) — пройти канал сантехническим пружинным тросом для прочистки канализации — как минимум, им можно выгнать мусор из канала, а можно, пишет народ, и провод цеплять к такому тросу.

А другие варианты есть?

http://shoorick.ru/2015/08/15/stuck/

Принюхался
Рыжий
shoorick
Вода из-под крана которую неделю пахнет не хлоркой, а медленной речкой. У нас Сосновские очистные сооружения ещё работают? Или воду в трубу закачивают напрямик из водохранилища, не очищая должным образом?

Дайте, пожалуйста, таблеток от жадности. Да побольше!
Рыжий
shoorick
Если всё пойдёт по плану, то уже завтра число работающих в квартире розеток достигнет пятидесяти шести. Если будет не лень снова подолбить железобетон, может, и до шестидесяти доведу. Тридцать лет назад, в момент сдачи дома, их было всего десять.

Розетка

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

Осталось ещё засунуть в потолок метров семь кабеля средней толщины (3×2,5) и десять — самого толстого, для электроплиты. Ну и выкинуть оттуда алюминиевые провода. После этого можно будет переходить к отделочным работам. Ремонт движется!

http://shoorick.ru/2015/08/08/outlets/

א
Рыжий
shoorick
Сушки

Мне кажется, слово «кроха» написано не через русскую букву Х, а через еврейский алеф.

http://shoorick.ru/2015/08/06/aleph/

На десять дней трамвайная сеть Челябинска разделится на два несвязных куска
Рыжий
shoorick
Челябинск.ру сообщает: Из-за дорожных работ в Челябинске на 10 дней изменят маршруты трамваев
В Челябинске в связи с дорожными работами на участке от улицы Каслинской до ветлечебницы движение трамваев в Металлургический район закроют с 20 часов пятницы, 7 августа, до 6 часов утра 17 августа. Об этом со ссылкой на горэлектротранс сообщили в пресс-службе городской администрации.

Внутри района будет организовано движение трамваев:

№ 3 «Першино–ЧМК»;
№ 10 «Першино–ЦХП»:
№ 14 «Трамвайное депо №2 – ЦХП»;
№ 19 «Трамвайное депо №2 – Коксохим».

Движение трамваев маршрутов № 20 «ЧМК–Медгородок» и № 21 «ЧМК–ЧЭМК» временно отменяется.

Для транспортного сообщения Металлургического района с другими районами города усиливается троллейбусное движение:

на маршруте № 15 «ул. Молдавская – ЧМК» количество троллейбусов увеличивается с девяти до шестнадцати, интервал движения составит семь минут;
на маршруте № 7 «ЧМК–АМЗ» количество троллейбусов увеличится с двенадцати до двадцати, с интервалом движения семь минут.
Движение троллейбусов маршрутов № 1 «ПКиО–Вокзал» и № 23 «Ул. Молдавская – ТК “Кольцо”» временно отменяется.


Как-то такСвернуть )

Земля!
Рыжий
shoorick
Кусачки

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

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

Прозвонил кабель в квартире, аккуратно смотрел в подъездный щит (потому что один хрен — измерение сопротивления не помогло) и выяснил:

  • Защитный нулевой проводник PE есть не только для плиты — он есть и для нормальных потребителей: один из входящих в квартиру кабелей — трёхжильный и центральная его жила — PE. И лежит этот кабель с самого момента сдачи дома.

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

  • Временный кабель в обход сгоревшего нуля, висящий, наверное, больше четверти века, был почему-то прицеплен электриком не на рабочий ноль N, а на защитный PE. Зачем?


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

http://shoorick.ru/2015/08/05/pe/

И наконец построили
Рыжий
shoorick
Площадь Науки

Вызвавшая неоднозначную реакцию народа стройка полуподземного комплекса перед памятником Курчатову, кажется, завершается. Будут не «кафешки всякие и никакого алкоголя», как мне говорил южанин-бригадир — будет продуктовый магазин, откроется в начале августа. Хотя, насколько я понимаю, выпивку там продавать всё равно нельзя — вроде, ближе ста метров от образовательных учреждений не положено. С другой стороны, в «Радуге» на Российской, в двух шагах (а точнее, в тридцати метрах) от школы продают и бухло, и курево — и ничего. Может, нормы поменялись?

Ну и вместо года стройка тянулась два. Ну и подземной автостоянки там нет.

http://shoorick.ru/2015/07/29/built/

Через больницы
Рыжий
shoorick
Челябинская маршрутка едет в психбольницу

Маршрутка

http://shoorick.ru/2015/07/24/through-hospitals/

Папоротник
Рыжий
shoorick
Челябинская область, Нязепетровский район, возле села Шемаха, две недели назад.

Папоротник

Обои: 2400×1600 (3:2), 2134×1600 (4:3), 2000×1600 (5:4), 2560×1600 (16:10),
2560×1440 (16:9).

http://shoorick.ru/2015/07/20/fern/

Иван-чай
Рыжий
shoorick
Челябинская область, Сосновский район, полторы недели назад.

Иван-чай

Обои: 2400×1600 (3:2), 2134×1600 (4:3), 2000×1600 (5:4), 2560×1600 (16:10),
2560×1440 (16:9).

http://shoorick.ru/2015/07/08/fireweed/

Мимо Марса
Рыжий
shoorick
Главное, что надо не забыть при въезде на Марс в Карабаш — задраить иллюминаторы.

Карабаш

Карабаш

Карабаш

Карабаш

http://shoorick.ru/2015/07/08/martian/

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

Лис

Лис

Лис

Лис

Что-то слишком смелый. Не бешеный ли?

http://shoorick.ru/2015/07/08/red/

Рыжий
shoorick
Сын увидел в мультике знак ♥, комментирует:

— Сердечко — это такая фигурка для девочек.

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

Сверло

http://shoorick.ru/2015/07/05/without-tape/

П.В.Мор.ТР.пл.ван.ш.д.в.с.20%8
Рыжий
shoorick
Чек

Что это?!

http://shoorick.ru/2015/07/05/cheque-abbreviated/

Интерактивная карта Ильменки
Рыжий
shoorick
На сайте Ильменского фестиваля теперь используется правильная карта — её можно двигать и масштабировать, включать отображение нужных маркеров и кликать по ним, чтоб получить подсказку.

Карта

Карта — OpenStreetMap, стиль отображения — свой собственный на основе OSM Bright, отрисованный с помощью TileMill, иконки — The Map Icons Collection. Библиотека для отображения — Leaflet c плагинами Leaflet-hash и Leaflet.fullscreen.

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

http://shoorick.ru/2015/07/04/interactive-map/

Аккуратно
Рыжий
shoorick
Сын вынимает куриные яйца из мешка, комментирует:
— С ними надо аккуратно обращаться. Я аккуратно обратился.

И зрелищ!
Рыжий
shoorick
Наконец-то разобрался, как в Pitivi растянуть выражения лиц бардам до нормальных пропорций и как прикрыть заглушкой те места, где изображение пропадало совсем. Собрал тестовую запись — концерт КСП «Моримоша» на открытии Лесной площадки XXXIX Ильменского фестиваля. Кому невтерпёж — можно смотреть прямо сейчас, со всеми глюками. Как дотянусь до файлов, что писались самими камерами — переделаю.

Настройки масштабирования в Pitivi

Видеозаписи трансляции с Лесной площадки XXXIX Ильменского фестиваля будут потихоньку выкладываться на video.mineralogy.ru/video/ilmenyfest/album/284

Закончу с этим годом — займусь прошлым.

http://shoorick.ru/2015/06/26/et-circenses/

Трансляция идёт
Рыжий
shoorick
XXXIX Ильменский фестиваль собрал заметно меньше участников, чем предыдущие фестивали. Да и с интернетом тут какие-то непонятные проблемы. Но для нас это ничего не меняет — мы работаем. Лесная сцена стоит, звучит и транслируется. Трансляция концертов Ильменского фестиваля — video.mineralogy.ru/live/cast/3

Поляна перед Лесной сценой

http://shoorick.ru/2015/06/13/translation/

Re: в третий раз ходил за ёлкой
Рыжий
shoorick
Улучшенный Ильменский сайт вчера наконец-то переехал на ilmeny.org — там теперь и шустрый FastCGI-бэкенд, и HTML5/CSS3/SVG, и нормальный внешний вид на мобильных устройствах. Точнее, не сайт переехал, а адрес стал указывать на новый сайт вместо старого. Так что процесс разработки и тестирования можно считать завершённым — пора начинать собираться на фестиваль.

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

test.ilmeny.org

http://shoorick.ru/2015/06/09/ilmeny-org-release/

Аргумент
Рыжий
shoorick
Летний вечер, +28 °C, сын требует вернуть ему головной убор:
— Отдай кепку! У меня же волосы замёрзнут!

Он и в третий раз ходил за ёлкой... И добыл её!
Рыжий
shoorick
Давно хотел улучшить ильменский сайт, да всё руки не доходили. Уж подумывал и переписать совсем. Что только не пробовал — и тяжёлый перловый фреймворк Catalyst, и написанные на PHP системы управления сайтами — Друпал да ВордПресс. И всё никак не получалось дойти за какого-то осмысленного результата. В итоге всё свелось к переписыванию на Mojolicious::Lite — это всяко веселее, чем набор древних CGI-скриптов.

Начал в мае 2011 года — бросил. Подобрал в мае тринадцатого — снова бросил. Пришёл май пятнадцатого — снова взялся и как-то всё-таки дошёл до завершения первого этапа: воссоздал на моджо всю функциональность прошлого сайта, который был запущен ещё в 2003 году. Ну и перекрасил попутно. Свежий сайт да ещё и на новом железе с другими ОС и веб-сервером работает гораздо шустрее старого: отдаёт 50 страниц в секунду, а не две. Кстати, Друпал с ВордПрессом (правда, без нормального кэширования) работают ещё медленнее, чем старый сайт.

Новый сайт лежит на test.ilmeny.org, в выходные потестирую, в понедельник, наверное, запущу его вместо старого.

test.ilmeny.org

Если увидите на свежем сайте что-то неправильное — сообщите, пожалуйста.

P. S. Попутно выяснил: боевой режим в Mojolicious называется не production, как я почему-то думал, а deployment.

upd/14:40: мне тут товарищ подсказывает, что в Mojolicious всё-таки production, а deployment — это значение переменной окружения PLACK_ENV, которую выставляет Starman.

http://shoorick.ru/2015/06/06/test-ilmeny-org/

Ещё проще
Рыжий
shoorick
CMS Drupal — штука мощная и потому имеет несколько интерфейсов, мне известны два: веб-интерфейс (это наглядно) и командная строка (это быстро) — командой drush. Драш умеет, например, чистить кэш, но при запуске задаёт вопрос, какой же кэш почистить:
Enter a number to choose which cache to clear.
 [0]   :  Cancel         
 [1]   :  all            
 [2]   :  drush          
 [3]   :  theme-registry 
 [4]   :  menu           
 [5]   :  css-js         
 [6]   :  block          
 [7]   :  module-list    
 [8]   :  theme-list     
 [9]   :  registry       
 [10]  :  token          
 [11]  :  views

Чтобы каждый раз не вводить нужный номер, я запускал его так:
echo 1 | drush cc

Однако нашёлся более простой и наглядный способ:
drush cc all


http://shoorick.ru/2015/05/22/drush-simpler/
Метки: , ,

Весна — время зеленеть
Рыжий
shoorick
Насмотревшийся «Фиксиков» сын стал звать меня Папусом. Придётся отрастить бороду и покрасить её в зелёный цвет, чтоб соответствовать.

Папус
Кадр с сайта fixiki.ru

http://shoorick.ru/2015/05/20/time-for-green/
Метки: ,

За окном
Рыжий
shoorick
Снег

Девяносто восьмое февраля Девятое мая. Снег, метель. Южный Урал.
http://shoorick.ru/2015/05/09/may-snow/

Тыща вёрст
Рыжий
shoorick
За выходные как-то умудрился проехать тыcячу километров. Не задавил кучу всякой живности, переходившей дорогу где попало — двух лягушек, зайца, тетерева и щенка — лягушек смог объехать, перед остальными успел остановиться.

Птица

Тетёрку удалось сфотографировать — она неспешно зашла в лес, заяц сбежал, а лягушек на скорости 90 км/ч как-то неудобно фотографировать. Да и небезопасно.
http://shoorick.ru/2015/05/04/1000-km/

Не проехать
Рыжий
shoorick
Челябинск.ру сообщает: Власти Челябинска представили схему ограничения движения на Первомай
из-за строительства путепровода на Свердловском проспекте, улицах Каслинская и Куйбышева с 1 по 15 мая 2015 года движение транспорта закроют по улице Новомеханическая от улицы Российской до Свердловского проспекта. Также движение ограничат по улице Куйбышева от Каслинской до Свердловского проспекта. Объехать участок можно по проспекту Победы, дороге «Северный луч» и по другим прилегающим улицам.

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

Схема

В той же новости есть и такое:
1 мая в связи с проведением праздничного шествия движение будет закрыто с 10:00 до 13:00: по проспекту Ленина от Свердловского проспекта до улицы Свободы; по улице Кирова от улицы Труда до улицы Братьев Кашириных.
2 мая во время проведения легкоатлетической эстафеты с 10:00 до окончания мероприятия перекроют проспект Ленина от улицы Лесопарковой до улицы Свободы. С 12:00 также закроют проспект Ленина, но уже от Лесопарковой до улицы Артиллерийской.

Можно считать, что утром второго мая закроют всю уральскую часть проспекта — оставят движение только в Сибири.
http://shoorick.ru/2015/04/30/no-road/

Утро перед бурей
Рыжий
shoorick
Площадь Революции

Солнце светит, птицы поют, люди работают — красота! Только вот стрелка домашнего барометра почти упёрлась в нижнюю границу — на нём с утра было 706 мм. рт. ст. (на яндексе с гисметеро — 730) да в голове кю. Новости пугали ливнями да ветром до 23 м/с — поглядим, будет ли...
http://shoorick.ru/2015/04/24/before-storm/

?

Log in