Pull to refresh
16
0.2
Сергей @abcdsash

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

Send message

Побитовые операции: для чего нужны основы информатики Solidity-разработчику

Reading time10 min
Views990

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

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

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

Читать далее
Total votes 5: ↑7 and ↓-2+9
Comments2

Как заново реализовать тетрис

Level of difficultyMedium
Reading time9 min
Views4.7K


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

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

На самом деле, это не первая моя игра на C – немного ранее я уже успел написать на С клон сапёра. В блоге также об этом не писал, но, может быть, напишу в будущем, так как проект получился очень интересным. Пожалуй, этот опыт пригодился мне в работе над «Тетрисом».
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments28

NumPy для самых маленьких

Level of difficultyEasy
Reading time7 min
Views13K

Математика везде в нашей жизни, но в программировании, а особенно ML ее два раза больше. Обычно Питон берут в пример самого "научного" языка программирования из-за математических фреймворков. Как не Питон может помочь оперировать математическими абстракциями, некоторые из сферы ресерча пользуются исключительно питоном для всяких научных изысканий — сегодня мы поговорим про библиотеку NumPy и работу с массивами. 

Самая новичковая "библиотека" с примочками в виде SciPy и Matplotlib предназначена для работы с многомерными массивами. NumPy – основа для многих других библиотек для машинного обучения, таких как SciPy, Pandas, Scikit-learn и TensorFlow. 

Pandas, например, строится поверх NumPy и позволяет работать со структурами данных высокого уровня по типу DataFrame и Series. При помощи NumPy можно проводить преобразование категориальных данных в числовой формат, например, с использованием кодирования one-hot.

Читать далее
Total votes 16: ↑15 and ↓1+14
Comments2

Последнее издание культовой книги «Искусство схемотехники» стало доступно русскоязычным читателям

Level of difficultyEasy
Reading time4 min
Views37K

“Электронщики, как учит нас Парацельс, самозарождаются среди паяльников, радиодеталей, универсальных плат и проводов” (@teap0t)

Возможно, это действительно так, но без хорошей книги - учебника или справочника, которые служат катализатором, этот процесс может так и не завершиться. А лучшей книгой для начинающих разработчиков электронных схем и практически библией электронщиков последние сорок лет, считается "Искусство схемотехники" (англ. - The Art of Electronics) Пауля Хоровица и Уинфилда Хилла.

Читать далее
Total votes 64: ↑73 and ↓-9+82
Comments133

Pandas: от хаоса к красоте кода

Level of difficultyEasy
Reading time9 min
Views13K

Работа с pandas.DataFrame может превратиться в неловкую кучу старого (не очень) доброго спагетти-кода. Я и мои коллеги часто используем эту библиотеку, и хотя мы стараемся придерживаться хороших практик программирования, иногда мы все равно мешаем друг другу, создавая запутанный код.

Я собрала несколько советов и подводных камней, которых следует избегать, чтобы сделать код на pandas чистым. Надеюсь, вам они тоже будут полезны. Также я буду ссылаться на классическую книгу Роберта Мартина «Чистый код: создание, анализ и рефакторинг».

Погнали!
Total votes 7: ↑7 and ↓0+7
Comments15

Разница между pool.map и pool.map_async в Python

Level of difficultyEasy
Reading time2 min
Views2.2K

Еще одна статья-шпаргалка о модуле multiprocessing в Python, без воды, от новичка для новичков многопроцессорного программирования.

pool.map и pool.map_async являются методами модуля multiprocessing.Pool в Python, которые позволяют параллельно выполнять функции на нескольких процессах.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments3

Глубокая Теория Связей 0.0.1

Level of difficultyHard
Reading time24 min
Views4.5K

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

Именно над этим мы и работаем. Эта теория, если у нас всё получится, станет единой метатеорией всего.

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

Как и всё что мы делали до этого, теория связей публикуется и передаётся в общественное достояние и принадлежит человечеству. То есть именно тебе. У этого труда множество авторов, однако сам этот труд намного важнее конкретного авторства. И мы надеемся уже сегодня это сможет быть полезно каждому.

Мы приглашаем тебя стать частью этого увлекательного приключения.

Стать свидетелем рождения метатеории
Total votes 20: ↑17 and ↓3+14
Comments9

Индексация заработной платы: почему работодатель обязан повышать тебе зарплату

Level of difficultyEasy
Reading time5 min
Views53K

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

Читать далее
Total votes 125: ↑111 and ↓14+97
Comments284

Адаптация алгоритма Дейкстры для расчёта кратчайших путей в IP-сетях

Level of difficultyMedium
Reading time22 min
Views5K

Адаптация алгоритма Дейкстры для расчёта кратчайших путей в IP-сетях.

Для сетевиков, программистов и интересующихся.

Читать далее
Total votes 11: ↑9 and ↓2+7
Comments8

SwiftUI уроки (часть 5)

Reading time14 min
Views1.2K

ссылка на 4ю часть

Buttons, Labels, Gradients

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

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments4

Дерево решений (CART). От теоретических основ до продвинутых техник и реализации с нуля на Python

Level of difficultyHard
Reading time22 min
Views5K

Дерево решений CART (Classification and Regressoin Tree) — алгоритм классификации и регрессии, основанный на бинарном дереве и являющийся фундаментальным компонентом случайного леса и бустингов, которые входят в число самых мощных алгоритмов машинного обучения на сегодняшний день. Деревья также могут быть не бинарными в зависимости от реализации. К другим популярным реализациям решающего дерева относятся следующие: ID3, C4.5, C5.0.

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments0

Основные типы распределений вероятностей в примерах

Level of difficultyMedium
Reading time15 min
Views13K

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

Читать далее
Total votes 58: ↑58 and ↓0+58
Comments11

Разработка Desktop приложений на Python и библиотеки PySide6/PyQt6. Часть 1. Установка и первое приложение на PySide6

Level of difficultyEasy
Reading time4 min
Views12K

Сегодня мы с Вами рассмотрим прекрасную библиотеку PySide6, которая является оберткой для взаимодействия с Qt при помощи языка Python, которые позволяет вам использовать Python для написания desktop-приложений Qt.

Читать далее
Total votes 11: ↑7 and ↓4+3
Comments32

Разработка Desktop приложений на Python и библиотеки PySide6/PyQt6. Часть 2. Знакомство с виджетами и Qt Designer

Level of difficultyEasy
Reading time5 min
Views8.7K

Мы продолжаем изучать PySide6/PyQt6 и сейчас мы с Вами познакомимся с виджетами, компоновкой и Qt Designer

Ссылка на 1 урок с установкой PySide6 и создания первого приложения.

PySide6 включают в себя довольно большое количество встроенных виджетов. Вы можете найти более подробную информацию в официальной документации PySide6.

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments8

Apple M1 — разбор с точки зрения аппаратной безопасности

Level of difficultyEasy
Reading time11 min
Views9.4K
Давным-давно, в далёкой-далёкой яблочной компании зародилась идея создать собственный процессор для ноутбуков. И вот, спустя годы, Apple презентовала свой десктопный процессор M1.


В этой статье мы сосредоточимся на разборе безопасности процессора M1 от Apple. Компания всегда уделяла значительное внимание информационной безопасности своих устройств, особенно мобильных. Это не значит, что iPhone или iPad нельзя взломать. Нет, можно, конечно, вопрос лишь в цене. Просто цена взлома iOS существенно выше, чем взлома устройств на других ОС.
Читать дальше →
Total votes 46: ↑39 and ↓7+32
Comments8

Xv6: учебная Unix-подобная ОС. Глава 6. Блокировки

Level of difficultyMedium
Reading time13 min
Views2.2K

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

Потоки конкурируют за доступ к структуре данных. Ядро кишит структурами, которые потоки используют совместно. Блокировки защищают данные при конкурентном доступе.

Глава расскажет, зачем нужны блокировки, как xv6 реализует и использует блокировки.

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments3

Изучение недооцененной силы Биткоин утилит: подробное руководство в Google Colab

Reading time29 min
Views2.4K

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

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

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

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

Читать далее
Total votes 19: ↑5 and ↓14-9
Comments5

Книга «Python для сложных задач: наука о данных. 2-е межд. изд.»

Reading time11 min
Views8.5K
image Привет, Хаброжители!

Python — первоклассный инструмент, и в первую очередь благодаря наличию множества библиотек для хранения, анализа и обработки данных. Отдельные части стека Python описываются во многих источниках, но только в новом издании «Python для сложных задач» вы найдете подробное описание IPython, NumPy, pandas, Matplotlib, Scikit-Learn и др.

Специалисты по обработке данных, знакомые с языком Python, найдут во втором издании решения таких повседневных задач, как обработка, преобразование и подготовка данных, визуализация различных типов данных, использование данных для построения статистических моделей и моделей машинного обучения. Проще говоря, эта книга является идеальным справочником по научным вычислениям в Python.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments3

Вероятностный метод майнинга Bitcoin

Reading time19 min
Views20K


Думаю немного бреда на вторник не сильно повредит рабочей неделе. У меня хобби, на досуге я пытаюсь придумать, как взломать алгоритм майнинга bitcoin, избежать тупого перебора нонсе и находить решение задачи подбора хэша с минимальным расходом энергии. Сразу скажу результата я, конечно, пока не достиг, но тем не менее, почему бы не изложить в письменном виде идеи, которые рождаются в голове? Куда-то же их нужно девать…

Несмотря на бредовость изложенных ниже идей я думаю эта статья может быть полезна тому, кто изучает

  1. язык C++ и его темплейты
  2. немного цифровой схемотехники
  3. немного теории вероятности и вероятностной арифметики
  4. детально алгоритм хэширования bitcoin
Читать дальше →
Total votes 51: ↑41 and ↓10+31
Comments30

Как мы научились делить видео на сцены с помощью хитрой математики

Reading time7 min
Views16K
За 10 лет существования ivi мы собрали базу из 90000 видео разной длины, размера и качества. Каждую неделю появляются сотни новых. У нас есть гигабайты метаданных, которые полезны для рекомендаций, упрощают навигацию по сервису и настройку рекламы. Но извлекать информацию непосредственно из видео мы начали только два года назад.

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

image
Читать дальше →
Total votes 65: ↑65 and ↓0+65
Comments19
1
23 ...

Information

Rating
2,169-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity