«Numb»
Как правило, у меня всегда есть песня, которую я могу крутить на повторе хоть постоянно, месяцы подряд. В настоящее время это «Намб» группы «Линкин Парк» («Numb», «Linkin Park»).
Песня мне очень нравится и я постоянно слушаю её, когда гуляю с собакой. Я часто думаю о том, что этот факт наверное
Вероятно она
При этом я хоть и знаю слова, но особо в них не вслушиваюсь и не вдумываюсь, — преимущество плохого знания английского. Значит дело скорее в музыке и эмоциональных интонациях голоса. На этом месте мои способности к самокопанию буксуют и я никакого вывода не делаю.
Кроме одного.
Возможно в будущем интеллектуальным помощникам, которые точно появятся, чтобы изменить нашу жизнь, даже не придётся использовать датчики, чтобы понять наше состояние.
Как акинатор угадывает персонажа всего за двадцать пять вопросов или меньше, так и ИИ достаточно будет того, что он уже имеет.
То, что мы слушаем, то, что заказываем в интернете, момент, когда мы включаем обогреватель, чтобы согреться, лампа, которую мы оставили гореть, хотя мы вышли из комнаты и её свет нам не нужен, всё это, возможно, расскажет о нас достаточно, чтобы сделать
Большой вопрос что потом с этими выводами делать. Я не параноик и не люблю продумывать вред от технологий, мне ближе их светлая сторона, так что, я надеюсь, они пригодятся
С друзьями и соседями мы уже разучились говорить, а с психологами ещё не научились, может хоть роботы нас спасут.
Снова о Константине Степанищеве
К вчерашнему упоминанию моего предка, Константина Степанищева подъехали некоторые подробности. Оказывается исследовательница, с которой мы обменялись накопленными данными, заказывала выписку из дела, где есть подробности драки. Точной копии нет, только вольное изложение.
Бьёт челом Староосколького уезду, села Средней Апочки житель Яков Жилин, того ж села на брата своего двоюродного кирасирского полку драгуна Константина Степанищева сотенного голову на Ивана Золотухина. Вместо Якова писал староосколец Андрей Емельянов.
Да, его били Константин и группа крестьян, таскали за волосы, пинали, били палками, кулаками, за что он не знает. Писал императрице жалобу, тут эту жалобу в канцелярию отправили, там отписались о приёме, что надо найти этого Константина и крестьян.
Игната Григорьева отправили ехать в Апочку за обидчиками и привезти их в Старый Оскол. Допросить и записать. А они не поехали с ним! Значит дальше написано, что Константин обещает никуда не скрываться. Он тоже неграмотный, за него подписался Пётр Редькин. Если уедет, значит признает себя виноватым.
В тексте есть несколько важных, но ничего не значащих для современного человека слов, проливающих свет на жизнь моего предка.
Прежде всего сказано, что он служил в «кирасирском полку». Кирасир — всадник тяжёлой конницы, которые использовали в качестве защиты кирасу, — крупный доспех для защиты торса. Дальше встречается слово «драгун». Драгун — конный стрелок, обученный действовать как в конном, так и в пешем строю.
В полку Константин служил, как мы видим из текста, под началом сотника, то есть командира военного подразделения. Из чего делаем вывод, что он был чином младше, чисто статистически, — рядовым, скорее всего.
Ещё из тексте упоминается, что Константин был неграмотным, впрочем, это обычное дело для того времени.
Упоминание Константина Степанищева
В очередной раз убеждаюсь в полезности публикации всего, над чем работаешь, в интернете — сегодня получил письмо от девушки, которая, как и я, исследует своё родовое дерево. Она пишет, что наши предки
Обменялись накопленными данными, и, в процессе переписки, она мне прислала упоминание наших с ней предков. В 1744 году мой предок Константин Мартинович Степанищев (родился в 1711) побил своего двоюродного брата Якова Жилина, предка моей собеседницы.
К сожалению, описания самого конфликта нет, только запись о случившемся.
Не знаю как она наткнулась на эту строчку (в описи несколько почти три с половиной сотни страниц), но я бы на неё точно не набрёл.
Добавлено позднее: оказывается существует волонтёрский проект по вычитыванию различных фондов. Там можно найти эту и ещё одну запись. Во второй записи речь идёт, по всей видимости, о брате моего прямого предка, Семёне Марковиче Степанищеве (родился около 1660 года).
В найденной записи 1729 года написано «о держании Семёном Степанищевым беглого крестьянина помещика Гладкова», видимо Семён Маркович укрывал
Первые дочкины программы
У меня нет никакого желания специально делать
А тут в школе дочке выдали доступ к платформе «Учи.ру», — там школьники выполняют задания по различным дисциплинам в игровой форме. После выполнения основных ученика подталкивают к дополнительным трекам. Дочка уже несколько дней занимается и в один момент попала на курс по программированию.
Мне, конечно, было очень интересно посмотреть как у неё получается. Пока задания самые простые — передвинуть различные средства передвижения по клеткам так, чтобы забрать звёздочки. Сначала можно было двигать только на один шаг, потом появился параметр — количество шагов. Попутно, кстати, увидел как дочка провела первую в своей жизни оптимизацию кода — объединила две одинаковые операции в одну.
По сути, этот курс учит в концепции «черепашьей графики» — так учили программировать ещё в моём детстве. Правда я напрямую с ней не сталкивался, но знаю о ней.
Патроны
Как я недавно писал, в одной из поездок нашёл небольшую кучку целых патронов. Видимо времён Гражданской войны. Поскольку взять себе я их не имел права, оставил старшему по группе, к которой я отношусь в нашем
Вчера по моей просьбе мне прислали фотографию трёх из них с двух сторон, специально для публикации. Сказали, что патроны финские японские. По калибру видно, что для винтовки Мосина (7,62 мм), других подробностей нет.
Железка, в которую они вставлены, действительно обойма, как предположил в комментариях один из читателей. В ней должно быть пять патронов, два, видимо, выпали — отдельно от этих я нашёл ещё шесть штук.
Дополнено: оказалось, неправильно расслышал по телефону, не финские патроны, японские.
2,0
Полгода назад я писал о том, что слушаю ролики на Ютьюбе на скорости 1,25. В комментариях мне подсказали, что это совершенно не предел, —
Несмотря на то, что можно делать это плавно, я особо не заморачивался — просто в один момент сделал базовой скоростью ×1,5, откатываясь назад, когда мне было сложно
Вот уже пару месяцев базовая скорость у меня 2,0. В скором времени планирую попробовать ещё
Остатки мельницы
С конца лета Волга
Тем более, что пересохшее ещё и хорошо подсохло, поэтому можно прогуляться по бывшему дну, не боясь
В прошлые выходные с товарищем
Тот, который лежит подальше, по окружности окован железом, в ближнем, сломанном, есть выемка, видимо под перекладину в оси, на которую он был надет.
Любопытно, чем мельница приводилась в движение, — судя по карте, стояла она на окраине села, очень далеко от ближайшей реки.
Мельница исчезла
Дополнено: давно я так не смеялся над собственным текстом. Разумеется мельница приводилась в движение ветром. Дописывал последнюю строчку в спешке, думая о том, что жена и дочка идут сегодня на занятия по конному спорту. Отсюда в моём тексте появились лошади.
Локализация шрифта Брайля
Пока сегодня ждал лифта, чтобы подняться к себе домой, задумчиво смотрел на кнопку «вверх» и впервые подумал — а переводят ли шрифт шрифт Брайля в кабинах лифтов? Подозрительно мало букв под кнопкой.
Погуглил, оказалось, что мои подозрения верны — у меня в подъезде ничего не переведено. Например, на фото кнопка подписана английским словом «UP» («вверх») или «УП», если читать
Кажется будто подумали о слепых, но на самом деле, когда покупали и устанавливали лифт, никто о них даже не задумался. Фейковая забота.
Вторая модель
Как верно заметили в комментариях к заметке «Репликатор в каждый дом», где я рассуждал про домашнее применение
Правда не думаю, что этот способ подходит всем. Например, у меня нет никакого желания заниматься этим на постоянной основе, а значит и осваивать довольно сложные инструменты
Тем не менее, начальную версию одного из таких продуктов мы с дочкой
В тот раз дочка скорее руководила, чем рисовала сама, а на днях мы сели за другую модель и нарисовали вместе Банбана — персонажа одноимённой игры и мультсериала. На этот раз мой вклад в получившееся был заметно меньше половины.
То, что я с этим вообще вожусь, заслуга исключительно дочкина, вопреки прогнозам читателей, что она бросит
Пока ей требуется довольно много помощи, так как читает она ещё недостаточно хорошо, да и программ разнообразных мало видела, так что мне в незнакомом интерфейсе разбираться проще на пару порядков. Но, думаю, не за горами время, когда я в этом почти не буду участвовать.
Палка-копалка
Наткнувшись в одной из статей с «Элементов» на слово
В последний раз в неироническом ключе это слово мне попадалось ещё в школе,
Если у вас так же, то вот вам
Худи «Sinclair ZX Spectrum»
В моём детстве были чрезвычайно распространены клоны британского компьютера «ЗетИкс Спектрум».
Я был настоящим фанатом — знал в нём каждый винтик, умел программировать на его ассемблере и многочисленных бейсиках, знал встроенный «код калькулятора» (программная реализация действий над числами с плавающей точкой). Даже к произвольному телевизору умел подключать (мониторы тогда мало у кого были), была бы схема.
Вчера для смеха купил себе худи «Sinclair ZX Spectrum», сегодня надел. Большинство равнодушно скользит взглядом — молодёжи этот компьютер неизвестен, разве что малочисленным фанатам восьмибитной техники, но где их встретишь?
Зато забавно видеть как расширяются глаза у некоторых дядек из старшего поколения! Они сначала цепляют взглядом логотип и буквы, потом внимательно смотрят мне в лицо и снова переводят взгляд обратно. Прям система
Репликатор в каждый дом
Когда у тебя
Огорчает только подбор моделей. Бесплатных — навалом, но там нужное ещё найти надо. Вместо этого хотелось бы уметь копировать произвольную бытовую пластиковую фигню, не напрягаясь.
Сломалась у меня пластиковая заглушка в одной из ножек стула, пришлось подбирать похожую и менять все четыре. Ах, если можно было бы
Выхода как будто бы два — встроить в принтер ещё и сканер, либо
Идея со сканером кажется более разумной, но только на первый взгляд. Всё упирается в разрешающую способность и невозможность заглянуть внутрь детали — как
Так что остаётся вариант номер два — всё промаркировать. Либо банальным
Всё равно для всех деталей так или иначе изготавливаются модели, не на глазок же они отливаются. Сейчас уже существуют заметная индустрия печати всякого на заказ — от мелочей до крупных вещей, насыщения пока не видно, думаю она будет только развиваться.
Не знаю доживём ли мы до принтера в каждый дом, но не исключено. Перейдём на скачиваемые вещи, как это случилось
С точки зрения экологии это тоже может интересно выглядеть — умельцев, которые делают пластик для принтеров из старых бутылок я уже видел.
Это, конечно, не совсем синтезаторы предметов о которых мечтали в научной фантастике в двадцатом веке, но очень и очень близко на самом деле.
Не «Пайтоном» единым
Писал недавно про засилье «Пайтона» — там, где надо изобразить компьютерную программу, сейчас в основном используют в качестве основы именно этот язык, исключения встречаются всё реже.
И вот на днях, на конференции «Казан Диджитал Вик» встретил одно из приятных исключений — на одном из участников гонок на беспилотных миниавтомобилях была футблока
Это единственный язык, кстати, который я прочно забыл. Непонятно почему — писал на нём всё детство, а в Университете делал на «Делфи» (это диалект) несколько дипломных работ за деньги.
То есть плотненько работал с ним несколько лет, но когда два года назад поковырялся в нём в рамках решения одной из задач для программисткого
Детская память
Меня до сих пор удивляет с какой лёгкостью дети запоминают что угодно. После переезда в декабре выучивали с дочкой наш новый адрес — я просто каждый день один раз говорил часть адреса, — сначала улицу, потом дом, потом квартиру, а на следующий день спрашивал всё сказанное ранее в произвольном порядке.
Я вспомнил это, потому что вчера один друг, который провёл детство на Сахалине, рассказал, что однажды в детстве услышал стихотворение, помогающее запомнить основные японские острова. Однажды услышал и запомнил на всю жизнь! Вот оно:
Милая Хоккайдо,
Я тебя Хонсю!
За твою Сикоку
Я тебя Кюсю.
…рный …оста
На последнем
Но и без патронов есть на что посмотреть. Меня больше всего заинтриговали остатки
К сожалению, больше частей найти не удалось, но по тому, что удалось поднять, видно, что
Такие жетоны носили отвечающее за пожарную безопасность в селах и небольших городах. Староста избирался или назначался Земствами на определённый срок.
Invalid page in block XXX of relation YYY
Несколько раз в жизни сталкивался с ситуацией, когда «Постгрес» при попытке выполнить запрос, возвращает
Уже два раза я попадал в ситуацию, когда бакапа у клиента
Первым делом, разумеется надо отключить пользователей от базы данных, чтобы предотвратить её дальнейшее разрушение.
Второе, что надо сделать — посмотреть какая сущность у нас развалилась. Это можно сделать следующим запросом:
SELECT 23665::regclass::text;
text
-------------
some_itemsЕсли это индекс, просто удаляем его и пытаемся снять полный дамп базы данных, записав какой индекс мы удалили. Подобные ошибки могут быть в других частях базы, поэтому повторяем до успеха.
Всё несколько хуже, есть речь идёт о таблице. Для начала надо определить строки с какими ID теперь недоступны и сдампить таблицу пока без них. Для этого я написал достаточно прямолинейную хранимую процедуру, которая пытается получить каждую строку, которая должна существовать и, если не удаётся, сообщает строка с каким ID недоступна.
CREATE OR REPLACE FUNCTION check_table(table_name TEXT) RETURNS VOID AS $$
DECLARE
min_id INT;
max_id INT;
current_id INT;
BEGIN
EXECUTE 'SELECT MIN(id), MAX(id) FROM ' || table_name INTO min_id, max_id;
current_id := min_id;
WHILE current_id <= max_id LOOP
BEGIN
EXECUTE 'SELECT * FROM ' || table_name || ' WHERE id = $1' USING current_id;
EXCEPTION
WHEN SQLSTATE 'XX001' THEN
RAISE NOTICE 'Ошибка при обработке id: %', current_id;
END;
current_id := current_id + 1;
END LOOP;
END
$$ LANGUAGE plpgsql;Добавлено позднее: позже я написал другую функцию, которая учитывает, что разрушенные данные могут лежать в «тостах».
Дальше таблицу надо сдампить, составив SELECT, исключающий сбойные участки. Я, обычно, делаю ряд запросов, соединённых через UNION ALL и подставляю его в COPY, предварительно выключив последовательное сканирование таблицы (SET enable_seqscan = OFF).
Если этого не сделать, «Постгрес» обязательно займётся сканированием таблицы, так как нужна она почти вся, а там у нас сбойные участки. Отключив этот метод сканирования, мы заставляем обращаться к таблице через первичный индекс, если он, конечно цел. Хуже, когда разрушен и он.
Я с такой ситуацией ещё не сталкивался, но если столкнусь, буду думать над проверкой строк через ctid.
В общем, должен получиться примерно такой запрос:
SET enable_seqscan = OFF;
COPY (
SELECT * FROM some_items WHERE id < 100500 UNION ALL
SELECT * FROM some_items WHERE id > 100500 AND id < 100800 UNION ALL
SELECT * FROM some_items WHERE id > 100800
) TO '/tmp/some_items-table.dump'После того как мы определили и сдампили все сбойные таблицы, можно сдампить остальную базу данных следующей командой:
pg_dump --exclude-table-data=some_items -j10 -Fd -Z1 -f /dump_directory dbnameКак видно, мы дампим структуру, но не данные сбойной таблицы (ключ —exclude-table-data можно указать несколько раз), при этом параметр -Fd нужен, чтобы мы могли снимать дамп параллельно сразу несколькими процессами, -j задаёт количество этих процессов, ключ -f указывает директорий, куда будет записан бакап, а -Z1 регулирует степень сжатия, —с уровнем 1 снятие дампа идёт с максимальной скоростью.
Наконец, успех: основная база лежит единым куском, сбойные таблицы сняты отдельными дампами. Что ещё можно сделать?
В одном из случаев у меня были несколько реплик, которые развалились
Если реплики нет, можно посмотреть какие индексы есть на сбойной таблице. Не исключено, что критичные столбцы покрыты индексами, которые остались целыми.
Данные из индексов можно вытащить, сделав запрос так, чтобы он затрагивал только столбцы, которые есть в индексе. Если в интересующем нас индексе нет ключевого столбца, не беда, там есть технический столбец ctid, по которому потом можно соединить данные построчно.
Если строки восстановить не удалось, а на таблицу ссылаются другие таблицы, надо заполнить недостающее любым мусором, чтобы внешним ключам было куда ссылаться.
Итак, теперь у нас есть большой дамп почти всей базы данных и один или несколько дампов таблиц. Как же всё соединить на другом сервере? Последовательность следующая.
Для начала восстанавливаем основную базу данных, но без индексов и внешних ключей:
pg_restore -d dbname -Fd /dump_directory --section=pre-data --section=data -j10Потом заливаем дампы отдельных таблиц, после чего доливаем индексы и внешние ключи:
pg_restore -d dbname -Fd /dump_directory --section=post-data -j10Если всё сделано правильно, должна получиться консистентная база данных. Осталось разобраться с двумя вещами: создать удалённые ранее индексы, если таковые были и, если вы создавали мусорные строки, то надо понять как с ними быть дальше. Например, удалить их или заполнить значениями «данные утеряны».
Заклинатель нейросетей
Всё восстаёт во мне против названия
Работа
Чтобы разобраться в том как описать
Так что
КБ и Кб
Я работают в айтишной компании и меня удивляет как много людей путают «КБ» (килобайты) и «Кб» (килобиты), «МБ» (мегабайты) и «Мб» (мегабиты) и так далее. Такая подробность может дорого обойтись, ведь разница между ними в восемь раз, регистр одной буквы изменит контрактные обязательства на невыполнимые и приехали.
Я в своё время придумал такое правило — байт («Б») больше бита («б»).
Ужасный поиск «Яндекс.Маркета»
Иронично, что «Маркет»,
Школьный автобус
Первого сентября мы стали родителями первоклашки. До сих пор пока в себя не придём
Хорошо, что школа на днях запустила три маршрута школьного автобуса. Вчера мы на него не успели, причём Ева сильно расстроилась, ей очень хотелось попробовать. Но сегодня всё получилось, причём выяснилось, что его ближайшая остановка около дома, только дорогу перейти, очень удобно. Мы не сразу поняли где она, так как в расписании автобуса наша остановка называется
Автобус неожиданно высвободил много времени, но сейчас надо подумать как перераспределить утренние ритуалы, а то мы бегаем в мыле до него, а потом чилим после.