Как стать автором
Обновить
201
0.3

Пользователь

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 20: ↑17 и ↓3 +14
Комментарии 16

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

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

Введение


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

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

Для начала разберёмся, как работает алгоритм, а затем построчно напишем его. Затем мы пересмотрим код, добавим несколько возможностей и оптимизируем его размер. Я постарался сделать пост максимально доступным и дружелюбным, но вам поможет приличное знание программирования, Rust и основ геометрии.
Читать дальше →
Всего голосов 78: ↑77 и ↓1 +76
Комментарии 10

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

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

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

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

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

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

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

PHPStorm + XDebug + Docker

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 329: ↑324 и ↓5 +319
Комментарии 518

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

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

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

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

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

Время на прочтение 52 мин
Количество просмотров 134K
Привет, Хабр!

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

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

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

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

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

Пост написан в соавторстве с Лобановым Виталием (hdablin). Текст получился довольно длинным, в нём мало картинок и много пространных рассуждений. Но если вам интересны проблемы диагностики в психиатрии и смежных дисциплинах, добро пожаловать под кат.
Читать дальше →
Всего голосов 154: ↑142 и ↓12 +130
Комментарии 606

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

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

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

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

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

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

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

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

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

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

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

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

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-дней.

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

Читать далее
Всего голосов 119: ↑114 и ↓5 +109
Комментарии 185

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

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


Читать дальше →
Всего голосов 33: ↑32 и ↓1 +31
Комментарии 16

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

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


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

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

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

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

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

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

image

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

Bitcoin in a nutshell — Cryptography

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

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

intro
Читать дальше →
Всего голосов 43: ↑38 и ↓5 +33
Комментарии 10

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

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

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



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

Читать дальше →
Всего голосов 76: ↑70 и ↓6 +64
Комментарии 42

GitHub Flow

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

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


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



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

Читать дальше →
Всего голосов 48: ↑32 и ↓16 +16
Комментарии 23

Отлаживаем правила RewriteRule, или немного об интимной жизни mod_rewrite

Время на прочтение 13 мин
Количество просмотров 91K
У меня RewriteEngine всегда был довольно стрессовой темой. Только вот недавно я вдруг обнаружил, что все как-то улеглось и стало более или менее понятно. Поскольку я совершенно обычный человек, я уверен, что ситуация ошибки конфигурации веб-сервера «доставала» не одного лишь меня, и я спешу поделиться своим опытом.

Получилось нечто среднее между руководством по использованию модуля mod_rewrite и своеобразным справочником по конфигурированию веб-сервера с помощью файла .htaccess. Попутно хотелось бы заострить внимание на особо сложных или неочевидных моментах.

Предполагается, что читатель использует урл-рерайтинг в своей работе, знает, в общих чертах, что такое RewriteEngine и уже провел несколько часов за его настройкой. Эта статья не совсем для начинающих, но и не для супер-профи, конечно.

Читать дальше →
Всего голосов 27: ↑22 и ↓5 +17
Комментарии 14

Штурм и натиск генной терапии старения

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

Экспрессия генов и генная терапия


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

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

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

Вначале немного углубимся в теорию. Молекула ДНК — дезоксирибонуклеиновая кислота — является носителем кода, который управляет развитием и функционированием всего живого. В ДНК содержится программа, которая обеспечивает превращение одной единственной исходной клетки в слаженно работающий организм, состоящий из многочисленных клеток, объединенных в разнообразные ткани и органы.
Читать дальше →
Всего голосов 27: ↑27 и ↓0 +27
Комментарии 54

Информация

В рейтинге
1 862-й
Зарегистрирован
Активность