Как стать автором
Обновить
0
@TTooLLsread⁠-⁠only

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

Отправить сообщение

Пишем пасьянс «Косынка»

Время на прочтение8 мин
Количество просмотров26K
Девять лет назад я имел неосторожность приобрести приставку PSP, чему был очень рад. Омрачало радость только отсутствие пасьянса. Не то, чтобы я был любителем пасьянса, но как-то привык я раскладывать один из вариантов — “Косынку”. Пришлось такой пасьянс написать самому. В дальнейшем этот написанный для PSP пасьянс я портировал под Windows и под QNX. В этой вот статье я и расскажу, как написать такую игру.
Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии39

Отображение 3D-графики на STM32F407

Время на прочтение4 мин
Количество просмотров13K
Как известно, старшие STM'ки имеют приличные частоты и объёмы ОЗУ. Ну а раз так, то почему бы не запустить 3D-графику на таких контроллерах? Да нет ничего проще!

Демонстрационная картинка
Всего голосов 32: ↑30 и ↓2+28
Комментарии66

Простая самодельная VGA видеокарта

Время на прочтение2 мин
Количество просмотров88K
Насколько мне известно, довольно многим интересно подключить микроконтроллер к обычному монитору и попробовать что-либо вывести на экран. В этой статье пойдёт речь о создании простейшей VGA-видеокарты на базе микроконтроллера atmega168-20.
Всего голосов 117: ↑116 и ↓1+115
Комментарии109

STM32F103C8T6 — первые шаги. Продолжаем делать осциллограф

Время на прочтение5 мин
Количество просмотров69K
Продолжение статьи. На этот раз попробуем подключить USB без падения частоты измерений и соберём одноканальную аналоговую часть.

Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии25

Шахматы как динамическая система

Время на прочтение4 мин
Количество просмотров6.7K
image

Предисловие


Существует такой тип людей, для которых исследования и создание сложных и функциональных систем — высшая степень удовольствия. К такому типу можно отнести и меня. Любой целостный объект, обладающий единством всей своей структуры, материального, социального и абстрактного миров обладает системностью: человек, семья (да и любой социальный институт), биосфера, химические вещества и пр. Системность присутствует даже в неявных вещах.

Очень давно, благодаря энтузиазму моего деда, я научился играть в шахматы. Вообще, шахматы — это одна из самых древних синтетических системных моделей, представленных в оболочке настольной игры. В данной статье будет произведен системный анализ шахмат, как детерминированной (предопределенной) системы, а именно: исследование структуры связанных шахматных фигур, интегративного свойства всех фигур и отдельных «изолированных» структур и уровня доминирования на доске как отдельных фигур, так и отдельного цвета (белых или черных).
Читать дальше →
Всего голосов 14: ↑9 и ↓5+4
Комментарии18

Знай сложности алгоритмов

Время на прочтение2 мин
Количество просмотров991K
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Всего голосов 312: ↑296 и ↓16+280
Комментарии99

Бесплатная трансляция DevOops 2019 и C++ Russia 2019 Piter

Время на прочтение3 мин
Количество просмотров4.2K

image


29-30 октября, то есть уже завтра, состоится конференция DevOops 2019. Это два дня докладов про CloudNative, облачные технологии, observability и monitoring, configuration management и security, и так далее.


Сразу следом за ней, 31 октября — 1 ноября, состоится конференция C++ Russia 2019 Piter. Это очередные два дня хардкорных технических докладов, посвященных C++: concurrency, производительности, архитектуре, инфраструктуре и решению хитрых необычных задач.


Из тридцатки докладов на каждой из конференций вы сможете совершенно бесплатно посмотреть на YouTube доклады первого дня, проводящиеся в первом зале — 6 штук. В той же онлайн-трансляции будут онлайн-интервью между докладами.


Начало трансляции:


  • DevOops: 29 октября, 9:45 утра по московскому времени,
  • C++ Russia: 31 октября, 9:45 утра по московскому времени.

После короткого 15-минутного вступления вы сможете вместе со всеми посмотреть открытие, которое плавно перейдёт в просмотр докладов, а закончится всё ближе к 7 часам вечера. Открывать ссылку именно в 9:45 необязательно — ссылка будет работать весь день, поэтому можно открывать её только на наиболее важных докладах.


Ссылка на сайт трансляции — под катом. Там же есть краткое описание докладов и обсуждение пары вещей, которых на трансляции (даже если купили онлайн-билет) всё-таки не будет.

Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии0

Спецификатор constexpr в C++11 и в C++14

Время на прочтение16 мин
Количество просмотров210K
Одна из новых возможностей C++11 — спецификатор constexpr. С помощью него можно создавать переменные, функции и даже объекты, которые будут рассчитаны на этапе компиляции. Это удобно, ведь раньше для таких целей приходилось использовать шаблоны. Но тут все не так просто. У тех, кто не так хорошо знаком с constexpr, может сложиться впечатление, что теперь не будет никаких проблем с расчетами на этапе компиляции. Но на constexpr-выражения наложены серьезные ограничения.

В первой части будет рассказано про constexpr, о том, какие будут изменения в стандарте C++14, а во второй части будет пример использования constexpr: библиотека, которая считает результат математического выражения в строке.
С помощью нее можно будет написать следующий код:
constexpr auto x = "(4^2-9)/8+2/3"_solve;
std::cout << "Answer is " << x;

И ответ в виде дроби будет получен на этапе компиляции:
Answer is 37/24
Сразу предупреждаю, код этой библиотеки сложно понять.
Кому эта тема интересна, добро пожаловать под кат!
Читать дальше →
Всего голосов 53: ↑52 и ↓1+51
Комментарии45

История постройки гусеничного робота

Время на прочтение8 мин
Количество просмотров14K
image

Моя история погружения в изучение робототехники и создание робота с помощью 3d принтера. Ошибки, с которыми я столкнулся и что хотел-бы получить в итоге
Читать дальше →
Всего голосов 68: ↑67 и ↓1+66
Комментарии21

Алексей Савватеев: Как бороться с коррупцией при помощи математики (Нобелевская премия по экономике за 2016 год)

Время на прочтение7 мин
Количество просмотров40K
image

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

image


Оливер Харт и Бенгт Хольмстрём.

Контракт. Что это такое? Я работодатель, у меня несколько сотрудников, я говорю им как будет устроена их зарплата. В каких случаях и что они будут получать. Эти случаи могут включать и поведение их коллег.

Приведу пять примеров. Три из них иллюстрируют, как попытка вмешательства привела к ухудшению ситуации.
Всего голосов 68: ↑61 и ↓7+54
Комментарии244

Способ организации коллективного изучения теории в ходе семестра

Время на прочтение6 мин
Количество просмотров2.2K

Всем привет! Год назад я написал статью про то, как я организовывал университетский курс по обработке сигналов. Судя по отзывам, в статье много интересных идей, но она большая и тяжелочитаемая. И я давно хотел разбить её на более маленькие и написать их понятнее.


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


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

Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии22

Вся правда об ОСРВ. Статья #29. Прерывания в Nucleus SE

Время на прочтение17 мин
Количество просмотров1.6K
Все современные микропроцессоры и микроконтроллеры содержат какие-либо механизмы прерывания. Эти механизмы необходимы для обеспечения «отзывчивости», требуемой многими приложениями. Безусловно, отзывчивость и предсказуемость являются основной целью при использовании ОСРВ, но при этом они противостоят друг другу. Использование прерываний может нарушить целостность реального времени ОС. Эта проблема и ее решение были затронуты в одной из предыдущих статей (#4 и #6). В этой статье мы рассмотрим стратегию обработки прерываний, используемую в Nucleus SE. Во всех случаях прерывания НЕ управляются Nucleus SE: они обрабатываются при возникновении согласно приоритету и векторам обычным способом. Время их выполнения просто «крадется» из доступного времени в коде основного приложения и планировщика. Очевидно, из этого следует, что все обработчики прерывания должны быть простыми, короткими и быстрыми.


Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии0

Современный детский технический кружок VS советские СЮТы

Время на прочтение5 мин
Количество просмотров11K
Больше всего полемики под подобными статьями возникает как раз в сравнении старого и нового. Одни говорят о современном капитализме и изменении догм и правил у детей, другие, что с советскими кружками умерла целая эпоха воспитания из детей настоящих инженеров. Попытаемся разобраться, в чём соль вопроса.


Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии66

Как правильно задавать вопросы, если ты начинающий айтишник

Время на прочтение5 мин
Количество просмотров48K
Привет!

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

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

Тем, кто уже стал, или еще только мечтает стать начинающим разработчиком, я могу дать следующие рекомендации:

  • Изучайте проблему самостоятельно
  • Сначала сообщайте цель, потом озвучивайте проблему
  • Пишите грамотно и по существу
  • Задавайте вопросы по адресу и делитесь решением
  • Уважайте чужое время
  • Смотрите шире

А теперь подробнее.
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии32

Простой сервер на Qt/C++

Время на прочтение3 мин
Количество просмотров125K
В последнее время очень часто приходится слушать определенный порт, получать данные от клиента и отправлять соответствующий ответ. Решил поделиться с новичками, как же создать такой сервер и решить некоторые поставленные вопросы.
В этой статье мы рассмотрим:
— Создание tcp сервера.
— Подключение нескольких клиентов к серверу параллельно.
— Отключение клиентов (отключение сокетов).
— Получение и отправку данных.

Исходники: https://github.com/valualit/QTcpServer01

image

Читать дальше →
Всего голосов 67: ↑45 и ↓22+23
Комментарии27

Клиент-серверный чат, используя сокеты Qt/C++

Время на прочтение6 мин
Количество просмотров137K

Предисловие


Статья ориентирована в основном на новичков. Целью ее написания является быстрое и максимально подробное описание сокетов, для начального понимания сети и сокетов. В свое время искал подобную, но нужны были подробные примеры. В стандартном примере fortune server/client, который идет с qt очень плохо показывают возможности сокетов.

Итак, сервер умеет:
  • «Слушать» произвольный адрес, порт
  • Авторизовать клиента по имени
  • Отправлять общие, приватные, серверные сообщения
  • Отправлять список пользователей
Клиент умеет подавать соответствующие запросы серверу.

Для понимания это будут Гуи-приложения:

image

В qt существуют классы QTcpSocket и QTcpServer для работы с сокетами. Используя сигналы и слоты, с ними можно работать в неблокирующем (асинхронном режиме). Это значит, если подключение к серверу занимает заметное количество времени, гуи не блокируется, а продолжает обрабатывать события, а когда произойдет подключение (либо ошибка), вызовется определенный слот (в текущем случае подключенный к сигналу connected()).
Читать дальше →
Всего голосов 39: ↑21 и ↓18+3
Комментарии13

Работа с сокетами в Qt

Время на прочтение5 мин
Количество просмотров128K

Введение


image
Как-то несколько лет назад, на одном из форумов, я нашел такую замечательную фразу — «Каждый уважающий себя программист в жизни должен написать свой чат-клиент». Тогда мои знания не позволяли сделать это. Я просто улыбнулся и прошел мимо этой фразы. Но вот совсем недавно я столкнулся именно с данной проблемой — нужно было написать свой чат. Ну а так как последнее время мой интерес был направлен на изучение и разработку Qt-приложений, на чем будет сделан он, решилось само собой.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии8

Как разрабатываются и производятся процессоры: основы архитектуры компьютеров

Время на прочтение9 мин
Количество просмотров58K
image

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

В этой серии мы расскажем о компьютерной архитектуре, проектировании процессорных плат, VLSI (very-large-scale integration), производстве чипов и тенденциях будущего в области вычислительной техники. Если вам было интересно разобраться в подробностях работы процессоров, то начинать изучение лучше с этой серии статей.

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

Программы, например, операционная система или игра, сами по себе являются последовательностями инструкций, которые должен выполнять ЦП. Эти инструкции загружаются из памяти и в простом процессоре выполняются одна за другой, пока программа не завершится. Разработчики программного обеспечения пишут программы на высокоуровневых языках, например, на C++ или на Python, но процессор не может их понимать. Он понимает только единицы и нули, поэтому нам нужно каким-то образом представить код в этом формате.
Читать дальше →
Всего голосов 57: ↑54 и ↓3+51
Комментарии18

Создаём датчик контроля качества воздуха на InfluxDB, Grafana, Docker и Raspberry Pi

Время на прочтение9 мин
Количество просмотров21K
Когда-нибудь думали о мониторинге качества воздуха в доме или за его пределами: там, где живёте и работаете? Этот проект, который мы окрестили balenaSense, представляет собой установку для снятия показаний температуры, влажности, барометрического давления и качества воздуха, а также панель мониторинга, к которой вы можете получить доступ из любого места, чтобы увидеть сводную статистику и отслеживать тенденции.


Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии43

От 5 до 7 и ведерко кофе

Время на прочтение3 мин
Количество просмотров19K
Сколько раз в неделю вы слышите от домашних и коллег слова «хочу выспаться» и «не могу проснуться»? Как часто по утрам вы стонете «Ну еще бы часок!» или «Когда уже пенсия?»

Проблемы, так или иначе связанные со сном, обсуждают на ТВ и в YouTube, на форумах и в пабликах. Говорят об этом и у нас в Plarium Krasnodar. Хотя утренняя очередь к кофемашинам заменяет тысячи слов.

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

Всего голосов 34: ↑28 и ↓6+22
Комментарии43

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность