Как стать автором
Обновить
3
0

Разработчик

Отправить сообщение

Как мы уменьшили размер нашего Javascript монорепозитория в Git на 94%

Время на прочтение5 мин
Количество просмотров7.6K

Это не кликбейт. Мы и правда сделали это! В Microsoft мы работаем с очень большим монорепозиторием, который между собой называем 1JS. Недавно мы достигли 1000 активных пользователей в месяц, около 2500 пакетов и ~20 млн строк кода! Последнее клонирование репозитория вернуло невероятные 178 ГБ.

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

Вопрос в том, как это вообще произошло?!

Читать далее
Всего голосов 20: ↑19 и ↓1+23
Комментарии9

Как прошить oculus quest 2 в 2024 году без vpn и без лишних заморочек?

Время на прочтение2 мин
Количество просмотров12K

Итак, где-то в середине июля я стал счастливым владельцем quest 2. Я выбрал его, потому что несмотря на санкции этот шлем был лучшем по соотношению цена/качество. Но вот проблема: обновить шлем до последней версии официальным способом было невозможно.

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

Читать далее
Всего голосов 13: ↑11 и ↓2+14
Комментарии32

systemD с 0 до 1: библия сисадмина

Уровень сложностиСредний
Время на прочтение27 мин
Количество просмотров29K


Что бы кто не говорил, systemD становится стандартом систем инициализацией в линуксе. И с 80% вероятностью все сервера будут с systemD. Не факт, конечно, есть и личные сервера, на которых может стоять хоть Gentoo, хоть Devuan, хоть NixOS.

Некоторые дистрибутивы хотят даже перейти с загрузчика Grub на systemd-boot! Потому знать, как работать с данной системой инициализации, должен каждый сисадмин и просто программист, ибо сейчас он практически везде.

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

А также напишем небольшой скрипт на Python для автомизации некоторых задач. Приятного чтения, господа линуксоиды и просто пользователи!
Читать дальше →
Всего голосов 51: ↑46 и ↓5+53
Комментарии11

Как я собирал свой первый домашний сервер

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров23K

В этой статье поделюсь как я собирал свой первый домашний сервер для виртуализации, с какими трудностями столкнулся на всем пути сборки и как их решал (правильно или неправильно), поделюсь личными выводами. А в конце посчитаем все это дело в цифрах (на первую половину 2023 года). Фото различных элементов прилагаются.

Читать далее
Всего голосов 30: ↑30 и ↓0+41
Комментарии60

Как мы перенесли web-сервис в Телеграм Mini Apps

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров11K

До лета 2023 года перед разработчиками Точка.Нетворк стояла проблема: CJM становился сложным, и это затрудняло работу над продуктом. В итоге мы придумали решение — полностью отказались от веба и сосредоточили развитие платформы только в Mini Apps от Телеграма. Без этого было бы невозможно развивать продукт дальше.

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

Читать далее
Всего голосов 27: ↑27 и ↓0+38
Комментарии4

Почтовый сервер с нуля. Часть третья

Уровень сложностиСложный
Время на прочтение17 мин
Количество просмотров12K

В этой заключительной статье мы подробно рассмотрим процесс настройки почтового сервера с использованием Docker и Exim4, Dovecot, PostfixAdmin и RainLoop. Наша цель — создать полностью функциональный и масштабируемый почтовый сервер, который легко управляется благодаря контейнеризации.

Давайте настраивать
Всего голосов 23: ↑23 и ↓0+26
Комментарии16

Почему СУБД такие медленные

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров34K


Недавно на Хабре публиковался перевод статьи «Просто выберите Postgres» (оригинал, англ. яз) с аргументами, что Postgres — оптимальная БД для десктопных и мобильных приложений. Аналогичное мнение высказывают в других популярных статьях вроде «До свидания MongoDB, здравствуй PostgreSQL». Главным недостатком SQLite называют то, что данные хранятся в одном файле, а MongoDB (а также DynamoDB и Cassandra) — низкую производительность:

«Всё это связано с тем, что подобные базы данных, по сути, представляют собой огромную распределённую хеш-таблицу. Единственные операции, работающие без необходимости сканирования всей базы данных — это поиск по секционному ключу и сканы, при которых используется ключ сортировки.

…Если паттерны доступа существенно изменятся, то может потребоваться полная повторная обработка всех данных».

Более производительные резидентные БД хранят данные в памяти (Redis, Valkey), но их использование ограничено объёмом ОЗУ.

После такого заявления интересно посмотреть на независимые тесты производительности разных СУБД.
Читать дальше →
Всего голосов 96: ↑62 и ↓34+54
Комментарии42

Определяем местоположение по коммитам в git

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров15K

Вот вам карты «возможного» местоположения разработчиков Telegram и React для затравки.

Telegram Desktop. Всего 205 человек. Из них 3 основные. Из них два (работают с 2014 и 2019) в районе Самара-Кавказ (Армения, Грузия, Азербайджан) и один (работает с 2018) вероятно в Турции.

ReactJS. Всего 1854 человек. Основной состав: 14 работает, 26 уволилось. Примерно 50/50 сидят на восточном и западном побережье США.

Читать далее
Всего голосов 51: ↑49 и ↓2+61
Комментарии18

Восстанавливаем удалённые сообщения в Telegram

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров114K

Телеграм довольно ответственно относится к конфиденциальности пользователей. В частности, можно удалить любое сообщение в переписке, как у себя, так и у собеседника. И сообщение действительно удалится, у обоих и навсегда. Но есть пара «но».

Читать далее
Всего голосов 48: ↑45 и ↓3+55
Комментарии79

Как небольшой «тюнинг» Talos Linux увеличил производительность NVMe SSD в 2.5 раза

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров13K

Привет, Хабр!

Мы рассмотрим несколько примитивных настроек Linux, которые могут повысить производительность NVMe SSD дисков в разы. Под катом много интересных подробностей, так что скучно не будет.

Читать далее
Всего голосов 52: ↑51 и ↓1+64
Комментарии22

Разработчики dzen.ru, что с вами не так?

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров16K

Приветствую, Хабравчане!

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

Читать далее
Всего голосов 77: ↑55 и ↓22+49
Комментарии97

Практическое использование тумана

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров9.7K
Картинка Freepik

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

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

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

Примечание: далее будут рассматриваться явления не только собственно природы тумана, но и визуально схожие с ним ;-)
Читать дальше →
Всего голосов 45: ↑42 и ↓3+60
Комментарии17

Что за Epyc такие? Cтранные OEM версии Epyc 2-го и 3-го поколения. Тест AMD Epyc 7C13

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров11K


Наступил очередной сезон, когда меняют оборудование в больших дата-центрах, и на барахолки выплыли странные версии процессоров Epyc 2-го и 3-го поколения, которых нет в официальном модельном ряде. Но которые предлагают весьма выгодное соотношение производительность/цена.

Но поскольку об этих процессорах известно мало, то я решил собрать все слухи о их параметрах, совместимости и производительности. А также купил один из них, 64-х ядерный Epyc 7С13 и протестировал в домашнем подстольном компьютере.

OEM-Эпики могут быть интересны как для создания бюджетных серверов, станций рендеринга, так и просто для энтузиастов и майнеров. Когда-то была волна домашних сборок на Xeon, возможно, сейчас, всё повторится на Epyc.

Информации о совместимости довольно мало, поэтому надеюсь на помощь Хабра-сообщества и внесу в статью информацию, которую знаете вы.
Что за монстры стояли в серверных облачных гигантов?
Всего голосов 44: ↑44 и ↓0+63
Комментарии22

Можно ли получить рут при помощи одной зажигалки?

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров18K
Спойлер: ДА.

Элитный инструмент для хакинга; от вас скрывают, что он уже у вас есть

Прежде чем писать эксплойт, нам нужен баг. А если багов нет, то приходится быть изобретательными — тут нам на помощь приходит внесение неисправностей. Внесение неисправностей (fault injection) может принимать множество различных форм, в том числе быть управляемым ПО повреждением данных, глитчингом питания, тактовым глитчингом, электромагнитными импульсами, лазером и так далее.

Для внесения аппаратных неисправностей обычно требуется специализированное (и дорогостоящее) оборудование. Его цена связана с высокой точностью времени и места внесения неисправностей. Для снижения цен было совершено множество отважных попыток такими проектами, как PicoEMP на основе RP2040 и вплоть до «Laser Fault Injection for The Masses». (Неожиданная популярность RP2040 связана с его низкой ценой и периферией PIO, обеспечивающей ввод-вывод с чёткими таймингами и задержками.)

