Pull to refresh
-1
0

программист на Go/Python

Send message

Как укрепить Windows Defender по максимуму

Reading time 3 min
Views 26K


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

Но есть и хорошая новость. В состав ОС Windows входит стандартный антивирус Windows Defender. Это простая и добротная программа. Но для максимальной эффективности желательно её укрепить специальными настройками, которые по умолчанию отключены.
Читать дальше →
Total votes 27: ↑22 and ↓5 +17
Comments 21

Bison, dynamic linking и… обработка BMP изображений

Reading time 25 min
Views 3.9K

В этом посте я постараюсь раскрыть тему написания несложного модульного приложения на языке C89 для обработки 24-битных BMP изображений, использующего в своей работе простой скриптовый язык.

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

Читать дальше →
Total votes 27: ↑27 and ↓0 +27
Comments 4

Конечный автомат (он же машина состояний) на чистом С

Reading time 5 min
Views 127K
Почти каждый микроконтроллерщик сталкивался с громадными switch-case и мучительно их отлаживал.
И много кто, начиная писать реализацию какого-либо протокола, задумывался как написать её красиво, изящно, так чтобы через месяц было понятно что ты имел в виду, чтобы она не отжирала всю память и вообще какала бабочками.
И вот тут на помощь приходят машины состояний, они же конечные автоматы (те самые которые используются в регулярных выражениях).

Собственно через регулярные выражения я к ним и пришёл.
Читать дальше →
Total votes 51: ↑48 and ↓3 +45
Comments 50

Асинхронность в программировании

Reading time 26 min
Views 90K

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


В основе материала — расшифровка доклада Ивана Пузыревского, преподавателя школы анализа данных Яндекса.


Читать дальше →
Total votes 71: ↑67 and ↓4 +63
Comments 70

Записки Биоробота

Reading time 10 min
Views 18K
Как вы давно уже поняли, я не человек, а биоробот — электронный мозг, вживленный в обычное тело. Мне скучно просто работать и просто жить. Я хочу понять все законы, по которым существует человек. Как и почему он действует, ленится, работает, лежит на диване, хочет большего, хочет пива или сигарету, добивается успеха, ведет за собой людей и т.д.

Чтобы это понять, я постоянно, каждый день ставлю эксперименты. Над собой, над коллегами, над вами. А потом делаю выводы.

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

Вот и решил записать. Вдохновил пример самураев — если вы читали Хагакурэ, то поймете, о чем речь. А если не читали, то я поясню.
Читать дальше →
Total votes 63: ↑51 and ↓12 +39
Comments 35

К вопросу о сдвигах, знаках и быстродействии МК

Reading time 5 min
Views 8.2K

«Найди всему причину и ты многое поймешь»


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

Итак, мы начинаем.
Читать дальше →
Total votes 39: ↑38 and ↓1 +37
Comments 36

Мне не страшен ваш NDA

Reading time 14 min
Views 119K
Это громкая и страшная аббревиатура из трёх неприличных букв. Хотите поучаствовать в тендере, устраиваетесь на работу, нужно получить данные — вам подсовывают эту бумажку, мол, подпиши сначала, а то нашли дураков без NDA тебе что-нибудь рассказывать. При этом в большинстве случаев вы ничего сверхсекретного или коммерчески важного не узнаете, но процедура подписания NDA стала неким таинством посвящения, которое стороны выполняют не особо задумываясь над смыслом.

Это так же как вы неизбежно получите требование вместе с учредительными документами предоставить выписку из ЕГРЮЛ не старше 30 дней. Хотя всё доступно в онлайне, все распечатывают эту выписку из интернета, заверяют её и передают контрагенту, который даже не смотрит её, потому что всё есть в интернете. Ну, вы поняли, короче, отечественную любовь к таинствам.

image
Читать дальше →
Total votes 130: ↑130 and ↓0 +130
Comments 113

Обработка ошибок в Go 2

Reading time 10 min
Views 46K

title


Буквально пару дней назад в Денвере закончилась очередная, уже 5-я по счёту, крупнейшая конференция по Go – GopherCon. На ней команда Go сделала важное заявление – черновики предварительного дизайна новой обработки ошибок и дженериков в Go 2 опубликованы, и все приглашаются к обсуждению.


Я постараюсь подробно пересказать суть этих черновиков в трёх статьях.


Как многим, наверняка, известно, в прошлом году (также на GopherCon) команда Go объявила, что собирает отчёты (experience reports) и предложения для решения главных проблем Go – тех моментов, которые по опросам собирали больше всего критики. В течении года все предложения и репорты изучались и рассматривались, и помогли в создании черновиков дизайна, о которых и будет идти речь.


Итак, начнём с черновиков нового механизма обработки ошибок.

Читать дальше →
Total votes 62: ↑56 and ↓6 +50
Comments 297

Освоение Vuex — с нуля до героя

Reading time 7 min
Views 154K

Привет, Хабр! представляю вашему вниманию перевод статьи «Mastering Vuex — Zero to Hero» автора Sanath Kumar.


Официальная документация Vuex определяет его как паттерн управления состоянием + библиотека для приложений Vue.js. Но что это значит? Что такое паттерн управления состоянием?


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


Читать дальше →
Total votes 11: ↑9 and ↓2 +7
Comments 22

Почему не стоит выкидывать Radeon, если ты увлекся машинным обучением?

Reading time 4 min
Views 56K

image


Свою рабочую станцию мне выдалось собирать, будучи студентом. Достаточно логично, что я отдавал предпочтение вычислительным решениям AMD. потому что это дешево выгодно по соотношению цена/качество. Я долго подбирал компоненты, в итоге уложился в 40к с комплектом из FX-8320 и RX-460 2GB. Сначала этот комплект казался идеальным! Мы с соседом по комнате слегка майнили Monero и мой набор показывал 650h/s против 550h/s на наборе из i5-85xx и Nvidia 1050Ti. Правда, от моего набора в комнате бывало слегка жарковато по ночам, но это решилось, когда я приобрел башенный кулер к CPU.

Читать дальше →
Total votes 52: ↑51 and ↓1 +50
Comments 39

Шифрование ключа по умолчанию в OpenSSH хуже его отсутствия

Reading time 4 min
Views 15K
Авторы этого материала приводят аргументы против стандартных механизмов шифрования ключа в OpenSSH.


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

У большинства из нас под рукой есть RSA SSH-ключ. Такой ключ наделяет владельца самыми разными привилегиями: как правило, он используется для доступа к production среде или в GitHub. В отличие от nmp-токенов SSH-ключи зашифрованы, и поэтому принято считать, что ничего страшного не произойдет, даже если они попадут не в те руки. Но так ли это на самом деле? Давайте узнаем.
Читать дальше →
Total votes 30: ↑29 and ↓1 +28
Comments 19

Указатели C как лингвистический парадокс

Reading time 2 min
Views 32K
Недавно один знакомый, которого я знаю через совсем не программистские круги, попросил помочь ему с лабораторной по C++. В коде было примерно следующее:

void do_something(MyObj *input[], int count)
{
    MyObj **copy = new MyObj*[count];
    for (int i = 0; i < count; ++i)
        *copy[i] = *input[i];
    ...
}

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

Лет десять назад на одном форуме была загадана детская, вроде, загадка:
Для чего еду обеда
Людоедоедоеда
Пригласила на обед
Людоедоедовед?
Я хочу показать, что эта загадка имеет самое прямое отношение к C/C++, поскольку тема указателей легко может быть разобрана по аналогии.
Читать дальше →
Total votes 65: ↑56 and ↓9 +47
Comments 244

Алгоритм генерирования цветовых палитр

Reading time 4 min
Views 13K


Ищете красивую цветовую палитру для сайта? Недавно установили дома RGB-подсветку, или хотите покрасить комнату в новые цвета? Или купили клавиатуру с цветной подсветкой и хотите использовать её по полной? В какой бы ситуации вы ни оказались, наверняка постоянно настраиваете цветовые схемы.

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

Я ошибался. Генерирование палитр из случайных цветов — отстой. Время от времени красивый цвет соседствует с уродливым, грязным оттенком коричневого или жёлтого. Подборки цветов получаются всегда либо слишком тёмные, либо слишком светлые и малоконтрастные, либо наборы состоят из очень похожих цветов. Нужно было придумать другое решение.
Читать дальше →
Total votes 27: ↑23 and ↓4 +19
Comments 11

Выключаем Intel ME 11, используя недокументированный режим

Reading time 11 min
Views 78K


В ходе исследования внутренней архитектуры Intel Management Engine (ME) 11-й версии был обнаружен механизм, отключающий эту технологию после инициализации оборудования и запуска основного процессора. О том, как мы нашли этот недокументированный режим, и о его связи с государственной программой построения доверительной платформы High Assurance Platform (HAP) мы расскажем в этой статье.

Авторы предупреждают, что использование данных знаний на практике может повлечь за собой повреждение вычислительной техники, и не несут за это никакой ответственности, а также не гарантируют работоспособность или неработоспособность чего-либо и не рекомендуют экспериментировать без наличия SPI-программатора.
Читать дальше →
Total votes 84: ↑83 and ↓1 +82
Comments 90

Язык Terra — низкоуровневый партнёр Lua

Reading time 12 min
Views 17K
Terra — низкоуровневый язык системного программмирования, встраиваемый и имеющий возможность метапрограммирования с помощью языка Lua.

Читать дальше →
Total votes 57: ↑57 and ↓0 +57
Comments 28

Начинаем работу Python + Qt5 + QML урок №1

Reading time 3 min
Views 51K

Всем привет. Сегодня познакомимся с QML. Узнаем что это такое и с чем его едят. Создадим небольшое приложение с использованием данной технологии.


Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Comments 14

Google изобрела распределённый ИИ для миллиарда смартфонов

Reading time 3 min
Views 33K

Только подумайте, какова совокупная вычислительная мощность всех смартфонов в мире? Это огромнейший вычислительный ресурс, который вполне может эмулировать даже работу человеческого мозга. Нельзя, чтобы такой ресурс простаивал без дела, тупо прожигая киловатты энергии на чатики и ленты социальных сетей. Если отдать эти вычислительные ресурсы единому распределённому мировому ИИ, да ещё снабдить его данными с пользовательских смартфонов — для обучения — то такая система может осуществить качественный скачок в данной области.
Читать дальше →
Total votes 28: ↑24 and ↓4 +20
Comments 93

Операторам увеличили срок?

Reading time 4 min
Views 39K
image

Почти полгода минуло с подписания президентом, так называемых, “поправок Яровой”, вызвавших истерику в отрасли телекоммуникаций. Минкомсвязи наконец доработало условия хранения трафика. Собственно все стало только хуже.
Читать дальше →
Total votes 46: ↑40 and ↓6 +34
Comments 250

Создайте свои собственные “Нейронные Картины” с помощью Глубокого Обучения

Reading time 3 min
Views 20K


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

Сегодня я собираюсь познакомить вас с тем как это делается. Прежде всего, убедитесь, что у вас обновленная копия Ubuntu (14.04 — та, что использовал я). Вам необходимо иметь несколько гигов свободного пространства на жестком диске и в оперативной памяти, хотя бы не менее 6 GB (больше оперативки для больших выводимых разрешений). Для запуска Ubuntu как виртуальной машины, вы можете использовать Vagrant вместе с VirtualBox.
Читать дальше →
Total votes 42: ↑38 and ↓4 +34
Comments 16

Что такое свёрточная нейронная сеть

Reading time 13 min
Views 263K


Введение


Свёрточные нейронные сети (СНС). Звучит как странное сочетание биологии и математики с примесью информатики, но как бы оно не звучало, эти сети — одни из самых влиятельных инноваций в области компьютерного зрения. Впервые нейронные сети привлекли всеобщее внимание в 2012 году, когда Алекс Крижевски благодаря им выиграл конкурс ImageNet (грубо говоря, это ежегодная олимпиада по машинному зрению), снизив рекорд ошибок классификации с 26% до 15%, что тогда стало прорывом. Сегодня глубинное обучения лежит в основе услуг многих компаний: Facebook использует нейронные сети для алгоритмов автоматического проставления тегов, Google — для поиска среди фотографий пользователя, Amazon — для генерации рекомендаций товаров, Pinterest — для персонализации домашней страницы пользователя, а Instagram — для поисковой инфраструктуры.


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


Задача


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


Читать дальше →
Total votes 91: ↑91 and ↓0 +91
Comments 74

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity