Pull to refresh
-3
0

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

Send message

Возможности QR-кодов

Reading time6 min
Views31K
image

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


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


В этой статье будут рассмотрены некоторые из этих стандартов и описаны возможные типы данных, которые можно спрятать в qr-код.


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

Фото из Android смартфона в Qt Widgets

Reading time18 min
Views5.1K

Получение изображения из камеры Android-смартфона в кросс-платформенном приложении Qt Widgets с помощью Android-приложения по-умолчанию для фотографирования.

Читать далее

Проверка орфографии в приложениях Qt

Reading time5 min
Views3.6K

В данной статье описано как добавить к вашему приложению на Qt проверку орфографии с подсветкой орфографически некорректных слов и возможность замены на более подходящие варианты. Для этого используется словарь hunspell.

Читать далее

Всё, о чём должен знать разработчик Телеграм-ботов

Reading time15 min
Views705K

Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй "как я создал такого-то бота" и туториалов вроде "как создать бота, который будет говорить hello world". При этом многие неочевидные моменты просто нигде не описаны.

Как вообще устроены боты? Как они взаимодействуют с пользователями? Что с их помощью можно реализовать, а что нельзя?

Подробный гайд о том, как работать с ботами — под катом.

Читать далее

Стивен Вольфрам: кажется, мы близки к пониманию фундаментальной теории физики, и она прекрасна

Reading time70 min
Views390K
В продолжение моего поста про вычислимую Вселенную я хочу представить вам свой перевод статьи Стивена Вольфрама, созданной в рамках его проекта The Wolfram Physics Project.


Неожиданное открытие


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

Чествуем игривое волшебство Джона Хортона Конвея

Reading time5 min
Views4.7K

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

Читать далее

В одной лодке с «ублюдком»: 11 продвинутых советов по использованию Git

Reading time11 min
Views52K

*"ублюдок" — вольный перевод слова "git" — "an unpleasant or contemptible person", "неприятный или презренный человек".



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


Давайте посмотрим, что можно использовать, чтобы улучшить себе жизнь. Статья предполагает, что читатель умеет пользоваться основными возможностями git и понимает что делает, когда, скажем, вводит в консоль git rebase --merge --autostash.

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

Game of Life с битовой магией, многопоточностью и на GPU

Reading time8 min
Views15K

Всем привет!


Недавняя статья на Хабре в очередной раз показала неостывающий интерес к игре «Жизнь» в частности и всевозможным оптимизациям в общем. Статья и комментарии к ней, особенно любопытство к вычислениям на GPU, вдохновили меня на то, чтобы поделиться своими изысканиями на данном поприще и, забегая вперёд, скажу, что повествование пойдёт о расчётах на GPU, битовой магии, многопоточности и огромных полях для игры «Жизнь», порядка миллиарда клеток.


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

Многопоточный линейный список: проблема существования элемента, повышение производительности и соотношение с STL

Reading time57 min
Views7.5K
Здравствуйте, уважаемые посетители Хабра!

В этой статье речь пойдёт о связном списке, многопоточности и С++. Сразу отмечу, что были все шансы положить эту работу «на полочку» и использовать в небольшом количестве личных проектов. Вместо этого я всё-таки решил выложить её на суд общественности – вдруг это действительно покажется кому-нибудь полезным или интересным. Более того, если окажется, что кто-нибудь когда-нибудь уже успел сделать что-нибудь подобное, укажите мне эти материалы, пожалуйста. Однако сколько я ни пытался гуглить на эту тему, все попытки были безуспешны.

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

Этот проект, которым я занимался на правах хобби и саморазвития, по ряду причин растянулся на весьма длительный срок. Кроме того, по мере работы над ним я интенсивно учился: проект начинался без знания и понимания STL и проектировался соответственно, используя только внутренние средства собственно языка С++. Однако потом я весьма серьёзно его модифицировал с учётом STL и даже под STL. Что у меня из этого получилось, судить вам, уважаемые читатели.
Читать дальше →

Бесплатные вещи за карму — история белорусского стартапа, который меняет принцип потребления

Reading time8 min
Views55K


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

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

Но недавно я узнал, что в Беларуси, где я прожил несколько лет, стал очень популярен сервис, где люди раздают друг другу вещи просто так. Тогда я созвонился с одним из трех его основателей Сергеем Лепченковым. Это бывший программист, который бросил программирование как только смог себе это позволить. Оказалось, за проектом кроется гораздо больше, чем «очередная удобная приложенька в смартфоне». Кажется, я впервые лично поговорил с тем мифическим видом стартапера, который искренне верит, что знает, как сделать мир лучше.
Читать дальше →

БД мессенджера (ч.1): проектируем каркас базы

Reading time5 min
Views21K
Как можно перевести бизнес-требования в конкретные структуры данных на примере проектирования «с нуля» базы для мессенджера.



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

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

Разработка интерфейсных классов на С++

Reading time24 min
Views95K

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



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

Как мы перевели 10 миллионов строк кода C++ на стандарт C++14 (а потом и на C++17)

Reading time7 min
Views50K
Некоторое время назад (осенью 2016), при разработке очередной версии технологической платформы 1С:Предприятие внутри команды разработки встал вопрос о поддержке нового стандарта C++14 в нашем коде. Переход на новый стандарт, как мы предполагали, позволил бы нам писать многие вещи элегантней, проще и надежней, упрощал поддержку и сопровождение кода. И в переводе вроде бы нет ничего экстраординарного, если бы не масштабы кодовой базы и специфические особенности нашего кода.

Для тех кто не знает, 1С:Предприятие – это среда для быстрой разработки кросс-платформенных бизнес-приложений и runtime для их выполнения в разных ОС и СУБД. В общих чертах в состав продукта входят:


Мы стараемся по максимуму писать один код для разных ОС — кодовая база сервера общая на 99%, клиента — примерно на 95%. Технологическая платформа 1С:Предприятие преимущественно написана на C++ и ниже приведены приблизительные характеристики кода:

  • 10 миллионов строк С++ кода,
  • 14 тысяч файлов,
  • 60 тысяч классов,
  • полмиллиона методов.

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

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

Клеточные автоматы в браузере

Reading time8 min
Views11K
image

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

Клеточные автоматы имеют различные формы, виды и размерности. Наверно, самым знаменитым клеточным автоматом является конвеевская игра «Жизнь» (Conway's Game of Life, GOL). Она состоит из двухмерной сетки, в которой каждая клетка содержит двоичное значение (живая или мёртвая). Сопутствующие правила на основании состояния соседних клеток определяют, должна ли клетка быть мёртвой или живой. Правила гласят, что живая клетка умирает от одиночества, если вокруг неё меньше 2 живых клеток. Если живы больше трёх соседних клеток, она погибает от перенаселённости. Другими словами, клетка «выживает», если вокруг неё ровно 2 или 3 живых соседних клеток. Чтобы мёртвая клетка ожила, у неё должно быть ровно 3 живых соседних клеток, в противном случае она остаётся мёртвой. Пример автомата GoL, итеративно проходящий несколько состояний, показан ниже.

Game of Life

Ещё один знаменитый вариант клеточного автомата одномерен; он называется элементарным клеточным автоматом (Elementary Cellular Automaton, ECA). Именно его мы реализуем в этом посте.
Читать дальше →

О коте Шредингера

Reading time12 min
Views20K

Зачем


О ситуации с котом Шредингера, наверно, имеет представление большинство хабровцев, интересующихся физикой. Поэтому я не буду ее излагать. Дискуссия ведется вокруг интерпретации состояния кота. Вот альтернативы:

  1. Кот “И жив И мертв”. Это описывается в квантовой механике как суперпозиция состояний “жив” и “мертв” и, значит, возможны какие-то интерференционные эффекты, подобно случаю рассеяния света на двух щелях.
  2. Кот “ИЛИ жив ИЛИ мертв”. Эта трактовка запрещает вышеуказанную суперпозицию и, значит, запрещает интерференционные эффекты.

Моя задача изложить точку зрения, вытекающую, как мне кажется, из чтения книги “Квантовая механика” Фейнмана.
Дальше

Для усиления внимания наш мозг не повышает концентрацию, а использует информационные фильтры

Reading time8 min
Views15K

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



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

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

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

Information

Rating
Does not participate
Registered
Activity

Specialization

C++ Разработчик
Middle