Search
Write a publication
Pull to refresh
2
0

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

Send message

Операции сравнения в C++20

Reading time19 min
Views46K
Встреча в Кёльне прошла, стандарт C++20 приведён к более или менее законченному виду (по крайней мере до появления особых примечаний), и я хотел бы рассказать об одном из грядущих нововведений. Речь пойдёт о механизме, который обычно называют operator<=> (стандарт определяет его как «оператор трёхстороннего сравнения», но у него есть неформальное прозвище «космический корабль»), однако я считаю, что область его применения гораздо шире.

У нас не просто будет новый оператор — семантика сравнений претерпит существенные изменения на уровне самого языка.
Читать дальше →

Изучаем STM8S Медленный старт. Часть 0

Reading time5 min
Views35K
МК семейства STM8S относительно STM8L/32 имеет меньший арсенал периферии, но позволяет без лишних усложнений разобраться с основами и получить необходимые навыки для работы с его старшими братьями.

0. На кого ориентирован материал, зачем и почему


При написании данной статьи, я предполагаю, что читающий умеет:

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

Целями статьи считаю:

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

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

Пиксельный Lo-fi в Unity

Reading time3 min
Views17K
image

Визуальный стиль моей находящейся в разработке игры LAUNDRY GAME (да, это бессовестная реклама) основан на больших чётких пикселях в 3D. Я обожаю 3D в низком разрешении. Мне задавали много вопросов о том, как я это сделал, поэтому я решил написать туториал.

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

Дополнение 1: умный парень Пит Брисбёрн отправил сюда скрипт на случай, если вам не понравится трюк с «quad в небе» (этапы 4-6)!
Читать дальше →

Консольный рогалик на С++

Reading time4 min
Views20K


Введение


«Линукс не для игр!» — устаревшая фраза: сейчас появилось много замечательных игр специально для этой замечательной системы. Но всё же, иногда, хочется чего-то особенного, что подходило бы именно тебе… И я решил создать это особенное.
Читать дальше →

Печать гобелена «Игры престолов» на фискальном принтере с использованием Python

Reading time11 min
Views11K
Однажды в одном из проектов в мои руки попал фискальный принтер. Мы каждый день сталкиваемся с этими устройствами, когда совершаем платежи в магазинах, но мало кто догадывается что на самом деле они из себя представляют. Не буду вдаваться в подробности их работы, просто скажу, что это такие штучки, которые печатают чеки с данными о покупке на специальной термобумаге (да-да, почти во всех фискальных принтерах нет чернил!).

Я должен был разобраться как получить состояние функционирования фискального принтера и его внутренние параметры настройки. Задача давно выполнена, а фискальный принтер был надолго заброшен в дальний угол… Пока в мою голову не пришла идея немного покреативить :D

Такие принтеры позволяют печатать монохромные картинки. Когда я вдоволь наигрался с печатью котиков, эмблем и фотографий коллег, я решил замахнуться на печать длинного гобелена по мотивам сериала, в котором постоянно кого-то убивали со словами «зима близко».

На выходе получился вот такой ролик:


Подробные действия для печати гобелена на языке python под катом ниже.

Как создать частное облако для видеонаблюдения

Reading time6 min
Views31K
image

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

Ivideon развёртывает и настраивает системы видеонаблюдения где угодно, фактически предоставляя клиентам «частный облачный сервис под ключ». И представьте себе: некоторые решения, которые клиенты воспринимают как наших конкурентов, на самом деле представляют собой Ivideon под чужим брендом… Сегодня вы узнаете, как это всё работает и чем выгодно бизнесу.
Читать дальше →

Через тернии к игре мечты — месяц спустя

Reading time3 min
Views10K
image

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

Раскрыты детали вредоносной кампании на пользователей iPhone

Reading time2 min
Views9.5K

29 августа группа Project Zero после тщательного исследования опубликовала детальную информацию об обнаруженных векторах атак в ходе массовой кампании по похищению данных пользователей iPhone.


Результатом успешной атаки на пользователя являлся запуск агента слежения («импланта») с привилегированными правами в фоновом режиме.


В процессе исследования в рамках векторов атак было обнаружено 14 используемых уязвимостей:


  • 7 уязвимостей браузера iPhone;
  • 5 уязвимостей ядра;
  • 2 уязвимости обхода песочницы.

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

У вас тоже есть такой друг? А может это Вы?

Reading time7 min
Views36K
Моему другу почти 32 и он программист (java-разработчик, если хотите). Раньше я любил читать «мотивашки», о том как люди приходят в IT, я читал их пачками, и каждая следующая, хоть и была похожа на предыдущую, давала свежий глоток позитива и оптимизма, веры в светлое будущее и чудеса. История моего друга возможно тоже могла бы послужить «мотивашкой» для кого-то, и раз есть хотя бы небольшой шанс на это — ее нужно рассказать.
Читать дальше →

Новый закон для описания скорости развития квантовых компьютеров?

Reading time4 min
Views7.4K

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



Квантовый процессор Foxtail от Google

В декабре 2018 года учёные из Google AI провели вычисления на лучшем квантовом процессоре от Google. Им удалось воспроизвести эти вычисления на обычном ноутбуке. Затем в январе они запустили тот же тест на улучшенной версии квантового чипа. На этот раз для симуляции результата им понадобился уже мощный настольный компьютер. А к февралю у них уже не нашлось классических компьютеров, способных симулировать своих квантовых соперников. Для этого исследователям пришлось запрашивать процессорное время на огромной сети серверов.

«Где-то в феврале мне пришлось сделать несколько звонков и сказать: „Эй, нам нужно побольше квоты“, — сказал Хартмут Нивен, директор лаборатории квантового искусственного интеллекта Google. „Мы запускали задачи, требовавшие миллиона процессоров“.
Читать дальше →

IPFS без боли (но это не точно)

Reading time12 min
Views24K


Не смотря на то, что на Хабре была уже не одна статья про IPFS.

Сразу уточню, что я не являюсь экспертом в этой области, но не раз проявлял интерес к этой технологии, но попытки поиграться с ней часто вызывало некоторую боль. Сегодня я опять взялся за эксперименты и получил кое-какие результаты, которыми хотел бы поделиться. Если коротко, то будет описан процесс установки IPFS и некоторые фишки (все выполнялось на ubuntu, на других платформах не пробовал).
Читать дальше →

Кто внедряет IPv6, и что тормозит его развитие

Reading time3 min
Views12K
В прошлый раз мы говорили об истощении IPv4 — о том, кто владеет небольшой долей оставшихся адресов и почему так получилось. Сегодня обсуждаем альтернативу — протокол IPv6 и причины его медленного распространения — кто-то говорит, что виновата высокая стоимость миграции, а кто-то заявляет, что технология уже устарела.

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

Что умеют делать наручные часы кроме показа времени и как выбрать свои первые часы

Reading time24 min
Views157K

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



Современные часы имеют невероятные дополнительные функции

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

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

Reading time3 min
Views7.3K
Рассказываем, как появилось это направление, и кто пишет электроакустическую музыку.

Решето Сундарама

Reading time4 min
Views12K
Решето Сундарама в сети представлено большим количеством источников краткой справочной информации. Тем не менее, я решил изложить то, что хотел бы прочитать сам в начале изучения теоретико-числовых алгоритмов.

Решето Сундарама входит в тройку известнейших методов генерации простых чисел. Сейчас к нему принято относиться как к некоторой экзотике по причине плохой вычислительной сложности: O(N(logN)). Однако асимптотика – асимптотикой, а на практике в 32-битном диапазоне просеивания Аткин, например, перегоняет Сундарама только при тщательной оптимизации.

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

Искусственная соображалка без фатальных недостатков без нейросетей разработать

Reading time8 min
Views8.3K
Ленивый, но талантливый программист, обнаружив себя работающим в конторе, где половину народа можно заменить небольшим скриптиком, но отжимать у дружелюбного коллектива работу не по душе, когда-нибудь все же соберётся найти ту грань компромисса, где компьютер будет работать, а зарплату будет получать человек. Хотя бы для себя. И хотя бы в теории.

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



Казалось бы, с человеческим языком можно не заморачиваться: программист всегда поймет сообщения своей программы. Но существует и обратное направление: человек программе должен объяснять, чего он хочет, с лёгкостью для него, соответственно, с неимоверными усилиями для неё. И тут возникает момент: лёгкость очень сильно повышается, если программа одупляет, чего ей не хватает для понимания, и задаёт вопрос. Суть такой технологии: заранее неизвестно, что спросит программа, так как это уже зависит от имеющихся данных, динамически. При этом полной потери в неизвестности не происходит. Что спросить? Что такое сам вопрос? Кто я и где я? Соображалке нужно растолковать это до того как она озаботится рабочими, много раз уже решёнными вопросами.

Часть программирования: растолковать так хорошо, чтобы больше не повторять. Как это могло бы выглядеть? Позитивный подход говорит о том, что отвечать на вопрос не стоит, пока он не задан. Для начала надо понять ситуацию, когда соображалке понадобилось не только действовать в схеме вопрошения, но и задуматься над самой концепцией вопроса. Похоже, я пытаюсь спихнуть разработку соображалки ей самой.
Читать дальше →

Учебное пособие по TensorFlow: 10 минутное практическое занятие по TensorFlow для начинающих [перевод]

Reading time6 min
Views50K

Привет, Хабр! Представляю вашему вниманию перевод статьи "TensorFlow Tutorial: 10 minutes Practical TensorFlow lesson for quick learners" автора Ankit Sachan.


Этот туториал по TensorFlow предназначен для тех, кто имеет общее представление о машинном обучении и пытается начать работу с TensorFlow.

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

Игра историй

Reading time3 min
Views2.8K
С Днём знаний!
В данной статье вас ждёт интерактивная сюжетостроительная игра с механикой вычисления ситуаций, в которой можно принять деятельное участие.



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


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

Расчет нулевой гипотезы, на примере анализа зарплат украинских программистов

Reading time5 min
Views20K
Решил поделиться, да бы и самому не забывать, как можно использовать простые статистические инструменты для анализа данных. В качестве примера использовался анонимный опрос относительно зарплат, стажа и позиций украинских программистов за 2014 и 2019 год. (1)

Этапы анализа


  • Препроцессинг данных и предварительный анализ (кому интересно код тут)
  • Графическое представление данных. Функция плотности распределения.
  • Формулируем нулевую гипотезу (H0) (2)
  • Выбираем метрику для анализа
  • Используем метод bootstraping для формирования нового массива данных
  • Рассчитываем p-value (3) для подтверждения или опровержения гипотезы

Препроцессинг данных


После некоторых манипуляций (код тут), приводим данные в следующий вид:

# Строка здесь это отдельный результат опроса, колонки переменные.

display(data_14_1.head(), data_19_1.head())
print('Всего опрошенных программистов: \n \
      {} чел. в 14 году и {} в 19 году'.format(len(data_14_1), len(data_19_1)))


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

Российский геймдев, бессмысленный и беспощадный

Reading time2 min
Views54K
Если регулярно и внимательно просматривать ленты новостей и соцсети, может возникнуть ощущение, что теперь каждый второй — демиург от мира геймдева, а каждый первый — гениальный CG художник. Ну, наверное, миллионы все разом не ошибаются. Значит, нужно идти за мечтой. Что я, рыжий что ли?

А под окнами уже разбили табор инфоцыгане. «Ай нанэ, нанэ! Мы знаем, как монетизировать твои мечты!». Правда, в чью пользу, не уточняется. Переизбыток информации манит красочными историями успеха о цифровой хрустальной туфельке, которая превратит студента Василия из Подтахтющинска в Хидео Кодзиму.

Если бы все было так просто.

Что вас ждет? Если коротко:

  • - личная жизнь \ + адский труд бесплатно
  • - поддержка близких \ + стадо критиков
  • - стандарты качества \ + зато оригинально
  • - Я всё могу \ + депрессия средней степени тяжести

Этот список можно продолжать бесконечно.



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

Information

Rating
Does not participate
Registered
Activity