#ruvds_переводы — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #ruvds_переводы, aggregated by home.social.
-
[Перевод] Как приглашение на вакансию мечты превращается в атаку
Начиналось всё с уведомления, радостного для каждого разработчика: «Вы попали в шорт-лист на вакансию разработчика ИИ». Компания кажется потрясающей — DLMind , «лаборатория инноваций ИИ». Рекрутер выглядит вполне правдоподобным — Tim Morenc, CEDS , с качественным профилем на LinkedIn, профессиональными интонациями в переписке и историей взаимных связей. Но за этим дружелюбным сообщением стоит BeaverTail — кампания, направленная на похищение вашего кода и учётных данных.
https://habr.com/ru/companies/ruvds/articles/1022898/
#кража_паролей #эксплойты #malware #безопасность #кибербезопасность #ruvds_переводы
-
[Перевод] Как я взломал аппаратный криптокошелёк и вернул два миллиона долларов
Представьте, что у вас есть два миллиона долларов, хранящихся на куске кремния размером с почтовую марку, а пароль от них вы забыли. Существует множество разных чипов подобного типа. Аппаратные кошельки предназначены для защиты восстанавливающих доступ строк в мире криптовалют. Однако многие люди забывают свои пароли, а если забыть пароль, то вы не сможете получить доступ к информации на чипе и потеряете деньги. О такой проблеме и пойдёт речь в нашей статье. Однажды со мной связались неизвестные мне люди. У них был аппаратный кошелёк Trezor, на котором хранилась пара миллионов долларов. Они спросили меня, смогу ли я взломать кошелёк и получить доступ к информации, чтобы они могли доказать, что деньги принадлежат им. Меня зовут Джо Гранд, я хакер оборудования. Взлом подобного продукта — потрясающая задача, похожая на решение головоломки, и у нас есть только один шанс сделать всё правильно. Хакинг не похож на то, что показывают в фильмах. Нет никаких графических эффектов, движущихся по экрану, ничто не происходит за доли секунды. Это американские горки, решение головоломок, принуждение оборудования делать то, чего оно не ожидает. Первым делом мы подписали договор об отказе от претензий на случай, если что-то пойдёт не так. А потом я двенадцать недель работал над этим проектом, пытаясь взломать защиту надёжным образом, чтобы при этом не удалилось содержимое устройства.
-
[Перевод] Как я установил таксофон у себя дома
В детстве, которое пришлось на 90-е, мне очень хотелось иметь Интернет. Родители не собирались его подключать, поэтому я позвонил провайдеру и сказал, что хочу создать аккаунт. У меня спросили фамилию, я назвал вымышленную. Потом у меня спросили номер кредитной карты, я сказал, что мне нужно найти бумажник, после чего я перезвоню. Из книги Big Secrets и нескольких выпусков журнала 2600 я знал пару фактов о кредитных картах. Номера карт American Express всегда состояли из 15 цифр и начинались с тройки, а номера карт Visa состояли из 16 цифр и начинались с четвёрки. Первая пара цифр обозначала банк-эмитент, затем шёл номер счёта; последняя цифра вычислялась при помощи алгоритма Луна и использовалась как контрольная сумма всех предыдущих цифр.
-
[Перевод] Как я установил таксофон у себя дома
В детстве, которое пришлось на 90-е, мне очень хотелось иметь Интернет. Родители не собирались его подключать, поэтому я позвонил провайдеру и сказал, что хочу создать аккаунт. У меня спросили фамилию, я назвал вымышленную. Потом у меня спросили номер кредитной карты, я сказал, что мне нужно найти бумажник, после чего я перезвоню. Из книги Big Secrets и нескольких выпусков журнала 2600 я знал пару фактов о кредитных картах. Номера карт American Express всегда состояли из 15 цифр и начинались с тройки, а номера карт Visa состояли из 16 цифр и начинались с четвёрки. Первая пара цифр обозначала банк-эмитент, затем шёл номер счёта; последняя цифра вычислялась при помощи алгоритма Луна и использовалась как контрольная сумма всех предыдущих цифр.
-
[Перевод] Как я установил таксофон у себя дома
В детстве, которое пришлось на 90-е, мне очень хотелось иметь Интернет. Родители не собирались его подключать, поэтому я позвонил провайдеру и сказал, что хочу создать аккаунт. У меня спросили фамилию, я назвал вымышленную. Потом у меня спросили номер кредитной карты, я сказал, что мне нужно найти бумажник, после чего я перезвоню. Из книги Big Secrets и нескольких выпусков журнала 2600 я знал пару фактов о кредитных картах. Номера карт American Express всегда состояли из 15 цифр и начинались с тройки, а номера карт Visa состояли из 16 цифр и начинались с четвёрки. Первая пара цифр обозначала банк-эмитент, затем шёл номер счёта; последняя цифра вычислялась при помощи алгоритма Луна и использовалась как контрольная сумма всех предыдущих цифр.
-
[Перевод] Как я установил таксофон у себя дома
В детстве, которое пришлось на 90-е, мне очень хотелось иметь Интернет. Родители не собирались его подключать, поэтому я позвонил провайдеру и сказал, что хочу создать аккаунт. У меня спросили фамилию, я назвал вымышленную. Потом у меня спросили номер кредитной карты, я сказал, что мне нужно найти бумажник, после чего я перезвоню. Из книги Big Secrets и нескольких выпусков журнала 2600 я знал пару фактов о кредитных картах. Номера карт American Express всегда состояли из 15 цифр и начинались с тройки, а номера карт Visa состояли из 16 цифр и начинались с четвёрки. Первая пара цифр обозначала банк-эмитент, затем шёл номер счёта; последняя цифра вычислялась при помощи алгоритма Луна и использовалась как контрольная сумма всех предыдущих цифр.
-
[Перевод] Большим GPU не нужны большие PC
С тех пор, как я научил графические карты AMD , Intel и Nvidia работать с Raspberry Pi, меня мучил вопрос: Какой в этом смысл? У Raspberry Pi есть только одна линия шины PCIe Gen 3, доступная для подключения к eGPU. Этого очень мало, особенно учитывая, что у современного десктопа есть как минимум один разъём с 16 линиями шины PCIe Gen 5. То есть разница составляет 8 Гт/с (гигатранзакций/с) против 512 Гт/с. Бой явно неравный. Но мне стало любопытно, действительно ли пропускная способность шины важна всегда. Я хотел наконец покончить с вопросом о полезности, протестировав четыре задачи на разнообразных GPU для сравнения производительности на Raspberry Pi 5 и на современном десктопном PC.
https://habr.com/ru/companies/ruvds/articles/980782/
#llm #nvidia #amd #radeon #локальные_нейросети #бенчмарки #ruvds_переводы
-
[Перевод] Реверс-инжиниринг шифрования прошивки радиостанции
Любительские радиостанции — интересный способ знакомства с работой радиоспектра; что ещё более важно, это встроенные устройства, на которых могут быть установлены странные чипы/прошивки! Мне стало любопытно, насколько просто взломать мою Yaesu FT-70D, поэтому я приступил к расследованию. Единственный ресурс по радиостанциям Yaesu — это пост на Reddit о кастомной прошивке для Yaesu FT1DR. Пользователь Reddit написал, что если выполнить процесс обновления прошивки через USB, то радиостанция раскрывает микроконтроллер Renesas H8SX, флэш-память которого можно изменить при помощи Renesas SDK. Отличное многообещающее начало, но SDK было не так легко настроить, а я не был даже уверен, сможет ли он сдампить прошивку... поэтому долгое время не брался за него.
https://habr.com/ru/companies/ruvds/articles/966464/
#радиостанция #прошивки #firmware #шифрование #ruvds_переводы
-
[Перевод] Почему случается оверинжиниринг
Если вы достаточно давно занимаетесь разработкой ПО, то, вероятно, сталкивались с такой ситуацией: CRUD-приложение, обслуживающее небольшую группу пользователей, развёрнутое в кластере Kubernetes и вдобавок с половиной функций CNCF. В теории выглядит впечатляюще. В реальности же это машина Руба Голдберга, решающая задачи, которых у команды на самом деле нет. В качестве противоположного примера возьмём Levels.fyi . Сегодня этот сайт помогает миллионам разработчиков сравнивать зарплаты и карьерные перспективы, но в начале его «бэкендом» были просто Google Формы, сохраняемые в Google Таблицы. Никаких микросервисов, никакого Kubernetes, никакой шины событий. Самые простые инструменты, которые можно придумать. Такая легковесная система обеспечила владельцам сервиса скорость её развития. Они проверили жизнеспособность идеи, расширили аудиторию и начали вкладываться в более сложные системы только тогда, когда стало ясно, что продукт рабочий. Иными словами, простота не стала для них препятствием, а превратилась в залог успеха. Стоит также помнить о том, что некоторые из самых сложных инфраструктур изначально были очень простыми: например, Airbnb, Facebook*, Reddit. Прежде, чем завоевать всемирную популярность, они были фрагментарными монолитами. Всем нам свойственно подхватывать синдром главного героя. Рано или поздно архитектура в большей мере становится не решением текущих задач, а защитой от потенциальных будущих проблем. Кажется, что каждый новый проект должен начинаться с полного набора распределённых систем, вне зависимости от того, разрастётся ли приложение до масштабов, достаточных, чтобы оправдать их необходимость. Разумеется, при этом команды начинают тонуть в сложности, затратах на облачные услуги и низкой скорости выпуска релизов.
https://habr.com/ru/companies/ruvds/articles/957276/
#микросервисы #монолиты #проектирование_архитектуры #сложность_систем #ruvds_переводы
-
[Перевод] Как проектировать качественные API
Основная часть работы современных разработчиков ПО 1 связана с API: публичными интерфейсами для общения с программой, например, API Twilio. Я потратил кучу времени на работу с API как их разработчик и пользователь. Я писал публичные API для сторонних разработчиков, приватные API для внутреннего использования (или для потребления одной страницей фронтенда), API REST и GraphQL и даже несетевые интерфейсы, например, для инструментов командной строки. Думаю, большинство рекомендаций по проектированию API слишком уж уходит в тонкости. Разработчики отвлекаются на обсуждения того, что же такое «реальный» REST, правильно ли использовать HATEOAS и так далее. В этом посте я попытаюсь рассказать всё, что знаю о проектировании хороших API.
https://habr.com/ru/companies/ruvds/articles/942916/
#api #application_programming_interface #rest #rest_api #graphql #ruvds_переводы
-
[Перевод] Инцидент с Therac-25
Когда пристёгиваешь пациента к электронной пушке, способной выстреливать пучком частиц с энергией 25 МэВ, следование процедурам — вопрос жизни и смерти. Оператор, эксплуатировавшая аппарат лучевой терапии в Онкологическом центре Восточного Техаса (East Texas Cancer Center, ETCC), работала с ним достаточно долго для того, чтобы запомнить все процесс. 21 марта 1986 года оператор пригласила пациента в процедурную. Она проверила его назначение и уложила его на стол Therac-25. Над пациентом находилась диафрагма излучателя — поворотный диск, позволявший выбрать тип излучаемого устройством пучка. Сначала оператор переключила поворотный диск в простой режим оптического лазера, чтобы луч ударил в небольшой участок грудины пациента.
-
[Перевод] Веб-разработка на ванильном HTML, CSS и JavaScript: стилизация и сайты
Это вторая статья из цикла переводов о веб-разработке на чистых (ванильных) технологиях — без фреймворков и сторонних инструментов, только HTML, CSS и JavaScript. В первой части мы обсудили, почему такой подход может быть разумной альтернативой современным фреймворкам и рассмотрели использование веб-компонентов в качестве базовых строительных блоков для создания более сложных примитивов. В этот раз поговорим про стилизацию, а также деплой компонентов в продакшен без использования сборщиков, фреймворков или серверной логики.
https://habr.com/ru/companies/ruvds/articles/910734/
#ruvds_переводы #вебкомпоненты #custom_elements #shadow_dom #html_шаблон
-
[Перевод] Веб-разработка на ванильном HTML, CSS и JavaScript
В этой серии статей мы расскажем, как выполнять веб-разработку исключительно на ванильных технологиях. Ни инструментов, ни фреймворков, лишь HTML, CSS и JavaScript. Современные фреймворки веб-разработки обладают мощными возможностями для быстрой разработки хорошо структурированных веб-приложений, поэтому они стоят изучения. Однако за эту богатую функциональность приходится расплачиваться сложностью фреймворков и инструментария, а для обеспечения безопасности и актуальности проектов часто требуется регулярная поддержка. Выбрав ванильный стиль веб-разработки, мы обмениваем кратковременное удобство на такие долговременные преимущества, как простота и практически нулевая поддержка. Такой подход возможен благодаря современному уровню развития браузеров, обеспечивающих превосходную поддержку веб-стандартов.
https://habr.com/ru/companies/ruvds/articles/909390/
#ruvds_переводы #вебкомпоненты #custom_elements #shadow_dom #html_шаблон
-
[Перевод] Как создавались вокальные эффекты Daft Punk
Нас всегда спрашивают, каким вокодером мы пользуемся, но каждый раз в наших вокальных дорожках используется разный эффект вокодера. У нас есть старый Roland [SVC-350], Auto-Tune и DigiTech Vocalist. В этой цитате содержатся важные подсказки, но она неполная, потому что охватывает только первые два альбома. В ней ничего не говорится о Talk Box, хотя в Around The World он почти наверняка использовался. Судя по цитате, можно решить, что DigiTech Vocalist — это вокодер, хотя на самом деле это не так. Да и какую конкретно модель DigiTech Vocalist они использовали? В серии DigiTech Vocalist есть примерно тридцать устройств, и многие из них были выпущены до релиза альбома Discovery в 2001 году. Я читал комментарии, в которых предполагалось, что модели DigiTech Vocalist с суффиксом EX особенные, но никто не знает, почему, и никто не опубликовал сравнения, чтобы доказать или опровергнуть эту теорию. Я решил бросить себе вызов и провести тесты самостоятельно.
https://habr.com/ru/companies/ruvds/articles/908620/
#ruvds_переводы #daft_punk #электронная_музыка #синтезаторы #гитарные_эффекты #звуковые_эффекты
-
[Перевод] Радиоатака на бойлер
Пожалуйста, будьте ответственными и изучите законодательство вашей страны, прежде чем пытаться делать нечто похожее. Передача радиосигналов может очень быстро вызвать юридические проблемы, а полосу, которую я использовал в посте ( 868 МГц ) занимать в США без лицензии незаконно . Не хочу, чтобы в ваш дом из-за меня постучались люди в штатском. Я вас предупредил! Недавно я переехал в новую квартиру, чтобы наконец-то начать жить в одиночку. Это дало мне достаточную степень свободы, чтобы обустраивать жильё под свой вкус, но не крушить стены, ведь у меня был арендодатель (и залог!). Обогрев квартиры показался довольно неудобным. Термостат бойлера, установленный владельцем квартиры, оказался простым радиоуправляемым устройством, использующим встроенный датчик температуры для включения и отключения отопления. Из-за этого возникло несколько проблем: Датчик температуры мог замерять показания только в одной комнате квартиры, которая нагревалась неравномерно. Эта комната зависела от физической близости пульта управления термостатом, что неудобно, если я нахожусь в спальне, а пульт — в гостиной или наоборот. Если я забуду выключить отопление перед уходом из квартиры, то впустую потрачу кучу дорогостоящей энергии. Я автоматизирую устройства в своей квартире с помощью Home Assistant , и хотел поступить так же с бойлером. Очевидно, для этого есть множество готовых решений, но они бы потребовали участия арендодателя и, вероятно, прихода электрика. А мне этого не хотелось! Вместо этого я решил управлять отоплением квартиры так, чтобы не оставлять следов, при помощи термостата владельца квартиры, и, может, в процессе узнать немного нового о радиопередаче.
https://habr.com/ru/companies/ruvds/articles/905140/
#ruvds_переводы #sdr #home_assistant #бытовая_техника #бойлер #регулирование_температуры
-
[Перевод] Радиоатака на бойлер
Пожалуйста, будьте ответственными и изучите законодательство вашей страны, прежде чем пытаться делать нечто похожее. Передача радиосигналов может очень быстро вызвать юридические проблемы, а полосу, которую я использовал в посте ( 868 МГц ) занимать в США без лицензии незаконно . Не хочу, чтобы в ваш дом из-за меня постучались люди в штатском. Я вас предупредил! Недавно я переехал в новую квартиру, чтобы наконец-то начать жить в одиночку. Это дало мне достаточную степень свободы, чтобы обустраивать жильё под свой вкус, но не крушить стены, ведь у меня был арендодатель (и залог!). Обогрев квартиры показался довольно неудобным. Термостат бойлера, установленный владельцем квартиры, оказался простым радиоуправляемым устройством, использующим встроенный датчик температуры для включения и отключения отопления. Из-за этого возникло несколько проблем: Датчик температуры мог замерять показания только в одной комнате квартиры, которая нагревалась неравномерно. Эта комната зависела от физической близости пульта управления термостатом, что неудобно, если я нахожусь в спальне, а пульт — в гостиной или наоборот. Если я забуду выключить отопление перед уходом из квартиры, то впустую потрачу кучу дорогостоящей энергии. Я автоматизирую устройства в своей квартире с помощью Home Assistant , и хотел поступить так же с бойлером. Очевидно, для этого есть множество готовых решений, но они бы потребовали участия арендодателя и, вероятно, прихода электрика. А мне этого не хотелось! Вместо этого я решил управлять отоплением квартиры так, чтобы не оставлять следов, при помощи термостата владельца квартиры, и, может, в процессе узнать немного нового о радиопередаче.
https://habr.com/ru/companies/ruvds/articles/905140/
#ruvds_переводы #sdr #home_assistant #бытовая_техника #бойлер #регулирование_температуры
-
[Перевод] Радиоатака на бойлер
Пожалуйста, будьте ответственными и изучите законодательство вашей страны, прежде чем пытаться делать нечто похожее. Передача радиосигналов может очень быстро вызвать юридические проблемы, а полосу, которую я использовал в посте ( 868 МГц ) занимать в США без лицензии незаконно . Не хочу, чтобы в ваш дом из-за меня постучались люди в штатском. Я вас предупредил! Недавно я переехал в новую квартиру, чтобы наконец-то начать жить в одиночку. Это дало мне достаточную степень свободы, чтобы обустраивать жильё под свой вкус, но не крушить стены, ведь у меня был арендодатель (и залог!). Обогрев квартиры показался довольно неудобным. Термостат бойлера, установленный владельцем квартиры, оказался простым радиоуправляемым устройством, использующим встроенный датчик температуры для включения и отключения отопления. Из-за этого возникло несколько проблем: Датчик температуры мог замерять показания только в одной комнате квартиры, которая нагревалась неравномерно. Эта комната зависела от физической близости пульта управления термостатом, что неудобно, если я нахожусь в спальне, а пульт — в гостиной или наоборот. Если я забуду выключить отопление перед уходом из квартиры, то впустую потрачу кучу дорогостоящей энергии. Я автоматизирую устройства в своей квартире с помощью Home Assistant , и хотел поступить так же с бойлером. Очевидно, для этого есть множество готовых решений, но они бы потребовали участия арендодателя и, вероятно, прихода электрика. А мне этого не хотелось! Вместо этого я решил управлять отоплением квартиры так, чтобы не оставлять следов, при помощи термостата владельца квартиры, и, может, в процессе узнать немного нового о радиопередаче.
https://habr.com/ru/companies/ruvds/articles/905140/
#ruvds_переводы #sdr #home_assistant #бытовая_техника #бойлер #регулирование_температуры
-
[Перевод] Радиоатака на бойлер
Пожалуйста, будьте ответственными и изучите законодательство вашей страны, прежде чем пытаться делать нечто похожее. Передача радиосигналов может очень быстро вызвать юридические проблемы, а полосу, которую я использовал в посте ( 868 МГц ) занимать в США без лицензии незаконно . Не хочу, чтобы в ваш дом из-за меня постучались люди в штатском. Я вас предупредил! Недавно я переехал в новую квартиру, чтобы наконец-то начать жить в одиночку. Это дало мне достаточную степень свободы, чтобы обустраивать жильё под свой вкус, но не крушить стены, ведь у меня был арендодатель (и залог!). Обогрев квартиры показался довольно неудобным. Термостат бойлера, установленный владельцем квартиры, оказался простым радиоуправляемым устройством, использующим встроенный датчик температуры для включения и отключения отопления. Из-за этого возникло несколько проблем: Датчик температуры мог замерять показания только в одной комнате квартиры, которая нагревалась неравномерно. Эта комната зависела от физической близости пульта управления термостатом, что неудобно, если я нахожусь в спальне, а пульт — в гостиной или наоборот. Если я забуду выключить отопление перед уходом из квартиры, то впустую потрачу кучу дорогостоящей энергии. Я автоматизирую устройства в своей квартире с помощью Home Assistant , и хотел поступить так же с бойлером. Очевидно, для этого есть множество готовых решений, но они бы потребовали участия арендодателя и, вероятно, прихода электрика. А мне этого не хотелось! Вместо этого я решил управлять отоплением квартиры так, чтобы не оставлять следов, при помощи термостата владельца квартиры, и, может, в процессе узнать немного нового о радиопередаче.
https://habr.com/ru/companies/ruvds/articles/905140/
#ruvds_переводы #sdr #home_assistant #бытовая_техника #бойлер #регулирование_температуры
-
[Перевод] Не буду я подключать посудомойку к вашему дурацкому облаку
В эти выходные мне пришлось купить новую посудомоечную машину, потому что моя старая GE умерла. Я купил машину Bosch серии 500, потому что её рекомендовали в журнале Consumer Reports и, что более важно, она нашлась в магазине. После того, как мы с отцом смонтировали её, я решил запустить цикл ополаскивания, но обнаружил, что он, а также другие функции, например, отложенный запуск и экорежим, требуют установки приложения.
https://habr.com/ru/companies/ruvds/articles/894602/
#ruvds_переводы #посудомоечная_машина #посудомойка #облако #бытовые_приборы
-
[Перевод] Сортировка слиянием на CUDA
Я решил изучить, как повысится производительность алгоритмов сортировки при их реализации на CUDA. Моя цель — понять, как можно использовать мощь параллельных вычислений для ускорения алгоритмов сортировки. В качестве тестового я возьму алгоритм сортировки слиянием (merge sort), потому что он удобно разбивает задачу на меньшие подзадачи с двумя равными половинами, что хорошо подходит для параллельных вычислений.
https://habr.com/ru/companies/ruvds/articles/892306/
#сортировка_слиянием #алгоритмы_сортировки #cuda #nvidia #merge_sort #ruvds_переводы
-
[Перевод] Производительность интерпретатора Python 3.14 с оптимизацией хвостовых вызовов
Примерно месяц назад проект CPython смерджил новую стратегию реализации интерпретатора байт-кода. Первоначальные результаты были очень впечатляющими , продемонстрировав среднее повышение производительности на 10-15% в широком спектре бенчмарков на различных платформах.
https://habr.com/ru/companies/ruvds/articles/891562/
#cpython #gcc #clang #интерпретаторы #байткод #бенчмарки #ruvds_переводы
-
[Перевод] 50 лет первой операционной системе для персональных компьютеров
В 1974 году первопроходец ПО для PC Гэри Килдалл продемонстрировал в Пасифик-Гроув, Калифорния, первую коммерчески успешную операционную систему для персонального компьютера — CP/M. В этой статье мы расскажем историю о том, как его компания Digital Research Inc. превратила CP/M в отраслевой стандарт, а позже проиграла версии ОС от Microsoft, скопировавшей внешний вид и стиль ПО DRI.
https://habr.com/ru/companies/ruvds/articles/811043/
#ruvds_переводы #cp/m #ibm #ibm_pc #гэри_килдалл #билл_гейтс #pc_dos #msdos
-
[Перевод] Как устроены очереди: визуальное объяснение
Очереди используются везде. Когда вы загружаете эту веб-страницу, запрос для её получения взаимодействует с десятками различных очередей на пути от вашей машины к серверу, на котором хостится страница. Очереди — это фундаментальный элемент. В этом посте мы изучим очереди в контексте HTTP-запросов. Начнём мы с простого, и постепенно будем вводить более сложные структуры очередей.
https://habr.com/ru/companies/ruvds/articles/863654/
#очереди #очередь_с_приоритетами #lifo #fifo #queues #ruvds_переводы
-
[Перевод] Как устроены очереди: визуальное объяснение
Очереди используются везде. Когда вы загружаете эту веб-страницу, запрос для её получения взаимодействует с десятками различных очередей на пути от вашей машины к серверу, на котором хостится страница. Очереди — это фундаментальный элемент. В этом посте мы изучим очереди в контексте HTTP-запросов. Начнём мы с простого, и постепенно будем вводить более сложные структуры очередей.
https://habr.com/ru/companies/ruvds/articles/863654/
#очереди #очередь_с_приоритетами #lifo #fifo #queues #ruvds_переводы
-
[Перевод] Как устроены очереди: визуальное объяснение
Очереди используются везде. Когда вы загружаете эту веб-страницу, запрос для её получения взаимодействует с десятками различных очередей на пути от вашей машины к серверу, на котором хостится страница. Очереди — это фундаментальный элемент. В этом посте мы изучим очереди в контексте HTTP-запросов. Начнём мы с простого, и постепенно будем вводить более сложные структуры очередей.
https://habr.com/ru/companies/ruvds/articles/863654/
#очереди #очередь_с_приоритетами #lifo #fifo #queues #ruvds_переводы
-
[Перевод] Как устроены очереди: визуальное объяснение
Очереди используются везде. Когда вы загружаете эту веб-страницу, запрос для её получения взаимодействует с десятками различных очередей на пути от вашей машины к серверу, на котором хостится страница. Очереди — это фундаментальный элемент. В этом посте мы изучим очереди в контексте HTTP-запросов. Начнём мы с простого, и постепенно будем вводить более сложные структуры очередей.
https://habr.com/ru/companies/ruvds/articles/863654/
#очереди #очередь_с_приоритетами #lifo #fifo #queues #ruvds_переводы
-
[Перевод] 50 лет первой операционной системе для персональных компьютеров
В 1974 году первопроходец ПО для PC Гэри Килдалл продемонстрировал в Пасифик-Гроув, Калифорния, первую коммерчески успешную операционную систему для персонального компьютера — CP/M. В этой статье мы расскажем историю о том, как его компания Digital Research Inc. превратила CP/M в отраслевой стандарт, а позже проиграла версии ОС от Microsoft, скопировавшей внешний вид и стиль ПО DRI.
https://habr.com/ru/companies/ruvds/articles/811043/
#ruvds_переводы #cp/m #ibm #ibm_pc #гэри_килдалл #билл_гейтс #pc_dos #msdos
-
[Перевод] 50 лет первой операционной системе для персональных компьютеров
В 1974 году первопроходец ПО для PC Гэри Килдалл продемонстрировал в Пасифик-Гроув, Калифорния, первую коммерчески успешную операционную систему для персонального компьютера — CP/M. В этой статье мы расскажем историю о том, как его компания Digital Research Inc. превратила CP/M в отраслевой стандарт, а позже проиграла версии ОС от Microsoft, скопировавшей внешний вид и стиль ПО DRI.
https://habr.com/ru/companies/ruvds/articles/811043/
#ruvds_переводы #cp/m #ibm #ibm_pc #гэри_килдалл #билл_гейтс #pc_dos #msdos
-
[Перевод] 50 лет первой операционной системе для персональных компьютеров
В 1974 году первопроходец ПО для PC Гэри Килдалл продемонстрировал в Пасифик-Гроув, Калифорния, первую коммерчески успешную операционную систему для персонального компьютера — CP/M. В этой статье мы расскажем историю о том, как его компания Digital Research Inc. превратила CP/M в отраслевой стандарт, а позже проиграла версии ОС от Microsoft, скопировавшей внешний вид и стиль ПО DRI.
https://habr.com/ru/companies/ruvds/articles/811043/
#ruvds_переводы #cp/m #ibm #ibm_pc #гэри_килдалл #билл_гейтс #pc_dos #msdos
-
[Перевод] Грязный код
Эдсгер Дейкстра: «Грязно и быстро — мне это не понравится» «Чтобы иметь право называть себя профессионалом, вы должны писать чистый код. Нет никаких разумных оправданий тому, чтобы не стремиться к лучшему». Clean Code В этом эссе я хочу рассказать о том, как пишу код. Я буду называть свою методику «грязным кодом», потому что часто нарушаю рекомендации «чистого кода» — популярной концепции написания кода. Вообще, я на самом деле не считаю свой код абсолютно грязным: местами он немного уродлив, но по большей части я им доволен, и он достаточно прост в поддержке, обеспечивая при этом разумные уровни качества. Кроме того, я не пытаюсь своим эссе убедить вас писать грязный код. Скорее, я хочу показать, что таким способом можно писать достаточно успешное ПО, и, надеюсь обеспечить некий баланс в обсуждениях методологий разработки ПО. Я программирую уже довольно давно и видел разнообразные подходы к обеспечению работоспособности ПО. Кто-то любит объектно-ориентированное программирование (я тоже), другие умные люди его ненавидят. Кому-то нравится выразительность динамических языков, кого-то она бесит. Кто-то успешно выпускает программы, строго следуя концепции Test Driven Development, другие добавляют в конце проекта несколько сквозных тестов, а многие остаются где-то посередине этих крайних точек. Я был свидетелем проектов, выпускавших и поддерживавших успешное ПО на основе всех этих разнообразных подходов. Поэтому повторюсь, что моя цель не убедить вас, что мой способ кодинга единственно возможный, а показать вам (и в особенности начинающим разработчикам, которых легко запугать терминами наподобие «чистого кода»), что можно иметь успешную карьеру программиста, пользуясь множеством различных подходов, и что мой — один из них.
https://habr.com/ru/companies/ruvds/articles/865026/
#htmx #чистый_код #принцип_единой_ответственности #test_driven_development #юниттесты #интеграционные_тесты #ruvds_переводы
-
[Перевод] Байт-кодовые VM в неожиданных местах
Отвечая на вопрос в Twitter, Ричард Хипп написал, почему SQLite использует байт-кодовую VM для исполнения операторов SQL. Вероятно, большинство людей ассоциирует байт-кодовые VM с языками программирования общего назначения, например, с JavaScript или Python. Но иногда их можно встретить в неожиданных местах! В статье я расскажу о тех, которые знаю.
https://habr.com/ru/companies/ruvds/articles/813151/
#ruvds_переводы #виртуальные_машины #bytecode #ebpf #байткод #winrar #truetype #postscript
-
[Перевод] Сравнение алгоритмов ограничения частоты запросов
▍ Зачем ограничивать частоту? Представьте чат в Twitch со множеством активных пользователей и одним спамером. Без ограничения частоты сообщений единственный спамер может запросто заполнить всю беседу сообщениями. При ограничении частоты у каждого пользователя появляется равная возможность участия. Видео Ограничитель частоты позволяет управлять частотой обрабатываемого вашим сервисом трафика, блокируя запросы, превосходящие заданное пороговое значение за период времени. И это полезно не только для борьбы со спамом в чатах. Например, ограничение частоты отправки формы логина позволяет защититься от брутфорс-атак, оставляя при этом пользователю право на ошибку. Конечные точки API тоже часто ограничивают по частоте запросов, чтобы их ресурсы не монополизировал единственный пользователь. Представьте, что вам нужно, чтобы пользователи могли обращаться к затратной конечной точке не чаще ста раз в минуту. Это можно отслеживать при помощи счётчика, обнуляющегося каждую минуту. Все запросы после сотого в пределах этой минуты будут блокироваться. Это один из простейших алгоритмов ограничения частоты, называющийся fixed window limiter (ограничитель с фиксированным окном) . Это распространённый способ управления трафиком к сервису. Но не всегда всё так просто. Когда начинается и заканчивается каждое одноминутное окно? Если я запущу поток запросов ближе к концу окна, смогу ли превысить лимит? Ёмкость окна восстанавливается по одному запросу за раз, или сразу на всё количество? В этом посте мы рассмотрим три самых популярных алгоритма, чтобы ответить на каждый из этих вопросов.
https://habr.com/ru/companies/ruvds/articles/816243/
#ruvds_переводы #ограничение_доступа #ограничение_трафика #запросы #rate_limiter #rate_limiting
-
[Перевод] Нельзя предполагать, что все используют UTF-8
Как вычислять кодировку при помощи статистики Люди говорят на бесчисленном количестве разных языков. Эти языки не только несовместимы между собой, но и представляют огромную трудность при транспиляции в среде исполнения. К сожалению, все попытки стандартизации провалились. По крайней мере, в таком положении вещей есть, кого винить: Бога. Ведь именно он вынудил человечество говорить на разных языках из-за древнего спора о строительстве объекта недвижимости . Однако человечество может винить себя за то, что сложности в общении испытывают компьютеры . И одна из самых больших проблем одновременно является самой простой: компьютеры не договорились о том, как записывать буквы двоичным кодом.
https://habr.com/ru/companies/ruvds/articles/811811/
#ruvds_переводы #unicode #кодировки_текста #win1252 #koi8 #utf8 #utf16 #определение_кодировок
-
[Перевод] Как уговорить Google Bard слить тебе ценные данные
В последнее время у Google Bard появилось несколько мощных обновлений , в том числе Extensions. Extensions позволяют Bard получать доступ к YouTube, искать авиарейсы и отели, а также иметь доступ к личным документам и письмам пользователя. То есть теперь Bard способен читать и анализировать Диск, Документы и Gmail! Это значит, что он анализирует ненадёжные данные и может быть подвержен косвенному инъецированию промтов (Indirect Prompt Injection). Мне удалось убедиться в работоспособности Prompt Injection, дав доступ Bard к своим старым видео на YouTube и попросив его составить краткую сводку; также я протестировал его с Google Документами .
https://habr.com/ru/companies/ruvds/articles/775104/
#ruvds_переводы #google_bard #чатботы #google_документы #google_docs #llm #большие_языковые_модели
-
[Перевод] Как я запустил Linux с Google Drive
Я грешен: во мне есть дух соперничества. Когда я услышал, что мой друг заставил Linux загружаться с NFS , мне обязательно нужно было его превзойти. Я обязан был доказать, что могу сделать что-то сложнее , лучше , быстрее , сильнее [прим. пер.: в оригинале отсылка к композиции Daft Punk «Harder, Better, Faster, Stronger»]. Как и все хорошие проекты, этот начался с идеи. Мой мозг вышел в астрал и выхватил оттуда нечто неуловимое, заставившее слиться воедино разрозненные концепции. В моих руках Масса обрела вес и тёмные клубящиеся цвета, грозящие гибелью каждому, кто будет вглядываться в них слишком долго. На грани безумия мой утомлённый мозг придумал мой magnum opus : запуск Linux с рута Google Drive. ▍ Но как? Я хотел обеспечить автономность системы, поэтому не мог использовать в качестве «помощника» вторую машину. Мой разум сразу же вспомнил FUSE — программу, работающую драйвером файловой системы в пользовательском пространстве (с поддержкой со стороны ядра). Мне достаточно было установить программы FUSE в initramfs ядра Linux и сконфигурировать сеть. В этом ведь не должно быть ничего сложного, так?
https://habr.com/ru/companies/ruvds/articles/827422/
#ruvds_переводы #linux #arch_linux #google_drive #google_диск #fuse
-
[Перевод] Gmail исполнилось двадцать лет
Когда выпущенный двадцать лет назад дурашливый пресс-релиз ознаменовал открытие Gmail, многие посчитали это розыгрышем. Обещалось, что сервис предоставит солидный по тем временам 1 гигабайт хранилища — огромная величина в эпоху 15-мегабайтных почтовых ящиков. Заявлялось, что он будет абсолютно бесплатным, хотя многие почтовые ящики в то время были платными. Смущала и дата: о запуске сервиса объявили первого апреля, что предвещало какую-то шутку. Но вскоре действительно начали приходить приглашения в настоящую бету Gmail, ставшие желанной целью фанатов технологий. В моей «ботанской» старшей школе получение такого приглашения мгновенно делало тебя очень крутым. Я не знала, действительно ли мне понадобится Gmail, но все мои одноклассники говорили, что он изменит мою жизнь навсегда. Подростки известны своей драматичностью, но Gmail действительно удалось совершить революцию в электронной почте. Он переосмыслил возможности наших почтовых ящиков и стал основной частью наших цифровых личностей. По оценкам, сейчас сервис насчитывает 1,2 миллиарда пользователей (примерно седьмую часть от мирового населения) и сегодня он стал практически необходимостью для выполнения любых действий онлайн. Часто кажется, что Gmail всегда был и всегда будет.
https://habr.com/ru/companies/ruvds/articles/806727/
#ruvds_переводы #электронная_почта #gmail #почтовые_сервисы #google_drive
-
[Перевод] Почему люди до сих пор не отказались от дискет
Музыкант Эспен Крафт хранит свои звуковые сэмплы на гибких дисках и использует их для создания музыки из-за их аутентичного звука Последний гибкий диск был изготовлен больше десятка лет назад, сегодня на нём не хватит места даже для хранения фотографии с современного смартфона. Так почему же некоторые люди до сих пор любят ими пользоваться? Когда в голову Эспена Крафта приходит идея нового музыкального произведения, он открывает одну из своих многочисленных коробок с дискетами. Открыв коробку, этот ютубер из Норвегии пробегает глазами по рядам разноцветных пластмассовых квадратов. На одной из этикеток написано «Басовый звук Moog». Именно то, что нужно Крафту. Он достаёт диск и засовывает его в синтезатор. Машина подтверждает наличие диска приятным шумом. По словам Крафта, после этого начинается магия. Сэмпл почти готов к воспроизведению, но именно предвкушение зарождает ностальгию Крафта по «тёплому и уютному месту». Идея уже висит в воздухе. Он нажимает на клавишу. Уши наполняются звуком. Если вы помните времена, когда пользование гибкими дисками не казалось чем-то странным, то вам, вероятно, не меньше тридцати лет. Гибкие диски, или дискеты, появились примерно в 1970 году, и около трёх десятков лет были основным способом хранения и резервного копирования компьютерных данных. Всё приобретаемое людьми ПО и программы загружались на пачки таких дисков. Это технология из другой компьютерной эпохи, но по разным причинам дискеты по-прежнему привлекательны для некоторых людей, а значит, ещё не умерли.
https://habr.com/ru/companies/ruvds/articles/814501/
#ruvds_переводы #дискеты #гибкие_диски #дисководы #floppy_disk #архивация_данных
-
[Перевод] Почему я предпочитаю исключения, а не значения ошибок
Качественная обработка ошибок — это ключ к созданию надёжных программ; но программистов она часто пугает, ведь всегда найдётся ещё один пограничный случай. В традиционных объектно-ориентированных языках программирования используются специальные классы исключений, которые можно выбрасывать, чтобы прекратить обычный поток управления и немедленно сообщить об ошибке. Давайте рассмотрим пример, в котором применено защищённое от ошибок целочисленное деление: int safeDiv(int a, int b) {
if (b == 0)
throw Div0(); // Исключения передаются особым образом
return a / b; // Теперь-то всё абсолютно безопасно, ведь так?
} Новые языки программирования склонны применять сообщения об ошибках в функциональном стиле и кодировать ошибки в возвращаемый тип. Например, Go кодирует ошибку в возвращаемый тип при помощи кортежа (res, err) , а Rust возвращает Result<T, E> — тип-сумму результата и ошибки.https://habr.com/ru/companies/ruvds/articles/843728/
#ruvds_переводы #исключения #отладка #ошибки_в_программе #сообщения_об_ошибках #коды_ошибок #exception
-
[Перевод] Как Google 15 лет создавала культуру сокрытия информации
В конце 2008 года, когда Google подверглась проверке нарушений антимонопольного законодательства из-за сделки по продаже рекламы с её конкуренткой Yahoo и столкнулась с судебными исками, связанными с претензиями о нарушении патентов, торговых марок и авторского права, высшее руководство разослало внутри компании конфиденциальный меморандум. «Мы верим, что информация — это благо», — заявляло руководство сотрудникам компании в этом меморандуме. Но, добавляло оно, государственные регулирующие органы или конкуренты могут воспользоваться неосмотрительными беседами работников Google друг с другом. По словам Google, чтобы минимизировать шансы того, что при рассмотрении иска могут всплыть потенциально компрометирующие комментарии, сотрудники должны воздержаться от необоснованных рассуждений и сарказма, а также «тщательно продумывать» свои слова при общении на «горячие темы». «Не оставляйте комментариев, пока вам не будут известны все факты». Изменились и технологии внутри компании. В инструменте для мгновенного обмена сообщениями была включена настройка «адвокатская тайна». Неосторожно оброненная фраза удалялась уже на следующий день.
https://habr.com/ru/companies/ruvds/articles/863004/
#google #google_talk #google_hangouts #google_chat #монополия_google #судебный_процесс #epic_games #ruvds_переводы
-
[Перевод] Создаём простой копирующий сборщик мусора
Этот пост станет итерацией туториала и знакомством с реализацией сборки мусора, описанной в классической статье . Мы продолжим работать с простыми сборщиками мусора, но на этот раз немного повысим сложность. Я подумал, что это будет здорово, ведь в коде из статьи уже имелся крошечный, но функциональный мутатор, а набор тестов был призван это подчеркнуть; это значит, что мы можем сравнивать производительность и реализацию копирующего сборщика и обычного сборщика.
https://habr.com/ru/companies/ruvds/articles/861776/
#сборка_мусора #сборщики_мусора #копирующий_сборщик #работа_с_памятью #ruvds_переводы
-
[Перевод] Как я портировал свой игровой движок с JavaScript на C
high_impact tl;dr: high_impact — это маленький игровой движок для 2D-игр жанра «экшн». Он написан на C, компилируется для Windows, Mac и Linux, а также для WASM в вебе. Он был написан «по мотивам» моего игрового движка Impact на JavaScript, разработанный в 2010 году. Название high_impact — отсылка к тем временам, когда C считался языком высокого уровня. Движок имеет лицензию MIT, исходники выложены на Github: github.com/phoboslab/high_impact Видео из моего твита за 5 июля , демонстрирующее геймплей Biolab Disaster
https://habr.com/ru/companies/ruvds/articles/834488/
#ruvds_переводы #impact #игровые_движки #работа_с_памятью #кроссплатформенная_разработка #физический_движок
-
[Перевод] Compiler Explorer — уникальный проект для исследования компилируемого кода
Этот пост посвящён замечательному инструменту, полезному для каждого, кто интересуется компиляторами или архитектурой компьютеров. Это Compiler Explorer , который я в дальнейшем будут называть CE. CE — потрясающий инструмент. Если вы с ним не знакомы, то прервите чтение и перейдите на веб-сайт CE, где вы увидите примерно такой экран: Предупреждение: вы забираетесь в «кроличью нору», на которую можете потратить несколько часов своего времени. В основе CE лежит очень простая идея. Достаточно ввести исходный код в левую панель, и сайт мгновенно покажет вам на правой панели скомпилированный результат (обычно на языке ассемблера). CE поддерживает 69 языков, более двух тысяч компиляторов и широкий спектр архитектур, включая x86, arm, risc-v, avr, mips, vax, tensa, 68k, PowerPC, SPARC и даже древний 6502. То есть теперь для просмотра результата работы компилятора достаточно открыть godbolt.org и скопировать туда блок кода. Это само по себе удивительно, но у CE есть гораздо больше возможностей. Это инструмент, который должны знать все интересующиеся компиляторами и архитектурами компьютеров. В статье мы сможем лишь поверхностно рассмотреть функции CE. Вам стоит самим перейти на сайт CE и попробовать всё самостоятельно.
https://habr.com/ru/companies/ruvds/articles/815675/
#ruvds_переводы #компиляторы #язык_ассемблера #интерпретаторы #llvm #llvm_ir #анализ_кода
-
[Перевод] Вам не нужен для этого JavaScript
Прошу вас не возмущаться названием статьи. Я не ненавижу JavaScript, я люблю его. Ежедневно я пишу на нём кучу кода. Но ещё я люблю CSS и даже люблю JSX HTML. Я люблю все эти три технологии по причине, которая называется… ▍ Правило наименьших полномочий Это один из базовых принципов веб-разработки, означающий, что следует выбирать наименее мощный язык, подходящий для решения задачи . В случае веба это означает, что нужно по возможности выбирать HTML вместо CSS, а затем CSS вместо JS. JS — самый универсальный язык из всех трёх, потому что на нём вы описываете, как должен вести себя браузер; но также он может ломаться, отказываться загружаться, требует дополнительных ресурсов для скачивания, парсинга и исполнения. Кроме того, при его использовании очень легко ограничить доступ пользователей, выполняющих браузинг при помощи клавиатуры или специальных возможностей. В отличие от JS с его императивностью, HTML и CSS декларативны. Вы говорите браузеру, что делать, а не как это делать. Это значит, что браузер сам выбирает, как это делать, и может сделать это наиболее эффективным образом. Так как функции HTML и CSS обрабатываются браузером, они могут быть более производительными, более нативными, более адаптируемыми к предпочтениям пользователя и в общем случае иметь бОльшую accessibility. Это не значит, что так будет всегда (особенно когда дело касается accessibility), но когда все сложные задачи берёт на себя браузер, от этого обычно выигрывают конечные пользователи.
https://habr.com/ru/companies/ruvds/articles/779814/
#ruvds_переводы #html #формы #интерактивный_дизайн #accessibility #доступность_сайта #специальные_возможности
-
[Перевод] Вам не нужен для этого JavaScript
Прошу вас не возмущаться названием статьи. Я не ненавижу JavaScript, я люблю его. Ежедневно я пишу на нём кучу кода. Но ещё я люблю CSS и даже люблю JSX HTML. Я люблю все эти три технологии по причине, которая называется… ▍ Правило наименьших полномочий Это один из базовых принципов веб-разработки, означающий, что следует выбирать наименее мощный язык, подходящий для решения задачи . В случае веба это означает, что нужно по возможности выбирать HTML вместо CSS, а затем CSS вместо JS. JS — самый универсальный язык из всех трёх, потому что на нём вы описываете, как должен вести себя браузер; но также он может ломаться, отказываться загружаться, требует дополнительных ресурсов для скачивания, парсинга и исполнения. Кроме того, при его использовании очень легко ограничить доступ пользователей, выполняющих браузинг при помощи клавиатуры или специальных возможностей. В отличие от JS с его императивностью, HTML и CSS декларативны. Вы говорите браузеру, что делать, а не как это делать. Это значит, что браузер сам выбирает, как это делать, и может сделать это наиболее эффективным образом. Так как функции HTML и CSS обрабатываются браузером, они могут быть более производительными, более нативными, более адаптируемыми к предпочтениям пользователя и в общем случае иметь бОльшую accessibility. Это не значит, что так будет всегда (особенно когда дело касается accessibility), но когда все сложные задачи берёт на себя браузер, от этого обычно выигрывают конечные пользователи.
https://habr.com/ru/companies/ruvds/articles/779814/
#ruvds_переводы #html #формы #интерактивный_дизайн #accessibility #доступность_сайта #специальные_возможности
-
[Перевод] Вам не нужен для этого JavaScript
Прошу вас не возмущаться названием статьи. Я не ненавижу JavaScript, я люблю его. Ежедневно я пишу на нём кучу кода. Но ещё я люблю CSS и даже люблю JSX HTML. Я люблю все эти три технологии по причине, которая называется… ▍ Правило наименьших полномочий Это один из базовых принципов веб-разработки, означающий, что следует выбирать наименее мощный язык, подходящий для решения задачи . В случае веба это означает, что нужно по возможности выбирать HTML вместо CSS, а затем CSS вместо JS. JS — самый универсальный язык из всех трёх, потому что на нём вы описываете, как должен вести себя браузер; но также он может ломаться, отказываться загружаться, требует дополнительных ресурсов для скачивания, парсинга и исполнения. Кроме того, при его использовании очень легко ограничить доступ пользователей, выполняющих браузинг при помощи клавиатуры или специальных возможностей. В отличие от JS с его императивностью, HTML и CSS декларативны. Вы говорите браузеру, что делать, а не как это делать. Это значит, что браузер сам выбирает, как это делать, и может сделать это наиболее эффективным образом. Так как функции HTML и CSS обрабатываются браузером, они могут быть более производительными, более нативными, более адаптируемыми к предпочтениям пользователя и в общем случае иметь бОльшую accessibility. Это не значит, что так будет всегда (особенно когда дело касается accessibility), но когда все сложные задачи берёт на себя браузер, от этого обычно выигрывают конечные пользователи.
https://habr.com/ru/companies/ruvds/articles/779814/
#ruvds_переводы #html #формы #интерактивный_дизайн #accessibility #доступность_сайта #специальные_возможности
-
[Перевод] Люди не понимают ООП
«ООП для меня означает лишь обмен сообщениями, локальные ограничения и защиту, сокрытие состояния процесса и крайне позднее привязывание», — Алан Кэй (человек, придумавший термин «объектно-ориентированное программирование») 1 Похоже, многим не нравится объектно-ориентированное программирование. Первое, что приходит в голову, когда слышишь эту трёхбуквенную аббревиатуру — это пример с автомобилем, наследование, геттеры, сеттеры и ObjectFactoryFactorySingleton. Мне это всегда казалось довольно странным. Мне не только нравится ООП, я ещё и считаю, что часто это лучший/наиболее очевидный способ моделирования задачи. И ниже я расскажу, почему.
https://habr.com/ru/companies/ruvds/articles/792052/
#ruvds_переводы #ооп #инкапсуляция #полиморфизм #наследование #объекты #функциональное_программирование #структурное_программирование
-
[Перевод] Покупая домен, не забудьте проверить его на «порчу»
В середине 2022 года я купил новый домен — musicbox.fun. Мне он был нужен для хобби-проекта — интерактивного онлайн-проигрывателя музыки , который я разместил на musicboxfun.com. Новое имя домена было короче и звучало интереснее. Тогда я счёл, что мне буквально повезло его заполучить. Но, увы, musicbox.fun имел свою историю — до меня этот домен использовался для размещения пиратских копий музыки.
https://habr.com/ru/companies/ruvds/articles/883926/
#ruvds_переводы #доменные_имена #домены #поисковые_сервисы #seo #пиратство #музыка
-
[Перевод] Сотрудникам нужны личные кабинеты
Во времена «до» мы просто каждый день ходили в офис. Это даже не обсуждалось: «работа из дома» казалась нереализуемой на практике. Чтобы «пойти на работу», нужно было выйти из дома. А потом случилась пандемия. Теперь, когда она закончилась, даже трёхдневка в офисе вызывает так много споров , что дело доходит до вмешательства профсоюзов
https://habr.com/ru/companies/ruvds/articles/801039/
#ruvds_переводы #опенспейс #организация_рабочего_пространства #кубикл #работа_в_офисе #удаленная_работа
-
[Перевод] Поломанные VPN, 2038 год и сертификаты с истёкшим сто лет назад сроком
В конце 2010 года Зимми (псевдоним) работал в ИТ-поддержке компании, разрабатывавшей VPN-устройства и операционную систему для них. В понедельник ему позвонил клиент (розничный продавец продукции из США), рассказавший, что в выходные его VPN-оборудование перестало работать. После изучения отчёта Зимми решил, что проблема возникла в результате сбоя валидации сертификата, о чём он и написал в недавнем посте в Mastodon. «VPN-устройства моего работодателя управлялись через центральный сервер. На этом сервере работал собственный центр сертификации (CA), который использовался для подписывания сертификатов всех устройств. Конечные точки VPN использовали их для аутентификации на сервере управления (например, при отправке логов) и друг между другом (в основном для VPN). CA — это фундаментальная часть ПО управления». Зимми сообщил, что предпочёл бы оставить анонимным себя, компанию и клиента. Валидация оказывалась ошибочной, потому что система не могла проверить certificate revocation list (CRL) — список цифровых сертификатов, отозванных выпустившим их центром. «Эти устройства аутентифицировали друг друга при помощи сертификатов, похожих на те, которые применяются для HTTPS, но подписанные частным центром сертификации. У каждого клиента был для этого свой CA. В процессе валидации сертификатов CA проверял, не отозван ли сертификат. Валидацию не удавалось выполнить, потому что VPN-устройство не могло скачать certificate revocation list (CRL), чтобы убедиться, что сертификата другого устройства нет в списке. Почему оно не могло скачать CRL?»
https://habr.com/ru/companies/ruvds/articles/794722/
#ruvds_переводы #unix_time #ntp #vpn #операционные_системы #синхронизация_времени #проблема_2038_года
-
[Перевод] Побеждаем компилятор в скорости при помощи ассемблера
В наше время все знают, что писать ассемблерный код — занятие для дураков. Компиляторы — это результат буквально человеко- веков разработки, и они понимают процессор гораздо лучше, чем вы. Тем не менее, иногда до нас доносятся слухи . Написанные в древних томах , подслушанные в тайных покоях , начертанные на стенах разрушенных храмов , упоминаемые в загадочных текстах , они рисуют чёткую картину: Компиляторы плохо справляются с генерацией кода для интерпретаторов, и можно превзойти их, написав интерпретатор на языке ассемблера.
https://habr.com/ru/companies/ruvds/articles/828974/
#ruvds_переводы #язык_ассемблера #производительность #оптимизация_кода #aarch64 #ассемблерная_вставка #abi