Pull to refresh
3
0.2
Николай Синёв @NickSin

Инженер

Send message

Как книга «Электроника шаг за шагом» обрела новую жизнь

Reading time7 min
Views93K


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

Хорошие новости для тех, кто следил за историей переиздания книги Рудольфа Свореня «Электроника шаг за шагом» — книга вот-вот, на днях, покинет типографию и попадёт в руки читателей. Почему так долго пришлось ждать новое издание книги? Что изменилось в тексте? А иллюстрации всё те же? Что со схемами  — по-прежнему, на МП39, с плюсовой «землей»? Будет ли электронная версия книги? На эти и другие вопросы, я попытаюсь ответить ниже.
Читать дальше →
Total votes 112: ↑111 and ↓1+144
Comments156

Яндекс.Функции, Sublime Text и навыки для Алисы

Reading time4 min
Views2.9K
27 июня Яндекс проводил онлайн-хакатон по разработке навыков для Алисы.

Решил и я принять в нем участие. Ранее навыки для Алисы я уже делал, но хостил их все на Google App Engine. Тут же я решил изучить что-то новое в рамках Хакатон. Яндекс активно продвигает свои Функции в Яндекс.Облаке для разработки навыков. Для навыков они бесплатны (правда, бесплатно не всё).
Вот и нашлась тема для изучения
Total votes 3: ↑3 and ↓0+3
Comments1

Руководство по Git. Часть №1: все, что нужно знать про каталог .git

Reading time4 min
Views59K



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

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

Это первая часть гайда по Git из блога Pierre de Wulf в переводе команды Mail.ru Cloud Solutions
Читать дальше →
Total votes 47: ↑36 and ↓11+42
Comments64

Обсуждение: стандартные UNIX-утилиты, которые мало кто использовал и использует сейчас

Reading time3 min
Views11K
Неделю назад Дуглас Макилрой (Douglas McIlroy), разработчик конвейера UNIX и автор понятия «компонентно-ориентированное программирование», рассказал об интересных и необычных UNIX-программах, не нашедших широкого применения. Публикация запустила активное обсуждение на Hacker News. Мы собрали самое интересное и будем рады, если вы присоединитесь к дискуссии.

Читать дальше →
Total votes 18: ↑12 and ↓6+14
Comments9

Простая хэш-таблица для GPU

Reading time11 min
Views13K

Я выложил на Github новый проект A Simple GPU Hash Table.

Это простая хэш-таблица для GPU, способная обрабатывать в секунду сотни миллионов вставок. На моём ноутбуке с NVIDIA GTX 1060 код вставляет 64 миллиона случайно сгенерированных пар ключ-значение примерно за 210 мс и удаляет 32 миллиона пар примерно за 64 мс.

То есть скорость на ноутбуке составляет примерно 300 млн вставок/сек и 500 млн удалений/сек.

Таблица написана на CUDA, хотя ту же методику можно применить к HLSL или GLSL. У реализации есть несколько ограничений, обеспечивающих высокую производительность на видеокарте:

  • Обрабатываются только 32-битные ключи и такие же значения.
  • Хэш-таблица имеет фиксированный размер.
  • И этот размер должен быть равен двум в степени.

Для ключей и значений нужно зарезервировать простой разграничивающий маркер (в приведённом коде это 0xffffffff).
Читать дальше →
Total votes 39: ↑36 and ↓3+47
Comments19

9 советов для Windows Terminal от Скотта Хансельмана

Reading time2 min
Views14K
Привет, Хабр! Возможно вы слышали, что совсем скоро выходит новый Windows Terminal. Мы уже писали об этом здесь. Наш коллега Скотт Хансельман подготовил несколько советов по тому, как работать с новым терминалом. Присоединяйтесь!

image
Читать дальше →
Total votes 13: ↑12 and ↓1+15
Comments8

Оптимизация кода на Python с помощью ctypes

Reading time4 min
Views12K
Перевод статьи подготовлен специально для студентов курса «Разработчик Python».




Внимание: код в этой статье лицензирован под GNU AGPLv3.

Я написал это руководство, поскольку не смог найти такого, которое будет объединять в себе все полезное о ctypes. Надеюсь, эта статья сделает чью-то жизнь намного легче.

Содержание:

  1. Базовые оптимизации
  2. сtypes
  3. Компиляция под Python
  4. Структуры в Python
  5. Вызов вашего кода на С
  6. PyPy
