Telegram Web Link
Поскольку когда-то работал в ДЦ, у меня весь подвал забит старыми рэковыми корпусами и частично десктопами (да, на заре ДЦ ставили и десктопы на полки). Как говорил Жванецкий, кто что охраняет - тот то и имеет. Нормальные люди всё это в подвал складывают, потом их раз в 5-10 лет грабят и подвал чистый. А я на свою голову поставил крутые решетки и мой подвал 20 лет никто не трогал.

В общем скопилось у меня там этих корпусов штук 15. Приехал знакомый пару штук забрать, потому что делаю уборку и остальные скоро уедут на свалку. Грузимся, проходит рядом сосед. Я с ним не знаком, но по виду гуманитарий. Спрашиваю: "а вам не надо корпусов для компьютеров бесплатно?"

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

Чувствую себя опять в 90х. Только мы уже с обратной стороны. Несите таблетки, несите.
😁31👍4🔥1💩1
Про здоровье.

Я всю карьеру тоже регулярно выгорал, имел синдром хронической усталости, ОКР, ВСД, навязчивые мысли, тревоги, состояния и спал по 8-9 часов и еще немножко в сиесту, а чтоб не выгорать - вел ЗОЖ и проходил с психологами родовые травмы до прабабушек. Пока внезапно не оказалось что у меня банально шалила печень, причем по-видимому шалила давно, сразу после бурной университетской молодости.

После фикса сам удивляюсь, как могу в 43 года высыпаться за 6 часов, а в 3 часа ночи, встав из-за компа, тут же проваливаться в сон. Не хвастаюсь, просто советую.

А если у вас совсем всё плохо - пересадите себе печень джуна, например.
👍32😁22🔥5
Когда подтверждаешь 3d secure через аппку, любой уважающий себя банк должен предложить тебе в это время:

- показать новости
- поставить апдейт
- посмотреть предложения партнёров
- заполнить анкету
- оценить приложение в магазине

И заставить сменить пароль.
😁32👍6💩2
Дал GPT4 линк на гитхаб с проектом на TS, попросил найти определенную таблицу и сделать функцию export to CSV, причем только для тех колонок, которые видимые в данный момент.

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

Кстати еще один повод теперь называть переменные и функции нормальными именами - их читают не только люди.

p.s. это уже как-то даже не смешно. хорошо что у меня еще лицензия электрика есть, а оно пока провода тянуть не умеет.
👍36🔥6
Когда государство пытается в IT.

20 млн сообщений я наверное даже в Sqlite впихну.
😁55👍2
У нас в нашем софте в кластере, если появилось два узла с одинаковым именем, репликация с них может немного ехать крышей.

Картина маслом - прод, репликация поехала крышей.

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

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

Выводы какие: если у вас серьезный прод, предусмотрите и одинаковые имена, и даже одинаковые IP. Как хотите, так и сделайте. Потому что оно будет и обязательно. И даже не надейтесь на авторизацию, port security и прочие изобретения "для дураков от дураков".
😁18👍7
Картина маслом во многих ЯП:

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

Загоны по иммутабельности в Расте сначала кажутся странными, но к ним привыкаешь и начинаешь воспринимать как должное. Иногда вздыхая и проставляя mut, где компилятор бьет по рукам. А на самом деле ты уже зажрался и не понимаешь, от каких серьезных проблем тебя защищают.
👍45💩6🔥3😁2
Сегодня на буткемпе немного обсуждали вопросы кеширования результата функций в Расте. А в канале будем рассматривать популярный крейт "cached".

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

Условия тестирования: приходит строка, у которой половина символов - "левые", их нужно заменить на triple underscores (___). Я использовал 1000 различных строк, что примерно встречается у меня в проде.

При длине строки в 10 символов:

- "ручное" кеширование в unbounded Mutex<BTreeMap<String, Arc<String>>> (или простой bounded FIFO на Map+Deque) даст буст примерно на 100%
- cached не даст практически ничего

При длине строки в 20 символов:

- Map даст буст примерно на 300%
- cached даст уже около +100%

При увеличении длины до 30 символов, получим +400% на Map и +150% с cached.

Комментарии насчёт cached:

- Крейт дает удобные проц-макросы, которые легко навесить на функцию.
- Проц макрос делает тоже самое, что делалось руками - создает static Lazy<Mutex<Storage>> и фантом-клон оригинальной функции.
- К сожалению, проц-макрос отвратительно работает с рефами на строки и прочие большие структуры - сначала переводит в Owned, а уже потом ищет по &ключ или вставляет (при этом Entry API не использует). Как вариант для строк - писать "кешированную" функцию самому и использовать из cached только хранилища. Таким образом можно получить результаты, которые всего на 1/4 хуже, чем использовать напрямую Map, при этом иметь честный LRU.
- Проц макрос использует только стандартный Mutex, при замене на parking_lot можно выиграть еще ~1/5 буста.

Выводы: cached - неплохой крейт с кешами, но кеширование функций из коробки - есть вопросы, если нужно на вход что-то сложнее, чем числа.
👍16
О работе с procfs из асинхронного кода.

procfs, sysfs и прочее - системы виртуальные и как такового I/O на реальные устройства у них нет. Поэтому есть мнение, что можно из procfs безопасно читать, как из соседнего вектора и никакого I/O оверхеда не будет.

Но у Linux свои планы на этот счет, операция через файловые дескрипторы - есть операция через файловые дескрипторы. И если обычно она на procfs занимает пару десятков микросекунд, то в зависимости от настроения системы, может вырастать до 4-5ms.

Если вас устраивает блочить рантайм на 5ms - читайте синхронно. Если же нет - все крейты, которые "удобно работают" с procfs с синхронным кодом под капотом - в отдельные blocking threads.
👍7🔥3💩1
Когда в Linux (или другой OS c X11) нужно скопировать содержимое текстового файла, чтобы потом его куда-то вставить, совсем не обязательно открывать его или делать cat, а потом выделять текст и копировать, можно сделать просто "xclip < filename" или "grep lines file.txt | xclip", если нужно скопировать с пайпа.

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

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

XA_SECONDARY - нестандартизирован, может использоваться приложениями, как им захочется.

XA_CLIPBOARD - то, что в наше время мы знаем, как буфер обмена, и то что используют все современные приложения.

Тем не менее, некоторые каноничные программы продолжают использовать XA_PRIMARY, из-за чего ньюфаги *NIX систем часто злятся и кладут кирпичи. Выход - либо использовать тот же xclip для "конвертирования" между буферами обмена (он умеет и ввод и вывод содержимого), либо патчить.

В самом xclip, кстати, XA_PRIMARY - тоже буфер по-умолчанию, но это решается аргументом "-selection clipboard"
👍17🔥8
Переводили с GPT мой nvim конфиг на lua (наконец я это сделал).

Всё хорошо, только этот шлимазл выкинул часть моих плагинов, зато насовал мне каких-то левых. Следите за ним.
😁34🔥2👍1
Аналитическая компания, когда продаёт прогноз клиенту: у нас данные в базе со времен, когда ещё Земля стояла на китах!

Аналитическая компания, когда закупает аналитический софт: какие данные? ой вей. за шо вы просите столько денег? нам всего две странички из екселя обрабатывать!
😁22👍4
26-27 февраля в 15-30 по GMT буду выступать на Cyber Scotland Week по вопросам безопасности промышленных систем (на шотландском языке, само собой).

Если кто захочет послушать - забейте себе в календарь и заходите (ивента два).

https://www.cyberscotland.com/event/digital-frontier-secure-iiot-solutions-development-with-eva-ics/

https://www.cyberscotland.com/event/novel-battlefield-defending-operational-technology-with-eva-ics/
👍12🔥4😁1
Аналитики Group IB предупреждают о новой malware под кодовым названием GoldFactory.

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

В данный момент существуют версии под iOS и Android, основные жертвы - жители Таиланда и Вьетнама.

Использование биометрии для авторизации - худшее, что можно внедрить. Это будет кстати частью моего выступления на CSW. Пароль вы хотя бы можете поменять. Лицо и пальцы - не очень. И не надо рассказывать про передовые сканеры, которые отличают реальную биометрию от копии. Передовые жулики тоже на месте не сидят.
👍37🔥6
Мне нравится, как торгует Beckhoff. Например TF6701 - солидно, надёжно, чувствуется чугун под маркировкой, минимум тонна.

А вообще это просто MQTT плагин под Twincat. Но учитывая, кто клиенты, им тоже нравится.

Оборот компании кстати вырос за последние 5 лет с 700 миллионов до 1,5 миллиарда. Учитесь торговать!
👍5😁1
Segment@tion fault
Интересно, только меня Google Play постоянно бесит? У нас только специфические B2B-аппки, причем они апдейтятся раз в 100 лет. По этой причине у нас нет специального человека, который этим занимается и знает все веяния моды. Ладно там гугл периодически требует…
Перевели все апки на свой F-Droid, теперь со злорадной улыбкой наблюдаю, как Google Play все больше исходит на говно, требуя заполнить очередные формы, ставит дедлайны, потом сам их отменяет, просит, требует, угрожает.

ГП ПНХ
👍25😁7
Если вы верите, что у вас есть душа, то придется поверить, что бог - типичный промышленный инженер.

Человек задумывался как автономная система с биокомпьютером внутри. Но перед релизом выяснили, что без оператора он не работает.
😁30👍5
Немного истории современного IoT.

Протокол MQTT - уже старичок, ему в этом году стукнуло 25 лет. Разработал его в 1999 британский инженер Энди Стенфорд-Кларк, для проекта IBM по распределенной SCADA-платформе, которая управляла нефтепроводами.

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

Сейчас MQTT - де-факто стандарт pub/sub коммуникаций, особенно в распределенной автоматизации. Тоесть у вас конечно может быть и свой pubsub, но MQTT поддерживать вы обязаны.

Энди же продолжает карьеру в IBM, последние 7 лет занимая позицию CTO в британском филиале корпорации.
🔥21👍8
Мне не очень нравится, что в 2024 году в Linux до сих пор огромная часть секьюрити делается через POSIX user db.

Это хорошо работало для толстых серверов, тем более если там не просто процессы под юзерами, а реальные юзеры заходили. А теперь ту же схему пытаются натягивать, как сову на глобус, на десктопные машины, дешевые дроплеты и тонкие контейнеры. Тем более, в Linux уже 17(!) лет как есть cgroups.

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

Хороший пример правильной реализации - Android. Плохой - всё остальное. Хотя я совершенно андроида не фанат. Это просто факт.
👍13👎5😁2
2025/07/08 15:35:59
Back to Top
HTML Embed Code: