Агент

Май 25th, 2017 по news Нет комментариев »

Запустив Агент Мэйл.ру на неделе, к удивлению своему увидел окно последней Аськи:

magent

Я догадываюсь, что под последний законопроект, согласно которому пользователям будет запрещено пользоваться мессенджерами без привязки к мобильным телефонам, в рашке уже активно переписывают программное обеспечение. Компания Mail.Ru Group, решив на этом деле сэкономить, взяла изнасилованную ей же Аську, внесла косметические изменения в код и представила как новый Агент.
В результате на свет появился еще один уродец. Громоздкий, в полэкрана, лишенный возможности гибкой настройки "под себя", и, конечно же, отключения автоматического обновления. По-моему, даже Мелкософт не позволяет себе последнего.
Я пока сражаюсь, устанавливая более ранние версии Агента, которые на следующий же день затираются обновленной версией. Я знаю способы устранения этой проблемы и пробую по очереди каждый из них.

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

http://rheo-tu.livejournal.com/546095.html

хорошоплохо (никто еще не проголосовал)
Loading...Loading...

О программировании

Май 12th, 2017 по news Нет комментариев »

это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2017/05/12.html

Закончил пару программных проектов — песни для Розового Слона и и заводской конвейер для Юры Ильина. Второе — это у Юры колоссальная (для скромно поставленной задачи) система мониторинга окружающей среды и перемещений палетт по конвейерам, он там свою собственную mash-сеть разработал с датчиками, репитерами и базовыми станциям. А я помогал ему с сайтом-аккумулятором для обсчета и показа всего этого, но и сайт в итоге вышел развесистый и с кучей функций:


» Читать дальше: О программировании

хорошоплохо (никто еще не проголосовал)
Loading...Loading...

В человеческом масштабе

Май 7th, 2017 по news Нет комментариев »

(эта запись может быть интересна программистам)

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

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

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

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

Во-первых, наряду с старым огромным архивом сделали новый, современный. Он не такой огромный, размером скорее с квартал, а не с город, и в нем работает целый отряд библиотекарей. Но он все равно далеко, сообщение с ним медленное, поиск в нем тоже не такой быстрый, как хотелось... короче, получить папку можно уже не за 4 месяца, а за день-полтора. И на том спасибо.

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

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

----------------------------------

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

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

Чтение папки, которая у вас в руках - это работа с данными, которые уже лежат в регистрах процессора. Найти папку на столе - это прочитать данные из процессорного кэша (неважно какого, L1/L2/L3 - 10 секунд это усредненные данные). Канцелярские шкафы в вашей комнате, найти папку в которых занимает минута - это рабочая память, RAM.

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

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

----------------------------------

Основные идеи, которые должен продемонстрировать этот рассказ - это насколько быстрее иметь нужные данные в рабочей памяти, чем читать их с диска; а если все же их нет в памяти, то насколько быстрее читать их SSD, чем с HD, и насколько через локальную сеть, чем с любого диска, даже SSD.

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

http://avva.livejournal.com/3023193.html

хорошоплохо (никто еще не проголосовал)
Loading...Loading...

Вдогонку к вчерашнему посту про алгоритмы

Май 5th, 2017 по news Нет комментариев »

это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2017/05/04.html

Вчерашний пост http://lleo.me/dnevnik/2017/05/03.html про управление мотором собрал множество комментариев - реально горжусь вами, что вы у меня такие умные. Советов оказалось множество, и буквально в пятом комменте некто Лжедмитрий Малобуков дал ссылку на математический алгоритм:
https://stackoverflow.com/questions/22583391/peak-signal-detection-in-realtime-timeseries-data/22640362#22640362 Который сильно подкупал анимированной гифкой, иллюстрирующей матаппарат. Язык алгоритма правда был незнакомый. Да и математику я, оказывается, сильно подзабыл - средние отклонения там всякие, Мю... Но с помощью PHP я алгоритм воссоздал, и он заработал у меня на тестовом массиве. А Чук, неожиданно заинтересовавшийся проблемой, параллельно накидал его на C. Я его код потом пару раз переписал, в итоге получилось вообще несколько строчек, ниочем, как говорится:
» Читать дальше: Вдогонку к вчерашнему посту про алгоритмы

хорошоплохо (никто еще не проголосовал)
Loading...Loading...

Аудиоредактор и стихи Олега Боричева

Апрель 28th, 2017 по news Нет комментариев »

это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2017/04/28.html

Необыкновенной красоты движок waveform-data сделали на BBC для веб-просмотра и редактирования фонограмм. Он конечно вещь в себе, имеет небольшие (не фатальные) глюки и сильно лишен какой-либо документации. Но я не удержался от соблазна привинтить его к своему движку чтобы удобно резать длинные аудиофайлы на фрагменты. Режет движок по тайм-коду длинный файл уже сам в автоматическом режиме, и получаются кусочки:
» Читать дальше: Аудиоредактор и стихи Олега Боричева

хорошоплохо (никто еще не проголосовал)
Loading...Loading...

Училась и горя не знала, …

Апрель 5th, 2017 по news Нет комментариев »

Училась и горя не знала, что с административкой придётся сталкиваться чаще, чем думала.
И тут она как пошла....

» Читать дальше: Училась и горя не знала, …

хорошоплохо (никто еще не проголосовал)
Loading...Loading...

Мистика в программировании

Март 20th, 2017 по news Нет комментариев »

Очень странная ситуация на работе. Полностью детерминистская программа, запускаешь её дважды с одинаковыми данными — получаешь дважды один и тот же результат. Всегда, кроме одного раза. Запустил программу, через несколько часов она вылетела с очень странной ошибкой (переменная, которая всегда была округлена до 0.0025 содержала одно значение типа 0.022500458651 — то есть никак не похоже на округление). Перезапустил ещё раз, ничего не изменив — и программа отработала.

Там нет никакой зависимости от времени. Все исходные данные остались одними и теми же. Все генераторы случайных чисел позиционируются на одну и ту же исходную точку. Какие ещё есть варианты? Дефектный процессор? Космическое излучение? Проклятье рода?

http://green-fr.livejournal.com/632838.html

хорошоплохо (никто еще не проголосовал)
Loading...Loading...

Реактивное программирование

Март 14th, 2017 по news Нет комментариев »

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


promise.then(onFulfilled, onRejected)

Это пример из JavaScript, где этот подход сейчас реализуется через т.н. Promises.  Очень богато реактивный синтаксис реализуется через семейство библиотек Rx для разных языков (RxJava, RxPython, RxCpp и так далее, включая JavaScript)

Алгоритмически - реактивное программирование это просто навешивание обработчиков на события.Просто то, что раньше записывалось тоннами строк, с Rx и Promises укладывается в простые цепочки

УказатьИсточникСобытия
.Обработчик1
.Обработчик2
.Обработчик3

Записи реактивного кода очень похожи на функциональный код. Логично, так как реактивный код реализуется через функциональный, т.е. через принцип "функция как переменная, которую можем передавать" и другие.

Удобно для обработки связи с сервером. Код для цепочки "авторизация устройства - логин пользователя - вход в админку - обработчик ошибок" - становится коротким и всю цепочку видно как на ладони, в отличие от старых подходов, когда код натурально превращался в кашу из объектов.

http://kvisaz.livejournal.com/869755.html

хорошоплохо (никто еще не проголосовал)
Loading...Loading...

Прекрасное от Ольги Онойко

Март 9th, 2017 по news Нет комментариев »

Помните бессмертное "как вы яхту назовёте, так она и поплывёт"? Язык Луа так назван, потому что это "Луна" по-португальски. Не может быть ничего хорошего от языка, который назван в честь Гекаты, да ещё и по-португальски. А разработан он в Рио-де-Жанейро католиками из Католического университета. И все они носили белые штаны, несомненно. А вокруг много-много диких обезьян! Поэтому он такой.
По-прежнему удивляет меня только одно: почему в нём не работают циклы? О_о Они есть, но не работают. Или не всегда. Или не везде. Или не со всем. Казалось бы, если ты хтоническая женская сущность, то, кхм, с циклами у тебя всё должно быть в порядке. Возможно, иррациональность в этом плане преодолевает женственность.
И надо же было мне с этим нёхом связаться!...

This entry was originally posted at http://beldmit.dreamwidth.org/813303.html. Your comment? (comment count unavailable comments)

http://beldmit.livejournal.com/509199.html

хорошоплохо (никто еще не проголосовал)
Loading...Loading...

Кремниевая Долина как Байконур планеты

Март 6th, 2017 по news Нет комментариев »

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

Кремниевая Долина - это Мекка для IT, куда постоянно стремится огромное количество лучших кадров со всей планеты. Людям нашего уровня цивилизации понятно, как создать фабрику, завод, инкубатор. Как создать святое намоленное место, о котором с придыханием будут говорить на всей планете... ммм, думаю, что нет, никто не знает.

Другая ассоциация - Кремниевая Долина это Байконур в масштабах всей планеты, "всесоюзная стройка", которая требует подкачки специалистами со всего региона (в данном случае планеты). Может ли какая-нибудь Литва или хотя бы Казахстан самостоятельно создать и поддерживать такой свой Байконур? Да ладно, даже у нынешней России это получается не очень (не последнюю роль в этом играет масса других "Байконуров", Кремниевая Долина в том числе, которые оттягивают молодых и умных людей на более выгодные и интересные проекты).

Я не критикую, я просто формулирую - Кремниевую Долину по сумме факторов невозможно догнать. Но, к счастью, Кремниевая Долина все-таки не Байконур, который
1. требует обязательного физического присутствия
2. выпускает по сути один продукт

Вот посостязаться в отдельных продуктах в местных мини-долинках или даже в одиночку - вполне по силам. Продукты гигантов из Кремниевой Долины не совершенны.

http://kvisaz.livejournal.com/865590.html

хорошоплохо (никто еще не проголосовал)
Loading...Loading...