All streams
Search
Write a publication
Pull to refresh
3
0
Send message

Со студенческих времен остались пара таких бобин. С исходниками моих лаб-курсовых-диплома и прочей всячиной. Отвез на дачу: выбросить рука не поднялась.

Не являюсь фанатом ЯНавигатора, (пользуюсь им только для оповещения о всяких неприятностях типа ремонтов и камер), но… вроде как в настройках программы можно ограничить рекламу (например, разрешить ее только на остановках). Или я тут чего-то не понял?

Отличная первоапрельская новость, очень понравилось!

А тут дело не только в неисправных или изношенных деталях. Проколоть камеру можно запросто и на совершенно новом, заведомо исправном велосипеде. (Достаточно наехать на крохотный осколочек стекла). Могут произойти и другие неприятности (типа намотанной между звездочками кассеты ветки дерева). Без инструментов — как без рук. Так что лучше все-таки минимальный набор инструментов с собой возить всегда.
Кроме того, вело-техническая помощь может потребоваться не только вам, но и окружающим.
(По секрету скажу, что именно таким образом в свое время довелось познакомиться с девушкой, которая после этого стала сначала боевой подругой, а теперь уже в течение 25+ лет является моей женой).
Строго имхо:

Зеркала как минимум не помешают в двух случаях:
1. При регулярной езде по дорогам с автомобильным движением. (чтобы не оборачиваться каждый раз)
2. При движении в составе группы велосипедистов, когда вам нужно как-то контролировать тех, кто едет за вами. (опять же, чтобы не оборачиваться каждый раз).

При соло — катании по парку зеркала только мешают.
Вам можно позавидовать — у Вас все еще впереди.
Про инструменты, которые стоит всегда возить с собой (если предстоит уехать от дома дальше чем на 1000 м).
Стоит добавить в этот список выжимку для цепи, и несколько запасных звеньев (желательно вместе с замочком для цепи). Зачем?
Я это понял, когда пришлось прогуляться пешком 12 км с разорвавшейся цепью. Выжимка весит немного, но выручала уже не один раз.

Ну и про монтажки тоже не стоит забывать. (В случае прокола, пальцами снять покрышку с обода не у всех получается)

Помнится, будучи мелкими школьниками, (2-3 класс) обменивались с одноклассниками записками, используя похожие методы "шифрования". В книжке Перельмана был описан алгоритм под названием "Решетка", ну вот его мы и освоили. (А сейчас, насколько я понимаю, это уже будет считаться нарушением законодательства рф).


А когда учился в 8-м классе, для своей одноклассницы придумал алгоритм под кодовым названием "Анти-Бабушка" (там бабушка тщательно следила за содержимым телефонной записной книжки внучки, чтобы она с мальчиками не гуляла. Ну я вошел в положение и рассказал ей про способ, позволяющий замаскировать записную книжку с телефонами под словарик для записи слов по иностранному языку). О том, что это уже называется "стеганографией" узнал немножко позже.


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

Расскажите в комментариях о своих кейсах работы с синтетическими и реальными тестовыми данными. Давайте разберёмся, кого среди нас больше: реалистов или синтетиков?


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

Вот вам первый «кейс»:
Как правило, в моих проектах компьютер работает не сам по себе. Он управляет какой-то подключенной к нему технологической установкой (станком, линией).

И в состав разрабатываемого софта практически всегда входит программа — эмулятор этой самой технологической установки, или станка. Она воспринимает команды устройству и в ответ генерирует набор тех самых синтетических данных.
Причем обычно сначала разрабатывается именно эмулятор.

Зачем это нужно:
1. Можно отлаживать свой код в спокойной обстановке, а не в цеху (там бывает шумно, жарко, холодно). Бывает, подключенный к компьютеру девайс должен находиться вне помещения. (Тут есть желающие отлаживать софт в Якутии зимой при температуре в минус 45?)
2. С помощью эмулятора можно легко получить такие предельные и запредельные величины, которые в ходе штатной работы системы получиться не должны. Например, датчик температуры воды в магистрали, который обычно выдает величины 10-20 градусов. Как проверить поведение софтины, если внезапно воды в магистрали не окажется? (В принципе, такое имеет право произойти, то есть зимой эта температура запросто может стать отрицательной).
3. Эмулятор позволяет легко и просто моделировать всякие отказы оборудования, поломки и аварийные ситуации. Например, программа посылает команду на закрытие какого-нибудь клапана, а расходомер жидкости, с этим клапаном связанный, спустя какое-то время продолжает показывать поток порядка несколько литров/сек. Это означает, что у нас или клапан не сработал, или еще что-то случилось, но где-то в цеху прямо сейчас льется кислота, причем куда она льется — непонятно! То есть софтина должна зажечь на операторском щите здоровенную красную лампу, и в дополнение к ней включить ревун (вдруг оператор дежурной смены ночью задремал). Причем в жизни эта логика иногда оказывается весьма хитрой и довольно таки не очевидной. Как все эти ситуации проверять на реальном оборудовании? (Проверка исправности сигнализации обычно предусмотрена, но ведь ломать оборудование никто не даст. А тут достаточно мышкой щелкать и спокойно смотреть, что происходит при возникновении той или иной аварии, в разных комбинациях).

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

Но одним эмулятором тоже обойтись не получается. При отсутствии данных, полученных в ходе «боевой» эксплуатации системы, тоже не получается отловить многие баги и глюки. Причем проверять все надо в комплексе, ибо причина возникновения бага может крыться не только в программном коде.
Было дело, когда неправильное поведение моего софта были вызваны неудачным расположением оборудования на предприятии (дело было на мукомольном комбинате). Один из датчиков (который был довольно чувствителен к вибрационным помехам) оказался смонтирован совсем рядом с ситовейной машиной. (Ну вот представьте себе обычное сито, только через него просеивается больше 10 тонн муки в час). Когда оно работало, там вокруг все ходуном ходило, и датчик, понятно, выдавал нечто несуразное. Самое интересное, что и перенести этот датчик в другое, более спокойное место, не получалось. Пришлось мне допиливать софт, вводить фильтрацию нежелательных помех (уровень которых на порядок превышал уровень полезного сигнала). На этапе разработки и тестирования, ясен перец, такие вещи не приходили в голову никому. (Почему на других мельницах такой проблемы не возникало? Потому что обычно можно было найти более удобное место для установки этого датчика)

Другой «кейс» — когда множественные малопонятные сбои компьютера были вызваны его неправильным подключением к электросети. Местные КИПовцы, не подумавши, подключили промышленный компьютер к той же самой питающей линии, на которой находились несколько довольно мощных (около 20 кВт каждая) машин. Помехи, вызываемые электродвигателями, так лихо пролезали через не самый дешевый ИБП и через блок питания компьютера. (до того мне и в голову не приходило, что такое может быть) А я там всю голову сломал в размышлениях «какого ж хрена программа-то виснет, причем вместе со всей системой?». А там программа была не особо простая: асинхронный ввод-вывод, несколько потоков, всякие там мьютексы с критическими секциями, и вот это все. Естественно, я грешил на свою ошибку в синхронизации потоков, которая могла вызвать «перекрестное ожидание». А обнаружился этот «баг» совсем случайно. (Мне стало интересно, а с чего это мой софт виснет только в те моменты, когда в вашем цеху что-то такое эдакое мощное выключается?).
Поглядел, куда идут кабели… Сказал КИПовцам, чтобы они больше так не делали. Они шустро перебросили питание на другую линию, и случилось чудо — подвисания пропали.

Вот оно как бывает в жизни.

Бомбы, шпоры… У нас на экзаменах (во всяком случае, после 2 курса и по математическим дисциплинам разрешали пользоваться своими тетрадями. А некоторые преподы вообще никак не ограничивали использование книг и тетрадей на экзаменах, и не контролировали процесс подготовки. Раздал билеты и сел газету читать.


  • Бороться с шпорами и бомбами? А зачем? Это ж не политэкономия какая-нибудь, а (например) общая алгебра. Я хорошо понимаю, если кто весь семестр пробездельничал, то его можно обложить справочниками- книжками-тетрадями, и это ему ну никак не поможет. Потому что естественная сложность предмета такова, что просто так, без предварительных знаний, за пять дней подготовиться нереально.
    Следовательно, мне глубоко по шарабану, вызубрили вы ответ или со шпаргалки списали. Для меня главное, чтобы у вас было понимание сути. А это очень легко проверяется. Парочкой дополнительных вопросов. Если вы хорошо понимаете, что списали, то ставлю 4 или 5. А вот если увижу, что списано или вызубрено без понимания, то предупреждаю- перехожу в режим легкого остервенения, и тогда… мало не покажется.

Короче, спасибо огромное всем моим институтским преподавателям.

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

У кого как, а у меня любимый учебник по теории вероятностей — двухтомник Уильяма Феллера. (Введение в теорию вероятностей и ее приложения). Помню, будучи студентом третьего курса, случайно набрел на эту книжку в институтской библиотеке, взял (на всякий случай, а вдруг пригодится при подготовке к экзамену по терверу). Начал читать, и оценил, насколько она увлекательно написана! Довольно сложные вещи, но читается, просто как детектив.
Потом, уже после окончания института, увидел знакомую обложку в букинистическом магазине, купил, даже не раздумывая.

По мат анализу — трехтомник профессора из ЛГУ, Григория Михайловича Фихтенгольца, «Курс дифференциального и интегрального исчисления». (Широко известен в соответствующих кругах как «Толстый Фихтенгольц». Это чтобы не путали с другим учебником того же автора, двухтомником под названием «Тонкий Фихтенгольц»).
На первых двух курсах института, этот учебник был моей настольной книгой. Могу ответственно заявить, что «Толстый Фихтенгольц» является произведением искусства.

Страницы истории: В стародавние времена (точнее, в прошлом тысячелетии), когда Windows использовался главным образом для запуска «Пасьянса», (поскольку других приложений для него просто не успели написать) был еще весьма неплохой (для своего времени, конечно) файловый менеджер под названием XTreeGold… Помню, в начале 90-х у нас его очень любили программеры. (в отличие от бухгалтерии и коммерсантов, которым больше пришелся по духу Нортон Коммандер с клонами).
Вот ведь времена были!
Припоминаю, были несколько лет назад какие-то конфликты у антивируса Аваст с программами на старой версии компилятора Delphi. Антивирус ругался при попытке запуска неподписанной программы с съемного носителя. Даже если эта программа содержала один единственный Return. А при запуске с жесткого диска или с сетевого — никаких вопросов у него не возникало.
Вылечилось это просто, при обновлении версии Аваста.

Ну вот мой личный опыт общения с гуглом:

Несколько лет назад я в составе команды занимался разработкой девайса для автоматизации пищевой промышленности. Команда состояла из пяти человек (кто-то делал слаботочную электронику, кто-то силовую, кто-то чертежи рисовал, лично я там софтом занимался). И все мы не рядом находились, а почти в разных городах. Встречались раз в неделю. В результате, по просьбам трудящихся, вся техническая информация о потрохах этого прибора, которая была необходима для взаимодействия разных членов команды (начиная от распайки разъемов, цветов проводов, форматов файлов, синтаксиса команд, кодов сообщений об ошибках, и заканчивая алгоритмами и математическими формулами для обработки данных) хранилась у нас в виде набора документов Google. Ссылки на документы были у всех заинтересованных, то есть все могли быстро уточнить необходимые детали, а также имели возможность что-то добавить/подправить при необходимости. И все мы были счастливы, пока…
… в один не очень прекрасный момент тов Гугль закрыл нам доступ к одному из этих документов. Втихаря, вероломно и без объявления войны. Под тем предлогом, что документ «содержит противоправную информацию».
Пришлось писать в службу поддержки. Дня через два точно так же втихаря доступ к документам вернули. Что уж там Гугль там нашел такого «противоправного» — осталось для нас тайной. То ли им не понравилась формула для пересчета напряжения термопары в температуру, то ли мои выкладки по решению систем уравнений подозрительными показались. (А там весь документ в таком духе и был составлен)

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

Но в нашем случае проблема решилась просто: телефонным звонком коллеге и отправкой по е-mail копии документа. А вот когда сервис блокируют — это и врагу не позавидуешь.

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

Она нужна для того, чтобы паровоз вписывался в кривые (мог поворачивать легче).


По этому тезису маленькое дополнение:

Бегунковые (то есть свободно вращающиеся, а не связанные с двигателем) колесные пары предназначены исключительно для того, чтобы равномерно распределить нагрузку на дорожное полотно, и разгрузить переднюю часть локомотива.

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

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

Подробности: ru.wikipedia.org/wiki/Бегунковые_колёсные_пары

Спасибо за статью.
В полной версии сказки (которую можно почитать тут) еще присутствовали Косцы, Печка, Дровосеки…
А зачем кнопка шнурования нужна именно на смартфоне?

Это неспортивно! (Рискну предположить, что основная цель — позволить завязывать оба шнурка одновременно, причем не нагибаясь)

А воообще это напомнило программерскую сказку про Курочку, которая пришла к Кузнецу:
— Кузнец, Кузнец! Наточи мне, пожалуйста, косу!
— Наточу, конечно. А зачем тебе коса, если не секрет?
— Дам косу Хозяину, он накосит траву. Сын Хозяина траву соберет, просушит, и получится сено. Сено дадим Корове. Корова его съест и даст молоко. Хозяйка Корову подоит, и из молока масло собъет. А потом я дам это масло моему Петушку, а то он у меня бобком подавился.
— Держи свою косу, я ее наточил. И еще возьми у меня готовое масло, просто дашь его своему Петушку.
— Нет, Кузнец, так неинтересно. Если я масло сразу петушку дам, то квеста не получится.
Зачастую у нас 21 век мирно уживается с девятнадцатым. (типа, компьютерное управление вагоном и электрожезловая система). Главное — оно работает! Хотя у непосвященных это может вызвать легкую оторопь и когнитивный диссонанс.

Вот вам еще одно приключение, связанное с ЖД транспортом.

Возвращаемся из байдарочного похода по Карелии. Приходим на станцию, (точнее, полустанок) глядим расписание, до ближайшего поезда чуть больше двух часов. Стучусь в кассу, прошу на этот поезд 8 билетов (4 взрослых, 4 детских). А мне кассирша в ответ:
— Да что ж вы так поздно пришли? Я не успею столько билетов вам оформить!
Ну я в легком недоумении, гляжу на часы, уточняю расписание.
— Да ведь до поезда еще целых два часа!
— Не целых два часа, а всего лишь два часа! У нас теперь все на компьютерах, поэтому получается очень долго и очень много ошибок.
Но, поскольку следующий поезд ожидался только на следующий день, она решила попробовать.

И начала оформлять билеты. Тут я и понял, в чем засада:
Кассирша позвонила по телефону диспетчеру, и начала диктовать наши имена / фамилии / номера паспортов / свидетельств о рождении по циферкам и буковкам. (Мария Александр Константин Сергей… номер шесть четыре семь...) Когда и кем паспорт выдан — тоже надо продиктовать!

Связь плохая, диспетчер переспрашивает, перезванивает…

На мой вопрос, почему бы просто не заказать у диспетчера нужное количество билетов в нужный вагон, а тут уже на месте ввести в них все данные, мне ответили:
— Нельзя! Если я хоть в одной буковке ошибусь, вас в вагон не пустят!

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

— Больше не успею, идите на посадку. Там на месте разберетесь.

К моему удивлению, посадка в поезд и вся дальнейшая поездка прошла весьма спокойно и в рабочем режиме, несмотря на стоянку в 2 минуты. Проводница, естественно, была слегка удивлена некоторым несоответствием между количеством билетов и вошедших в ее вагон пассажиров. Я объяснил, что не являюсь злостным безбилетником, предложил позвать начальника поезда, и уладить все дела, по возможности в соответствии с правилами, принятыми на жд транспорте. Что и было выполнено в полном объеме. Если вдруг кому интересны подробности — могу рассказать.

Если не секрет, вы когда последний раз такое встречали?

В апреле 2016 года. Ленинградский вокзал в городе-герое, столице нашей Родины.
Видимо, тогда еще не успели всех проводников обеспечить девайсами. Если сейчас обеспечили, то хорошо.

Вот еще "грабли", на которые наступают многие пассажиры жд транспорта. Выглядят они так:


Вы покупаете билет на поезд через интернет. И обнаруживаете, что для вашего поезда доступна "электронная регистрация". Вы радуетесь, что #надвореуже21век#, скачиваете ваш электронный билет в формате pdf в смартфон и приезжаете на вокзал. На поезд объявляется посадка, вы подходите к своему вагону, а проводница с милой улыбкой вам сообщает:


  • Мне пока не принесли списков с электронными билетами. Ждите...

Картина маслом: все обладатели традиционных (бумажных) билетов давно уже в вагоне сидят, а толпа "гиков" со смартфонами еще ждут на платформе. Минут за 5 до отправления у проводницы появляется волшебная бумажка с фамилиями, и вся толпа (с чемоданами, рюкзаками, детьми, байдарками и велосипедами) дружно вваливается в вагон.


Справедливости ради надо сказать, что на платформе (во всяком случае, при мне) не оставался никто ни разу. Хотя иногда для этого проводнице приходилось играть в "первомай" (то есть махать красным флажком, не давая отправить поезд). Зато дети от такой движухи всегда приходили в состояние бурного восторга, (да и взрослым будет потом что вспомнить).
Так что ничего плохого в этом нет (отработка слаженных действий по погрузке и выгрузке в условиях ограниченного времени и пространства). Без таких приключений жизнь оказывается ужасно пресной и однообразной.


Ну а если вам такие упражнения в виде "коллективной погрузки в вагон на время" не нравятся, то достаточно всего лишь заранее приехать на вокзал и обменять новомодный электронный билет на старомодный бумажный. Спокойнее и проще будет. Тем более это (пока) можно сделать совершенно бесплатно.


Описанная ситуация происходила при мне, не один раз, так что она не является литературным вымыслом типа "девятый вагон"


Но если вдруг окажется, что РЖД "ведет решительную борьбу с недостатками, и уже приняла меры по недопущению таких конфузов, так что теперь они безвозвратно ушли в прошлое", то это очень хорошо. Точно так же, очень хорошо, что в прошлое ушел конфликт типа "два билета, проданные на одно место". Я ж против компьютерных технологий вообще и электронной регистрации в частности совсем не возражаю.

Information

Rating
Does not participate
Registered
Activity