Читать дальше →
Total votes 16: ↑10 and ↓6+9
Comments0

Сказ об опасном std::enable_shared_from_this, или антипаттерн «Зомби» — разбор полётов

Reading time31 min
Views5.2K
В настоящей статье приводится разбор вариантов устранения антипаттерна «Зомби», описанного в первой части: Сказ об опасном std::enable_shared_from_this, или антипаттерн «Зомби».
Читать дальше →
Total votes 6: ↑5 and ↓1+7
Comments36

Swift 5.2 — что нового?

Reading time3 min
Views8K
Первая бета Swift 5.2 только что появилась в Xcode 11.4 beta, и в ней произошли изменения в языке, наряду с сокращением размера кода и используемой памяти, а также появилась новая система диагностики, которая позволит быстрее выявлять ошибки.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments23

Реверс-инжиниринг домашнего роутера с помощью binwalk. Доверяете софту своего роутера?

Reading time10 min
Views66K


Несколько дней назад, я решил провести реверс-инжиниринг прошивки своего роутера используя binwalk.


Я купил себе TP-Link Archer C7 home router. Не самый лучший роутер, но для моих нужд вполне хватает.


Каждый раз когда я покупаю новый роутер, я устанавливаю OpenWRT. Зачем? Как правило производители не сильно заботятся о поддержке своих роутеров и со временем софт устаревает, появляются уязвимости и так далее, в общем вы поняли. Поэтому я предпочитаю хорошо поддерживаемую сообществом open-source прошивку OpenWRT.


Скачав себе OpenWRT, я так же скачал последний образ прошивки под мой новый Archer C7 с официального сайта и решил проанализировать его. Чисто ради фана и рассказать о binwalk.

Читать дальше →
Total votes 41: ↑40 and ↓1+55
Comments16

Последние версии компиляторов D

Reading time3 min
Views3.9K
Группа разработчиков LDC закрыла ушедший год версией 1.19.0 компилятора D, использующего LLVM, а основная команда начала новый год версией 2.090.0 эталонного компилятора DMD. И если вы еще не слышали, не так давно появились важные новости о D-компиляторе на базе GCC, GDC. Наверстываем!
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments0

Как я купил заблокированный ноутбук на eBay и попробовал сделать свой AntiTheft на базе IntelAMT

Reading time10 min
Views66K


TL;DR


Absolute Computrace — технология, которая позволяет заблокировать машину(и не только), даже если на ней переустановили операционную систему или даже заменили жесткий диск, за $15 в год. Я купил ноутбук на eBay, который был залочен этой штукой. В статье описывается мой опыт, как я с ней боролся и пытался сделать то же самое на базе Intel AMT, но бесплатно.
Читать дальше →
Total votes 86: ↑84 and ↓2+110
Comments62

Чистим Dock и делаем приложение без xCode

Reading time4 min
Views2.6K


Мы сделаем программу для запуска приложений из панели статуса.
Вам понадобится terminal, Swift версии 3.1 или выше и любой текстовый редактор.
Я проверял работу на macOS Sierra 10.12.6 и macOS Catalina 10.15.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments5

Запустить Linux в браузере — поможет эмулятор jor1k (со встроенными Monkey Island, Doom и Frontier Elite II)

Reading time3 min
Views5K
В материале говорим о возможностях этого открытого инструмента и его технических параметрах. Также расскажем об аналогичных проектах, разрабатываемых в этой сфере.

В предыдущих сериях:


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

Телеграм как сервис

Reading time1 min
Views7.6K
Если вы когда-нибудь сталкивались с ограничениями которые свойственны Telegram Bot API, и восхищались теми возможностями которые дает Telegram Client API, но подумали что слишком сложно устанавливать TDLib, то Таас — для Вас!

https://www.t-a-a-s.ru/

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

Чем это лучше чем бот?

  1. Можно отправлять сообщения даже тем людям, которые не начали первыми с вами общение.
  2. Возможность получить полную историю чата используя метод getChatHistory.
  3. И многое другое. Таас создает для вас настоящий Телеграм клиент управляемый через API.

Читать дальше →
Total votes 9: ↑6 and ↓3+6
Comments27

Вывод Telegram-канала на свой вебсайт

Reading time3 min
Views39K
Забьем еще один гвоздь в крышку гроба Роскомнадзора.

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

Странно, что на Хабре еще не упоминался этот замечательный бот — Journalist (@JournalistBot). На сайте указано, что beta, но работает более чем стабильно.
Читать дальше →
Total votes 33: ↑28 and ↓5+23
Comments15

USB-звуковая карта на YM3812

Reading time8 min
Views16K

Я люблю старые компьютерные игры. Люблю старое железо, но не настолько, чтобы коллекционировать его дома. Другое дело – поковырять какой-нибудь старый чип и попробовать самому что-нибудь воспроизвести, совместить старое с новым. В данной статье история о том, как я подключил AVR-микроконтроллер к YM3812, применявшуюся в таких звуковых картах как Adlib, Sound Blaster и Pro AudioSpectrum. Я не создал что-то принципиально новое, просто объединил разные идеи. Возможно кому-то будет интересна моя реализация. А может мой опыт подтолкнет кого-нибудь на создание свого ретро-проекта.

Total votes 41: ↑41 and ↓0+41
Comments30

Умная лампа

Reading time8 min
Views13K
Привет, Хабр! Предлагаю вашему вниманию перевод статьи «DIY Smart Lamp» автора Maciej Matuszewski.

Пошаговое руководство по переходу от придуманной идеи к работающему продукту.

image

Ожидание против реальности

image

Вы когда-нибудь задавали себе следующие вопросы?


  • Может ли горячий клей зафиксировать ВСЕ?
  • Сложно ли сделать умное оборудование?
  • Можете ли вы залить бетон в картонную форму?

Если нет, может быть, пришло время. Но если ты это делал, то добро пожаловать в клуб! У нас недавно был внутренний хакатон в EL Passion, и у меня возникла сложная идея. Делаем лампу!
Читать дальше →
Total votes 49: ↑27 and ↓22+14
Comments50

Как была устроена графика NES

Reading time14 min
Views22K
image

Выпущенная в 1983 году домашняя консоль Nintendo Entertainment System (NES) была дешёвой, но мощной машиной, достигшей феноменального успеха. При помощи блока обработки изображений (Picture Processing Unit, PPU) система могла создавать достаточно впечатляющую по тем временам графику, которая и сегодня в нужном контексте выглядит вполне неплохо. Самым важным аспектом была эффективность памяти — при создании графики приходилось обходиться как можно меньшим количеством байтов. Однако вместе с этим NES предоставила разработчикам мощные и простые в использовании функции, позволившие ей выделиться на фоне более старых домашних консолей. Поняв принципы создания графики NES, можно проникнуться техническим совершенством системы и осознать, насколько проще работать современным разработчикам игр.

Фоновая графика NES собиралась из четырёх отдельных компонентов, комбинация которых образовывала изображение, которое мы видим на экране. Каждый компонент отвечал за отдельный аспект; цвет, расположение, «сырая» пиксельная графика и т.д. Такая система может показаться излишне сложной и громоздкой, но в конечном итоге она намного эффективнее использовала память и позволяла создавать простые эффекты в малом объёме кода. Если вы хотите понимать графику NES, то ключевой информацией будут эти четыре компонента.

В этой статье подразумевается, что вы знакомы с компьютерной математикой, и в частности с тем, что 8 бит = 1 байт, а 8 бит могут обозначать 256 значений. Также необходимо понимание того, как работает шестнадцатеричная запись. Но даже без этих технических знаний статья может показаться интересной.
Читать дальше →
Total votes 67: ↑67 and ↓0+67
Comments25

Крохотные образы Docker, которые верили в себя*

Reading time4 min
Views22K

[отсылка к американской детской сказке "Маленький паровозик, который верил в себя " ("The Little Engine That Could") — прим. пер.]*



Как автомагически создавать крохотные docker-образы для своих нужд


Необычная одержимость


Последние пару месяцев я был одержим навязчивой идеей: насколько можно уменьшить образ Docker, так чтобы при этом приложение работало?


Понимаю, идея странная.


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


Почему размер имеет значение


Сокращая содержимое образа Docker, мы тем самым сокращаем список уязвимостей. Дополнительно мы делаем образы чище, ведь они содержат только то, что нужно для запуска приложений.

Читать дальше →
Total votes 40: ↑39 and ↓1+38
Comments15

Information

Rating
2,687-th
Location
Кронштадт, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity