Search
Write a publication
Pull to refresh
181
0.1
Send message

Как самому за один вечер собрать минимальную ОС Linux из исходного кода

Level of difficultyMedium
Reading time11 min
Views107K
image

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

Ещё больше не даёт покоя мне тот факт, что все ядра операционной системы Linux, которые работают на различных устройствах и серверах, собраны из исходного кода, находящегося в репозитории на сайте kernel.org.

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

Мне всегда хотелось собрать операционную систему Linux самому из исходного кода, но процесс этот всегда казался сложным и запутанным, да и многого я не понимал. Но всё-таки в определённый момент времени я накопил достаточное количество знаний, чтобы осуществить свою мечту. В этой статье я хочу рассказать вам, как собрать минимальную Linux из исходного кода и запустить её у себя на компьютере.
Читать дальше →

OpenProject на практике

Level of difficultyEasy
Reading time9 min
Views22K

В этой статье рассмотрим реальную историю внедрения приложения для управления проектами OpenProject. После быстрого гугления и поиска по Хабру не удалось найти ни короткого русскоязычного мануала по нему, ни задокументированного опыта его применения на реальных кейсах. Будем исправлять ситуацию!

Для нетерпеливых: OpenProject спустя несколько месяцев прижился, и все к нему привыкли. Хотя, процесс был не из простых. Гнев, торг, затем принятие. Но, давайте по порядку. 

Читать далее

Расчет количества газа необходимого для выполнения транзакции в Ethereum

Level of difficultyHard
Reading time17 min
Views3.2K

Привет, Хабр! Продолжаю серию статей о газе в Ethereum. ​​В этой статье подробно разберем составляющие параметра gasUsed , без которого невозможно подсчитать стоимость транзакции. Будем разбирать формулы из "желтой бумаги" и копаться в коде клиента "Geth". Это даст основу для понимания, как газ потребляется во время исполнения любой транзакции. Если вы еще не читали статью про то, как рассчитывается комиссия за газ в Ethereum, то она здесь.

Читать далее

Расчет количества газа необходимого для выполнения транзакции в Ethereum. Часть 2 — storage

Level of difficultyHard
Reading time18 min
Views2K

Привет всем! В прошлой статье мы с вами изучили общую механику расчета газа при выполнении транзакций. В этой статье мы сфокусируемся на самых «дорогих» операциях работы с хранилищем смарт‑контракта (storage), а также пройдемся по истории EIPs, связанных с расчетом газа в Ethereum, чтобы увидеть, по каким принципам сообщество принимало решения об изменениях «правил игры» и как сегодня, на основе этой истории, правильно выполнять такие расчеты.

Статья для тех, кто хочет разобраться почему слоты в storage бывают теплыми и холодными, грязными или свежими и за что возвращают газ. Также затронем списки доступа и intrinsic gas. Наконец увидим полную картину учета газа от инициализации транзакции до ее выполнения.

Читать далее

Разработка кросплатформенного приложения на Qt с использованием нейросетей, обученных на tensorflow

Level of difficultyHard
Reading time14 min
Views11K

Разработка кроссплатформенного приложения на Qt с использованием нейросетей обученных на tensorflow.

Читать далее

Пишем игру от первого лица в 2КБ на Rust

Level of difficultyMedium
Reading time21 min
Views15K

Введение


Поначалу кажется, что создать игру от первого лица без движка или графического API практические невозможно. В этом посте я расскажу, как это сделать при помощи алгоритма под названием ray casting.

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

Для начала разберёмся, как работает алгоритм, а затем построчно напишем его. Затем мы пересмотрим код, добавим несколько возможностей и оптимизируем его размер. Я постарался сделать пост максимально доступным и дружелюбным, но вам поможет приличное знание программирования, Rust и основ геометрии.
Читать дальше →

Бухучёт для программистов

Level of difficultyMedium
Reading time11 min
Views8.9K

Любому образованному человеку непременно нужно иметь общее представление о бухгалтерском учёте. Так же, как и математика, естественные науки, программирование, музыка, литература, история, да и много чего ещё, бухучёт — это одна из тех сфер знаний, которые помогают нам понимать этот мир. Хотя работа с деньгами — не особо увлекательное занятие, это — неотъемлемая часть жизни, поэтому вполне можно уделить некоторое время на то, чтобы в этом разобраться.

Я полагаю, что, к сожалению, большинство бухгалтеров совсем не умеют понятно рассказывать о том, чем они занимаются, объяснять это другим людям. Бухучёт — это область, полная жаргона, акронимов, странных терминов, пришедших из глубины веков. Да у меня даже от книги «Бухучёт для чайников» кружится голова. А на самом деле, наверняка, всё это не может быть таким уж сложным.

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

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

Читать далее

PHPStorm + XDebug + Docker

Reading time3 min
Views41K

Ещё одна статья на избитую тему? Да! Потому что за два часа поиска не нашёл ни одной, по которой можно было пройтись от и до и получить работающее окружение.

Шагов, на самом деле, немного, все очень простые, нужно лишь...

Читать далее

Интернет-цензура и обход блокировок: не время расслабляться

Reading time10 min
Views178K

Disclaimer: практически всё описанное в статье, не является чем-то принципиально новым или инновационным - оно давно известно и придумано, используется в разных странах мира, реализовано в коде и описано в научных и технических публикациях, поэтому никакого ящика Пандоры я не открываю.

Нередко на Хабре в темах, посвященных блокировкам ресурсов встречаются забавные заявления, вида "Я настроил TLS-VPN, теперь будут смотреть что хочу и цензоры мой VPN не заблокируют", "Я использую SSH туннель, значит все ок, не забанят же они SSH целиком", и подобное. Что ж, давайте проанализируем опыт других стран и подумаем, как же оно может быть на самом деле.

Читать далее

В очередь, ...! Как управлять состоянием системы через события

Reading time11 min
Views11K

Существует множество разных подходов к построению архитектуры серверных приложений. В данной статье рассмотрим Event-driven архитектуру (она же событийно-ориентированная). Рассмотрим основные принципы, как перейти от связей Компонент А <-> Компонент В, к связям через события Компонент А -> Событие А -> Компонент Б и зачем это нужно?

Читать далее

Как вычисляют сумасшедших — 2: блеск и нищета патопсихологической диагностики

Reading time52 min
Views138K
Привет, Хабр!

Меня зовут Кристина, я клинический психолог. Около двух лет назад я опубликовала на Geektimes пост о патопсихологической диагностике, в котором рассказала о том, как производится исследование психики пациентов в психиатрическом стационаре на предмет наличия или отсутствия нарушений мышления, памяти и других функций психики.

image
Всё, что нужно знать о нашей патопсихологической диагностике. Источник: [43, стр. 133-134].

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

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

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

Пост написан в соавторстве с Лобановым Виталием (hdablin). Текст получился довольно длинным, в нём мало картинок и много пространных рассуждений. Но если вам интересны проблемы диагностики в психиатрии и смежных дисциплинах, добро пожаловать под кат.
Читать дальше →

Сохраняем состояние страницы после авторизации VK с помощью Broadcast Channel API

Reading time3 min
Views2.7K

Недавно в работе с одним из наших клиентов мы столкнулись с проблемой в пользовательском сценарии: VK API требует конкретный, железный URL для редиректа после авторизации. А у нас были сотни ссылок с динамическими параметрами, с которым могла начаться авторизация. 

Меня зовут Фёдор Макареев, я frontend-разработчик в Evrone. В статье расскажу, как я применил Broadcast Channel API, чтобы не терять состояние до авторизации и не бесить пользователей.

Читать далее

Как создать переводчик, который переводит лучше, чем Google Translate

Reading time8 min
Views33K

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

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

Читать далее

ruDALL-E: генерируем изображения по текстовому описанию, или Самый большой вычислительный проект в России

Reading time10 min
Views172K

2021 год в машинном обучении ознаменовался мультимодальностью — активно развиваются нейросети, работающие одновременно с изображениями, текстами, речью, музыкой. Правит балом, как обычно, OpenAI, но, несмотря на слово «open» в своём названии, не спешит выкладывать модели в открытый доступ. В начале года компания представила нейросеть DALL-E, генерирующую любые изображения размером 256×256 пикселей по текстовому описанию. В качестве опорного материала для сообщества были доступны статья на arxiv и примеры в блоге

С момента выхода DALL-E к проблеме активно подключились китайские исследователи: открытый код нейросети CogView позволяет решить ту же проблему — получать изображения из текстов. Но что в России? Разобрать, понять, обучить — уже, можно сказать, наш инженерный девиз. Мы нырнули с головой в новый проект и сегодня рассказываем, как создали с нуля полный пайплайн для генерации изображений по описаниям на русском языке.

В проекте активно участвовали команды SberAI, SberDevices, Самарского университета, AIRI и SberCloud.

Мы обучили две версии модели разного размера и дали им имена великих российских абстракционистов – Василия Кандинского и Казимира Малевича:

1. ruDALL-E Kandinsky (XXL) с 12 миллиардами параметров;

2. ruDALL-E Malevich (XL), содержащая 1,3 миллиарда параметров.

Некоторые версии наших моделей доступны в open source уже сейчас:

1. ruDALL-E Malevich (XL) [GitHub, HuggingFace]

2. Sber VQ-GAN [GitHub, HuggingFace]

3. ruCLIP Small [GitHub, HuggingFace]

4. Super Resolution (Real ESRGAN) [GitHub, HuggingFace]

Две последние модели встроены в пайплайн генерации изображений по тексту (об этом расскажем ниже).

Версии моделей ruDALL-E Malevich (XL), ruDALL-E Kandinsky (XXL), ruCLIP Small, ruCLIP Large, Super Resolution (Real ESRGAN) также скоро будут доступны в DataHub.

Обучение нейросети ruDALL-E на кластере Christofari стало самой большой вычислительной задачей в России: 

1. Модель ruDALL-E Kandinsky (XXL) обучалась 37 дней на 512 GPU TESLA V100, а затем ещё 11 дней на 128 GPU TESLA V100 — всего 20 352 GPU-дней;

2. Модель ruDALL-E Malevich (XL) обучалась 8 дней на 128 GPU TESLA V100, а затем еще 15 дней на 192  GPU TESLA V100 – всего 3 904 GPU-дня.

Таким образом, суммарно обучение обеих моделей заняло 24 256 GPU-дней.

Разберём возможности наших генеративных моделей.

Читать далее

Bluetooth LE не так уж и страшен, или Как улучшить пользовательский опыт без особых усилий

Reading time13 min
Views27K
Недавно мы в команде придумали и реализовали функцию передачи денег по воздуху с помощью технологии Bluetooth LE. Я хочу рассказать вам, как мы это сделали и что Apple предоставляет нам из инструментов. Многие разработчики думают что Bluetooth — это сложно, ведь это достаточно низкоуровневый протокол, и по нему не так много специалистов. Но всё не так страшно, и на самом деле использовать эту функцию очень просто! А те функции, которые можно реализовать с помощью Bluetooth LE, безусловно, интересны и впоследствии позволят выделить ваше приложение среди конкурентов.


Читать дальше →

Как в Леруа Мерлен можно купить товар со склада поставщика, которого нет в ассортименте магазина

Reading time9 min
Views33K


У нас в Леруа есть много товаров, которые хотелось бы поставить на полки. Например, побольше видов обоев. Или профессиональное оборудование. У нас есть материалы для отделки спален, но нет кроватей и постельного белья. И так далее. 16 миллионов человек ежемесячно посещают сайт при населении России 146,8 миллиона человек. Поверьте, нашим покупателям хочется много чего, кроме 40 тысяч товаров основного ассортимента.

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

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

В случае успеха это такое резкое изменение бизнес-модели, что можно гордиться ещё года три. А внедрять всё пару месяцев. Как нам поначалу показалось.
Читать дальше →

Как я переехал… домой, или мой ответ автору статьи о «беспощадной муке»

Reading time11 min
Views27K
На Хабре обсуждаются переезды в крупные города или за рубеж за хорошей работой. У меня другая история. Я успел попробовать разную обстановку и схемы сотрудничества с работодателем и выбрал то, что лучше всего соответствует моему складу характера, — с удовольствием вернулся в родной город, попутно узнав многое о самом себе и удаленке. Уже почти год я занимаюсь функциональным и автоматизированным тестированием в питерской компании «Максилект», проживая при этом в Красноярске (сдвиг во времени +4 часа).

image

Честно скажу, хотел рассказать о своем опыте в отрыве от классических мифов об удаленной работе. Но пока готовил текст, на Хабре вышла статья схожей тематики от «менеджера околоайтишной сферы». Как сама статья, так и комментарии к ней демонстрируют принципиально иной (скажем откровенно, практически никакой) уровень зрелости и сотрудника, и организации, согласившейся на такой формат. Почему? Отвечу субъективным мнением на субъективное мнение — подробности под катом…
Читать дальше →

Bitcoin in a nutshell — Cryptography

Reading time12 min
Views123K
Одна из причин, почему Bitcoin продолжает привлекать столько внимания — это его исключительная «математичность». Сатоши Накамото удалось создать систему, которая способна функционировать при полном отсутствии доверия между ее участниками. Все взаимодействия основаны на строгой математике, никакого человеческого фактора — вот в чем была революционность идеи, а не в одноранговой сети, как многие думают. Поэтому первую главу я решил посвятить именно математическим основам Bitcoin.

Ниже я постараюсь объяснить вам самые базовые вещи — эллиптические кривые, ECC, приватные / публичные ключи и так далее. По возможности я буду иллюстрировать свои слова примерами кода, преимущественно на Python 2.7, если что-то непонятно — спрашивайте в комментариях.

intro
Читать дальше →

Парсим мемы в питоне: как обойти серверную блокировку

Reading time26 min
Views105K

Новогодние праздники — прекрасный повод попрокрастинировать в уютной домашней обстановке и вспомнить дорогие сердцу мемы из 2k17, уходящие навсегда, как совесть Electronic Arts.



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

Читать дальше →

GitHub Flow

Reading time4 min
Views114K

Увидев в очередной раз базворд GitFlow я психанул и решил перевести описание более простой и менее проблемной схемы работы с ветками под названием GitHub Flow. Именно её имеет смысл использовать по умолчанию, переходя к какой-то другой лишь в случае непреодолимых обстоятельств.


Создайте ветвь



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

Читать дальше →

Information

Rating
5,310-th
Registered
Activity