Поскольку когда-то работал в ДЦ, у меня весь подвал забит старыми рэковыми корпусами и частично десктопами (да, на заре ДЦ ставили и десктопы на полки). Как говорил Жванецкий, кто что охраняет - тот то и имеет. Нормальные люди всё это в подвал складывают, потом их раз в 5-10 лет грабят и подвал чистый. А я на свою голову поставил крутые решетки и мой подвал 20 лет никто не трогал.
В общем скопилось у меня там этих корпусов штук 15. Приехал знакомый пару штук забрать, потому что делаю уборку и остальные скоро уедут на свалку. Грузимся, проходит рядом сосед. Я с ним не знаком, но по виду гуманитарий. Спрашиваю: "а вам не надо корпусов для компьютеров бесплатно?"
Сосед делает круглое лицо и начинает лихорадочно думать. И выдает встречный вопрос "компьютерный корпус, это... это какая-то оболочка для компьютера?"
Чувствую себя опять в 90х. Только мы уже с обратной стороны. Несите таблетки, несите.
В общем скопилось у меня там этих корпусов штук 15. Приехал знакомый пару штук забрать, потому что делаю уборку и остальные скоро уедут на свалку. Грузимся, проходит рядом сосед. Я с ним не знаком, но по виду гуманитарий. Спрашиваю: "а вам не надо корпусов для компьютеров бесплатно?"
Сосед делает круглое лицо и начинает лихорадочно думать. И выдает встречный вопрос "компьютерный корпус, это... это какая-то оболочка для компьютера?"
Чувствую себя опять в 90х. Только мы уже с обратной стороны. Несите таблетки, несите.
😁31👍4🔥1💩1
Про здоровье.
Я всю карьеру тоже регулярно выгорал, имел синдром хронической усталости, ОКР, ВСД, навязчивые мысли, тревоги, состояния и спал по 8-9 часов и еще немножко в сиесту, а чтоб не выгорать - вел ЗОЖ и проходил с психологами родовые травмы до прабабушек. Пока внезапно не оказалось что у меня банально шалила печень, причем по-видимому шалила давно, сразу после бурной университетской молодости.
После фикса сам удивляюсь, как могу в 43 года высыпаться за 6 часов, а в 3 часа ночи, встав из-за компа, тут же проваливаться в сон. Не хвастаюсь, просто советую.
А если у вас совсем всё плохо - пересадите себе печень джуна, например.
Я всю карьеру тоже регулярно выгорал, имел синдром хронической усталости, ОКР, ВСД, навязчивые мысли, тревоги, состояния и спал по 8-9 часов и еще немножко в сиесту, а чтоб не выгорать - вел ЗОЖ и проходил с психологами родовые травмы до прабабушек. Пока внезапно не оказалось что у меня банально шалила печень, причем по-видимому шалила давно, сразу после бурной университетской молодости.
После фикса сам удивляюсь, как могу в 43 года высыпаться за 6 часов, а в 3 часа ночи, встав из-за компа, тут же проваливаться в сон. Не хвастаюсь, просто советую.
А если у вас совсем всё плохо - пересадите себе печень джуна, например.
👍32😁22🔥5
Когда подтверждаешь 3d secure через аппку, любой уважающий себя банк должен предложить тебе в это время:
- показать новости
- поставить апдейт
- посмотреть предложения партнёров
- заполнить анкету
- оценить приложение в магазине
И заставить сменить пароль.
- показать новости
- поставить апдейт
- посмотреть предложения партнёров
- заполнить анкету
- оценить приложение в магазине
И заставить сменить пароль.
😁32👍6💩2
Дал GPT4 линк на гитхаб с проектом на TS, попросил найти определенную таблицу и сделать функцию export to CSV, причем только для тех колонок, которые видимые в данный момент.
Робот с первого раза разобрался как включаются колонки и откуда берутся данные и написал функцию, которую кожаный мешок просто повесил на кнопку.
Кстати еще один повод теперь называть переменные и функции нормальными именами - их читают не только люди.
p.s. это уже как-то даже не смешно. хорошо что у меня еще лицензия электрика есть, а оно пока провода тянуть не умеет.
Робот с первого раза разобрался как включаются колонки и откуда берутся данные и написал функцию, которую кожаный мешок просто повесил на кнопку.
Кстати еще один повод теперь называть переменные и функции нормальными именами - их читают не только люди.
p.s. это уже как-то даже не смешно. хорошо что у меня еще лицензия электрика есть, а оно пока провода тянуть не умеет.
👍36🔥6
У нас в нашем софте в кластере, если появилось два узла с одинаковым именем, репликация с них может немного ехать крышей.
Картина маслом - прод, репликация поехала крышей.
- у вас кто-то узел сует с тем же именем
- нет, этого не может быть
- меняйте для узла ключи авторизации
- ой, а вдруг что-то упадет...
Две недели собачились. Наконец нашли вредителя, который на своей машине докер запускал и ходил с ним в прод (с ним уже беседуют безопасники, как и с тем кто ему открыл доступ).
Выводы какие: если у вас серьезный прод, предусмотрите и одинаковые имена, и даже одинаковые IP. Как хотите, так и сделайте. Потому что оно будет и обязательно. И даже не надейтесь на авторизацию, port security и прочие изобретения "для дураков от дураков".
Картина маслом - прод, репликация поехала крышей.
- у вас кто-то узел сует с тем же именем
- нет, этого не может быть
- меняйте для узла ключи авторизации
- ой, а вдруг что-то упадет...
Две недели собачились. Наконец нашли вредителя, который на своей машине докер запускал и ходил с ним в прод (с ним уже беседуют безопасники, как и с тем кто ему открыл доступ).
Выводы какие: если у вас серьезный прод, предусмотрите и одинаковые имена, и даже одинаковые IP. Как хотите, так и сделайте. Потому что оно будет и обязательно. И даже не надейтесь на авторизацию, port security и прочие изобретения "для дураков от дураков".
😁18👍7
Картина маслом во многих ЯП:
- забываешь склонировать объект
- начинаешь его менять
- объект меняется везде, по нескольку раз
- пару часов втыкаешь в это и не понимаешь, что происходит
Загоны по иммутабельности в Расте сначала кажутся странными, но к ним привыкаешь и начинаешь воспринимать как должное. Иногда вздыхая и проставляя mut, где компилятор бьет по рукам. А на самом деле ты уже зажрался и не понимаешь, от каких серьезных проблем тебя защищают.
- забываешь склонировать объект
- начинаешь его менять
- объект меняется везде, по нескольку раз
- пару часов втыкаешь в это и не понимаешь, что происходит
Загоны по иммутабельности в Расте сначала кажутся странными, но к ним привыкаешь и начинаешь воспринимать как должное. Иногда вздыхая и проставляя 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 - неплохой крейт с кешами, но кеширование функций из коробки - есть вопросы, если нужно на вход что-то сложнее, чем числа.
Кеширование бывает полезно. Пример из реальной жизни: к вам приходит куча метрик с 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.
procfs, sysfs и прочее - системы виртуальные и как такового I/O на реальные устройства у них нет. Поэтому есть мнение, что можно из procfs безопасно читать, как из соседнего вектора и никакого I/O оверхеда не будет.
Но у Linux свои планы на этот счет, операция через файловые дескрипторы - есть операция через файловые дескрипторы. И если обычно она на procfs занимает пару десятков микросекунд, то в зависимости от настроения системы, может вырастать до 4-5ms.
Если вас устраивает блочить рантайм на 5ms - читайте синхронно. Если же нет - все крейты, которые "удобно работают" с procfs с синхронным кодом под капотом - в отдельные blocking threads.
👍7🔥3💩1
https://www.infoworld.com/article/3712563/how-to-make-kubernetes-work-at-the-edge.html
Зумеры изобрели установку кубика на локалхост
Зумеры изобрели установку кубика на локалхост
InfoWorld
How to make Kubernetes work at the edge
Kubernetes thrives in centralized data centers, but raises size, scalability, security, and interoperability concerns in distributed edge deployments. Here are some strategies to address them.
😁13👍3
Когда в 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"
При работе с клипбордом часто смущает, что в 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/
Если кто захочет послушать - забейте себе в календарь и заходите (ивента два).
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. Пароль вы хотя бы можете поменять. Лицо и пальцы - не очень. И не надо рассказывать про передовые сканеры, которые отличают реальную биометрию от копии. Передовые жулики тоже на месте не сидят.
ПО нацелено на кражу биометрии жертвы (модель лица), затем - денег из тех платёжных систем, которые уже внедрили передовые системы авторизации для лохов.
В данный момент существуют версии под iOS и Android, основные жертвы - жители Таиланда и Вьетнама.
Использование биометрии для авторизации - худшее, что можно внедрить. Это будет кстати частью моего выступления на CSW. Пароль вы хотя бы можете поменять. Лицо и пальцы - не очень. И не надо рассказывать про передовые сканеры, которые отличают реальную биометрию от копии. Передовые жулики тоже на месте не сидят.
👍37🔥6
Мне нравится, как торгует Beckhoff. Например TF6701 - солидно, надёжно, чувствуется чугун под маркировкой, минимум тонна.
А вообще это просто MQTT плагин под Twincat. Но учитывая, кто клиенты, им тоже нравится.
Оборот компании кстати вырос за последние 5 лет с 700 миллионов до 1,5 миллиарда. Учитесь торговать!
А вообще это просто 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 в британском филиале корпорации.
Протокол 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. Плохой - всё остальное. Хотя я совершенно андроида не фанат. Это просто факт.
Это хорошо работало для толстых серверов, тем более если там не просто процессы под юзерами, а реальные юзеры заходили. А теперь ту же схему пытаются натягивать, как сову на глобус, на десктопные машины, дешевые дроплеты и тонкие контейнеры. Тем более, в Linux уже 17(!) лет как есть cgroups.
Посмотрите на ядро NT. Там по факту всего 3 уровня - 1) юзер 2) админ, если юзер дебил и 3) system, если дебил админ. Ну в шиндовс решили что админ - дебил по-умолчанию, это уже конкретный случай имплементации. Есть четкая система иерархии и никто не задумывал юзеров, под которыми работают системные сервисы. Потом, вместо того чтоб завести сендбоксы, тоже начали натягивать сову, но это уже следствие.
Хороший пример правильной реализации - Android. Плохой - всё остальное. Хотя я совершенно андроида не фанат. Это просто факт.
👍13👎5😁2