Какое-то время назад я прочитал об использовании соединённой с индуктором пьезоэлектрической зажигалки для барбекю в качестве низкобюджетного устройства для внесения электромагнитных неисправностей (electro-magnetic fault injection, EMFI). Меня захватила эта идея. Я задался вопросом, а чего можно добиться при помощи такого примитивного устройства? На тот момент мне пришёл в голову лишь эксплойтинг работающей на Arduino программной реализации AES при помощи DFA. И это сработало!

Но этого мне было мало. Я хотел эксплойтить что-то более «реальное», но на то время у меня закончились идеи.

Перенесёмся в наше время: пару недель назад уже ожидалось объявление о выпуске Nintendo Switch 2. Предполагается, что системное ПО Switch 2 будет практически таким же, как и на Switch 1, а программные баги для изучения у нас закончились. Поэтому у меня возникла мотивация смахнуть пыл с моих навыков взлома оборудования, и я вернулся к мыслям о низкобюджетном EMFI.
Читать дальше →
Всего голосов 70: ↑69 и ↓1+95
Комментарии17

Что делать, если драйвера в смартфоне нет. Продолжаем эксперименты с «Авророй»

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров12K

Привет, читатель!

Ранее я купил телефон на ОС «Аврора» и стал участником программы бета-тестирования. Это дало возможность разрабатывать ПО для мобильных устройств с применением Qt. Но внезапно я столкнулся с проблемой: к смартфону нельзя подключиться через старый-добрый USB. Как оказалось, на девайсе «из коробки» нет нужных драйверов. Если вам интересно, как я решил эту проблему и подключился через телефон, прошу под кат!
Читать дальше →
Всего голосов 59: ↑58 и ↓1+71
Комментарии4

SOLID на котиках

Время на прочтение7 мин
Количество просмотров32K


Каждый программист хоть раз слышал о принципах SOLID. На собеседованиях и экзаменах в вузах многие из нас пытались вспомнить, о чем же был тот самый принцип Лисков. Однако вряд ли цель преподавателей и интервьюеров — заставить нас заучивать строчки из учебников. SOLID действительно помогает писать качественный код, когда во всем разберешься! Если вы этого еще не сделали, добро пожаловать под кат. Еще раз взглянем на то, как устроены всем известные принципы. Обещаю — без духоты, все рассмотрим на примерах с котиками.
Читать дальше →
Всего голосов 115: ↑107 и ↓8+119
Комментарии82

Как подружить Flutter и Huawei — настраиваем App Gallery. Часть 1

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров1.1K

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

Обычно готовить приложение к публикации в таких сторах особо не нужно, но есть исключение — App Gallery.

Меня зовут Самир, я Flutter-разработчик в Surf, и в этой части я расскажу, как всё-таки подружить Huawei и Flutter.

Читать дальше
Всего голосов 8: ↑7 и ↓1+8
Комментарии0

Как в цифровом мире безопасно рассказать информацию не выдавая себя?

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров8.9K

К примеру контрибьютер опенсорс проекта хочет рассказать о планах но при этом остаться анонимным.

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

Или просто какая-то тема запрещена для обсуждения которую очень хочется обсудить.

Как же быть? Использовать кольцевые подписи!

Читать далее
Всего голосов 21: ↑19 и ↓2+23
Комментарии4

Собираем бюджетный домашний NAS на 14 ТБ. Часть 2 — софт, железо и всё такое

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров37K


Сборка из статьи «Собираем бюджетный домашний NAS на 14 ТБ» и по сей день работает прекрасно, позволяя взаимодействовать с файлами по сети через SMB шару. Но мои задумки обширнее того, что реализовано сейчас. Об апгрейдах, новых приложениях и разных удобных фишках TrueNAS поведаю далее в статье.
Читать дальше →
Всего голосов 59: ↑58 и ↓1+80
Комментарии107

Альтернативный список заблокированных в РФ ресурсов Re:filter

Время на прочтение5 мин
Количество просмотров41K

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

Получилось реализовать в достаточно компактные списки доменов и адресов, которые не перегрузят среднестатистическое устройство, но при этом список будут разделять заблокированные ресурсы и не позволят, например, пускать через VPN трафик на незаблокированные ресурсы, а значит не нарушат работу сервисов, онлайн игр и т.д. непредсказуемым образом

Читать далее
Всего голосов 121: ↑121 и ↓0+139
Комментарии58
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность