Search
Write a publication
Pull to refresh
1
0
Константин @Lord_Prizrak

Программер

Send message

Программирование для не-программистов. Биография джуна

Reading time14 min
Views72K
Предисловие: это рассказ о книгах для тех, кто решил изучить программирование самостоятельно. Но поскольку читать список книг было бы скучно, то я решил дополнить его своей биографией.

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

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

Batfish. Введение

Reading time11 min
Views15K
image

Одной из проблем современных сетей является их хрупкость. Множество правил фильтраций, политик обмена маршрутной информации, протоколов динамического роутинга делают сети запутанными и подверженными влиянию человеческого фактора. Авария на сети может произойти ненамеренно при внесении изменений в route-map или ACL (один, два). Нам определено не хватает инструмента, позволяющего оценить поведение сети с новой конфигурацией перед внесением изменений в продакшн. Хочется точно знать, будет ли мне доступна сеть A, если я отфильтрую часть BGP-анонсов, полученных от провайдера B? Каким маршрутом пойдут пакеты из сети C к серверу D, если на одном из транзитных линков я увеличу IGP метрику в два раза? Ответить на эти и многие другие вопросы нам поможет Batfish!
Читать дальше →

Алгоритм мышления и сознания

Reading time19 min
Views14K
В этой статье изложен алгоритм мышления и сознания. Я предлагаю свой ответ на вопрос о том как работает мышление и сознание. И демонстрирую алгоритм, который умеет по-настоящему, творчески, думать и обладает настоящим сознанием. Статья рассчитана на программистов и состоит из двух основных частей. Первая часть сугубо техническая, она содержит описание алгоритма, перечень его свойств и пример практического применения. Вторая часть содержит поясняющие тезисы и решение вопроса конструктивной аксиоматизации сознания. Алгоритм это содержательный текст который говорит сам за себя, а потому комментариев будет лишь практически необходимый минимум.
Читать дальше →

KeeBee. Изготовление с нуля собственной USB-клавиатуры

Reading time5 min
Views73K
Несколько месяцев назад завершился мой проект по изготовлению USB-клавиатуры. Среди прочего, я выполнил дизайн электронных схем, спроектировал печатную плат, запрограммировал прошивку, сделал макет в CAD и произвёл сборку устройства. В результате получилась удобная клавиатура, которую я использую ежедневно и ласково называю KeeBee:


Клавиатура KeeBee в окончательном виде

Несколько целей проекта:

  1. Самостоятельное создание схемы.
  2. Написание прошивки клавиатуры.
  3. Узнать, как работает протокол USB.
Читать дальше →

Espruino: JavaScript в микроконтроллере

Reading time7 min
Views55K
image

«Зачем?», «Что за бред?», «Извращение!», «Фу-фу-фу» — вот некоторые из многих высказываний, которые мы услышали, когда выпустили плату Iskra JS на ядре Espruino.

Зачем


Когда правильный электронщик слышит, что что-то сделано на Arduino, температура его тела поднимается примерно на полградуса: «взяли годный микроконтроллер и вместо того, чтобы фигак-фигак и регистрами выжать из него все соки, опошлили всё на свете… нет слов, одна ненависть».

Но ведь можно пойти ещё дальше. Взять микроконтроллер Cortex M4, который в десятки раз богаче того, что стоит на той же Arduino Uno, запихнуть туда интерпретатор JavaScript и делать проекты на JavaScript!

Думаю, что на этом моменте те, кто не готов к такому надругательству над святыми микросхемами, уже лопнули. Я продолжу для остальных.

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

STM32F4Discovery – подключаем камеру по интерфейсу DCMI

Reading time7 min
Views123K

STM32F4Discovery – подключаем камеру по интерфейсу DCMI



Когда-то, подключая камеру от мобильного телефона к микроконтроллеру STM32F407VGT6 (который имеет место быть на плате STM32F4Discovery), я даже не думал о том, что данный контроллер имеет специальный аппаратный интерфейс для данного дела. Может быть, невнимательно читал даташит, но я всегда считал, что интерфейс DCMI имеется только у чипов в корпусах UFBGA176 и LQFP от 144 ног. Однако, не так давно, открыл для себя озвученную деталь: 100-ногий STM32F407 также имеет DCMI на борту.
Являясь большим любителем изучения и совместного запуска различного мобильного железа (в частности, LCD и камер) с МК, мимо такого открытия я просто так пройти не смог, и решил восполнить данный пробел в изучении периферии STM32. Собственно, данный материал и посвящен описанию осуществления возникшей затеи.
Читать дальше →

Новый взгляд на изучение и документирование исходного кода

Reading time3 min
Views27K
TL;DR Привет. Меня зовут Богдан и я изучаю проблемы чтения кода. Я только что закочнил первую рабочую версию «codecrumbs» — визуального инструмента для изучения исходного кода с помощью «хлебных крошек». Гитхаб репозиторий можно посмотреть тут.

image

Проблема


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

Мир вирусов MS-DOS

Reading time8 min
Views18K
image

Этот пост является текстовой версией выступления, которое я провел на 35-м Chaos Computer Congress в конце 2018 года.

И так я должен признать, что MS-DOS слегка возмущает меня, несмотря на то, что вредоносные программы MS-DOS всегда в некоторой степени очаровывали меня, но сначала мы должны спросить: «Что такое DOS?»

  • DOS — это одна из версий CP/M, еще одной очень старой операционной системы
  • Семейство DOS охватывает широкий спектр поставщиков, просто потому, что это DOS, не означает, что он будет работать на 8086 CPU или лучше
  • Некоторые из этих поставщиков DOS имеют совместимость API, а это означает, что некоторые из них используют вредоносное ПО!

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

Про удивительность пчелы, и то, как мы её убиваем

Reading time8 min
Views110K

Заброшенная колода

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

Как довольно быстро выяснилось в СССР, участки около высоковольтных ЛЭП пчёлы не собирают. Собственно, у них как-то отключается навигация из-за электромагнитных помех.

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

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

Пишем XGBoost с нуля — часть 1: деревья решений

Reading time13 min
Views35K


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

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

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


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

Извлекаем уровни из Super Mario Bros с помощью Python

Reading time11 min
Views14K

Введение


Для нового проекта мне понадобилось извлечь данные уровней из классической видеоигры 1985 года Super Mario Bros (SMB). Если конкретнее, то я хотел извлечь фоновую графику каждого уровня игры без интерфейса, подвижных спрайтов и т.п.

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

На первом этапе проекта мы изучим язык ассемблера 6502 и написанный на Python эмулятор. Полный исходный код выложен здесь.
Читать дальше →

Как я парсил Хабр, часть 1: тренды

Reading time6 min
Views23K

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


Получилось несколько интересных сюжетов. Первый из них — это развитие формата и тематики статей за 12 лет существования сайта. Например, достаточно показательна динамика некоторых тем. Продолжение — под катом.


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

Алгоритм Верхуффа для произвольной чётной системы счисления

Reading time4 min
Views12K
КДПВ Иногда возникает задача защитить строку-идентификатор от случайных ошибок, сделанных человеком. Например, номер платёжной карты. Для этого к строке добавляется вычисленная специальным образом контрольная цифра, и когда человек вводит этот номер, можно сделать первичную проверку на ошибки без обращения к базе данных. Самый простой вариант — добавить остаток от деления суммы всех цифр на 10, в таком случае искажение любой одной цифры (в том числе контрольной) будет легко обнаружить, и такая строка не пройдёт проверку. Но некоторые другие ошибки такая контрольная сумма пропустит, например, перестановку двух цифр местами, а это тоже довольно распространённая ошибка.
Читать дальше →

Практические советы, примеры и туннели SSH

Reading time13 min
Views256K

Практические примеры SSH, которые выведут на новый уровень ваши навыки удалённого системного администратора. Команды и советы помогут не только использовать SSH, но и более грамотно перемещаться по сети.

Знание нескольких трюков ssh полезно любому системному администратору, сетевому инженеру или специалисту по безопасности.
Читать дальше →

OpenVPN, о котором вы так мало знали

Reading time16 min
Views175K

OpenVPN, как много в этом слове. Мультиплатформенный, гибко настраиваемый, бесплатный VPN сервер с открытым исходным кодом, являющийся фактически стандартом "defacto" для организации доступа к внутренним корпоративным сетям. Большинство администраторов используют его с настройками по умолчанию или с типовыми конфигурациями широко описанными в разных HOW-TO. Но так ли прост OpenVPN, как он кажется на первый взгляд? В данной статье мы рассмотрим скрытые от глаз внутренние механизмы OpenVPN, которые кардинально меняют представление о его возможностях.

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

Guix — самая продвинутая операционная система

Reading time15 min
Views94K
Операционные системы (ОС) — обширная тема. На протяжении десятилетий здесь доминировал один подход: Unix. Действительно, большинство современных систем, включая большинство дистрибутивов GNU/Linux, *BSD и macOS, придерживаются архитектуры Unix. (Windows нет, но там почти ничего интересного по этой теме).

В 2000 году Роб Пайк выступил с докладом о том, почему исследования системного ПО не релеванты. Из-за пессимизма или пренебрежения к сообществу он, кажется, полностью проигнорировал жалобы, собранные многими Unix-пользователями в книге The Unix-Haters Handbook (1994). Книга умышленно саркастична, однако указывает на некоторые критические проблемы систем Unix — и они не решены до сих пор.

В 2006 году Элко Доситра опубликовал диссертацию «Полностью функциональная модель развёртывания программного обеспечения», где описан функциональный менеджер пакетов Nix. В 2008 году автор опубликовал NixOS: полностью функциональный дистрибутив Linux. В то время как NixOS повторно использует много свободного ПО для Unix-систем, она настолько отходит от дизайна и философии Unix, что вряд ли её можно назвать «системой Unix».
Читать дальше →

Из чего состоит IoT

Reading time4 min
Views38K
Схема устройства сети Интернета Вещей по мнению компании Intel
Если обратиться к википедии в поисках определения для термина “интернет вещей”, можно увидеть следущее:
Интернет вещей (англ. Internet of Things, IoT) — концепция вычислительной сети физических предметов («вещей»), оснащённых встроенными технологиями для взаимодействия друг с другом или с внешней средой, рассматривающая организацию таких сетей как явление, способное перестроить экономические и общественные процессы, исключающее из части действий и операций необходимость участия человека.

В данной статье мне хотелось бы рассмотреть то, посредством каких именно “вещей” может быть реализована в нашем мире эта идея и то, какими способами они могут взаимодействовать друг с другом или со внешней средой.
Читать дальше →

Из ESP8266 сделали аналоговый телевизионный передатчик

Reading time2 min
Views58K


Признаться, когда я читал статью об этом проекте на Hackaday, не раз посмотрел на календарь — уж не первое апреля ли?

Автор проекта, Чарльз Лор, выступающий под ником CNLohr на Github, взял обычный трёхдолларовый модуль ESP8266, который многие из нас используют для «Умного дома» и прочих IoT поделок, и разогнал его. Он заметил, что при этом I2C на модуле остаётся работоспособным и прекрасно работает на частоте 80 мегагерц. Автор вспомнил, что эта частота близка к частотам аналогового телевидения и, вспомнив Найквиста (Котельникова) смог заставить ESP8266 выдать сигнал на частоте около 60 мегагерц — частоте третьего канала аналогового ТВ.

Ему осталось только припаять к «ноге» модуля длинный провод, который послужил передающей антенной и вспомнить устройство видеостандарта NTSC. Впрочем, видео — лучше тысячи слов:

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

Моя подборка с Youtube на тему DIY

Reading time7 min
Views39K
На идею сделать такую подборку меня косвенно подтолкнул недавний пост о создании стола, а точнее обсуждения к нему. Думая над каким-то ответом на вопрос, я порылся в своих подписках, и понял, что только деревообработке уже посвящены несколько десятков из них. И некоторыми хочется непременно поделиться.

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

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

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


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

Information

Rating
Does not participate
Location
Сахалин, Россия
Date of birth
Registered
Activity