Ем

Не могу иначе...

...кроме как в рубашке ездить в метро. Ну, мог бы ещё и в футболке, но дресс-кот.
Плащ, пиджак - всё, капут, душно/жарко, ад и израэль. Как остальные ездют-то?
Пятнадцать лет проездил на работу на машине и вот на тебе, будьте любезны, извольте проследовать, вагон подан.
Ем

Наша оптимизаша n++

Кодопись, кодопись,
Кодопись, кодопись -
Покупайте нашу кодопись!

Потребовалось недавно импортировать csv-файл в таблицу, чтобы люди могли её там маленько покрутить в аналитических целях.
Дело было вечером, "смеркалось".
Велосипедостроительством заниматься не хотелось, строить свой лунапарк - тем более. Широко известный в соответствующих кругах IBExpert, менеджер БД, вполне легко справился с импортом полутора миллионов строк из тестового файла, но когда дело дошло до задачи, максимально приближенной к боевой, он начал сыпаться с ошибками на нехватку памяти и прочими runtime error. Оказалось, что пережевать >5 млн строк его силами не получается. Решение "в лоб" - залить в эксель или какой-нибудь опен-офис - обломалось ещё раньше: "640KB 1 млн строчек в электронной таблице хватит для всех". Да, существуют всякие сплиттеры, которыми csv можно порезать на куски и лить частями вручную, но этот метод не совсем наш.

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

Сел писать. Для солидности даже надел футболку со времен участия в профильном соревновании. Итак, что там у нас? Ага, формочка, компонентики, стандартные SQL-запросы для select/insert/delete/update, подключаю, запускаю - мелкое тестовое заливается, вроде вполне шустро. Open, Append, ApplyUpdates, CommitRetaining. Притом я же понимаю, что вот прям после каждой записи commit`ить транзакцию вредно для здоровья БД и для времени завершения задачи. Ну, выставил блок по 1000 записей - льются вполне Ok. Но, как сказал классик, we need to go deeper!

Даю тестовый миллионный файл. Ага... Скорость проседает, но остается в пределах терпимого, однако ж всё равно процесс обещает закончиться не скоро. Около полуминуты на каждые 10 тысяч строк. Ладно, устал, ложусь спать, посмотрим, что там к утру, хотя уже понимаю, что скорость маловата. С учетом того, что утро для меня началось в тот день оооочень рано, в пятом часу, подошел посмотреть на результаты. Жаль, не сфоткал свою гримасу от увиденного - продал бы фотостокам для рекламы квашеной капусты или для социалки на тему "ваша езда по обочине огорчает нормальных водителей". В общем, 390 тысяч записей за 4 часа. Волки воют: "У-у-у-ууу!!" Лошара микантара, в общем. Не, ну как же так, я же всё прям по канонам?.. Неужто парсер csv дурацкий и тупит?.. Да не должен бы, чего там морочиться - ищешь точку с запятой, вот он разделитель, накопленную к этому времени строку скидываешь в подходящее поле. Прям брейн-ринг в голове - текут секунды на обдумывание, надо что-то срочно придумать, пока самооценка не упала (про соц. соревнование с IBExpert помним, разумеется).

И тут приходит тётя Эврика, даёт леща и тыкает носом в компонент, содержащий запросы. Собственно, какого рожна Open и Append, если достаточно ExecSQL и не нужно расписывать запросы на обновление, удаление, выборку? Его дело маленькое - плеваться построчно в таблицу сообразно внесенным параметрам - и всё! Переписываю, вычищаю все эти Select`ы, стремящиеся перечитать таблицу после каждой очередной вставки записи, пересобираю, запускаю. Мельтешение цифр на тысячном счётчике, чехарда временных отметок в табличке логов... Лепота!

Итого 7 минут 54 секунды на боевой файл из 5,5 млн строчек.
Ххха! Смог же! Для сравнения IBExpert заливал 1 млн за 20 минут.
Ем

Тормозной резистор

Расчудесный гуголь на телефоне подсовывает рекламу тормозных резисторов - он что-то знает, чего не знаю я?.. Или помнит больше :)
Ем

Столкновение поезда и электрички в Москве сегодня ночью

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

Но вот что удивило лично меня - похоже, в МЧС слишком буквально восприняли лозунг: "Да здравствует детский труд!"
Вот на фото мальчик в фирменной экипировке явно занят чем-то, относящимся к связи:

Или, как минимум, о чём-то важном докладывает - вон сколько народу его слушает.

Понимаю, что на самом деле ему уже за двадцать может быть, но шаблон надорван, в хорошем смысле.
Удачи Вам в делах служебных, юноша!
Ем

Антификсики продолжают шалить

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

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

Электробытовуха: сказ об антиФиксиках

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

Чесслово, есть ощущение, что группа антиФиксиков-диверсантов просочилась внутрь периметра и рассредоточилась по электроприборам. Осенью в неравной борьбе с ножом пал смертью храбрых тостер, из которого "на горячую" захотели выковырять хлебушек. Щелчок УЗО, отрубившаяся группа розеток и легкое дуновение ветерка, поднятого крыльями ангельской души почившего устройства. Мы будем помнить его. Точнее и честнее говоря, не его самого, а его уход. Но тостер вне конкурса. Во-первых, то было в прошлом году, во-вторых, тостер неуиноуный!

А что же было в этом году?

А вот что...Collapse )
Ем

Зимняя рыбалка

Зимняя рыбалка в Костроме при -22 выглядит приблизительно так:

DSC_8887_.jpg

DSC_8856_.jpg

Съемка производилась на льду Волги.

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

Машинка, не болей!

Кострома не отпускает.

Похоже, генератор на машине накернился.
Симптомы: аккум на морозе в -30 еле-еле, но запустил двигатель, сигнал отсутствия зарядки аккумулятора не гаснет; хоть на холостых, хоть на повышенных оборотах - через пару минут подсветка приборной панели начинает мерцать и вскоре гаснет совсем. Если двигатель после этого заглушить, то сразу же прям сейчас не заведется - щелчки реле стартера и всё, аккум типа сел. Минут через десять снова можно запустить (видимо, часть емкости восстанавливается благодаря электрохимии). И всё повторяется обратно.

В подкапотном блоке предохранителей визуально всё в порядке; клеммы аккума обслужены, обмазаны как следует и привинчены, не болтаются. Минусовой провод к корпусу тоже присоединен нормально.

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

Вот тебе и -30.

UPD: по состоянию на утро 08.01.17 в автосервисе продиагностировали электрику и отдефектовали генератор. Вердикт: электрика - Ок, по генератору - обгонная муфта и щеточный узел под замену.
Ем

Погода шепчет...

Гисметео гласит: нынче в Костроме -30,6, по ощущению -37,2. Забортный термометр на окне кивает, что так оно и есть (ну, по части регистрируемой температуры; как оно там по ощущениям - выйдем, ощутим сами, такое бездушному предмету доверять нельзя).
К вечеру будет -32, завтра уже -36.
Ем

Первое соревнование

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