Search
Write a publication
Pull to refresh
-6
0
Андрей @SexTools

User

Send message

Японские кроссворды на QtQuick

Reading time7 min
Views9.6K

Череп и кости, КДПВ


Люблю в свободное время что-нибудь прототипировать. Это позволяет поизучать что-то новое. Данный прототип является клиентом для ресурса http://www.nonograms.ru/, разработчиком которого является Чугунный К.А/ KyberPrizrak /. Весь код доступен на GiHub. На стороне C++ работа с HTML, модель галереи. На стороне QtQuick визуализация.


В этот раз решил поковырять:


  • Q_GADGET и его использование в Qml;
  • есть ли жизнь без Qt WebKit;
  • поковырять Qt Labs Controls.


    Что сделано:


  • галерея кроссвордов;
  • разгадывание кроссворда.

Под катом будет рассмотрено:


  • скриншоты;
  • как получить HTML без Qt WebKit;
  • как сделать кроссворд без Canvas.
Читать дальше →

Qt Quick Controls 2 — обещанного три года ждут

Reading time3 min
Views23K
Именно столько прошло с момента выхода Qt Quick 2 и объявления о новой стратегии развития, направленной на поддержку мобильных платформ.

Технология взрослела, разработчики лечили детские болезни, но для полного счастья не хватало трех вещей:

  • Правильного масштабирования на High DPI экранах
  • Компонентов, специфичных для смартфонов
  • Гибкой стилизации имеющихся компонентов

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

С отсутствием компонентов решалось тоже просто, но трудоемко: велосипедами. Надо заметить, что в последнее время появилось несколько приличных пользовательских наборов, под Android, Material, iOS. Для меня до сих пор загадка, почему Digia при всей ориентированности на мобильники выпустили первую версию контролов под настольные платформы, где и виджеты себя чувствуют неплохо.

Полтора года назад появился стандартный стиль имитирующий Android 4.x — ситуацию это не спасло. Стилизация у Qt Quick Controls 1 недостаточно гибкая, в общем опять велосипеды, благо пишутся они довольно просто, и почти все нужное уже написано в предыдущем пункте.

В общем до 5.6* была печалька, а теперь и на нашей улице праздник

*В Qt 5.6 новые контролы представлены в качестве технологического превью под именем Qt Labs Controls, полноценно запустятся в ближайшем релизе 5.7, который обещают в июне.
А изменилось-то что?

ПриватБанк начал продавать сойлент

Reading time3 min
Views38K
Что такое «ПриватБанк», думаю, объяснять не нужно. Некоторые могут уже знать о том, что такое «сойлент», если читали эту «Сойлент 2.0 — жидкая еда будущего для борьбы с перекусами и фастфудом» или любую другую статью о данном продукте. Но большинство всё же может быть не в курсе, что за продукт такой «сойлент», поэтому я опишу, что это такое и с чем его едят (в прямом и переносном смыслах).

Сойлент (англ. Soylent) — напиток, призванный по замыслу создателя, американского предпринимателя и программиста Роба Райнхарта (Rob Rhinehart), полностью заменить традиционную пищу. Содержит все вещества, необходимые для поддержания жизнедеятельности: углеводы, аминокислоты, белки, жиры, клетчатку, кальций и многое другое. Разработан в 2013 году, с апреля 2014-го поставляется в виде порошка, растворимого в воде. С августа 2015-го также доступна питьевая версия, т.н. «Сойлент 2.0» (да, у этого пищевого продукта существуют версии – его рецепт периодически улучшается и проходит, так сказать, апгрейд).

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

Работа с геозонами (geofences) в Android. Обновление

Reading time4 min
Views13K

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


image


Как работать с Geofences подробно рассмотрено в единственном русскоязычном примере по использованию Location APIs в статье на хабре, но с тех пор прошло уже 2 года, и информация сильно устарела.


Пример автора на github, к сожалению, даже не компилировался, поэтому я решил его завести под свежие версии библиотек. На мое удивление, изменений в API между com.google.android.gms:play-services:4.0.30 и com.google.android.gms:play-services:8.4.0 оказалось много! Собственно, о них дальше и пойдет речь в статье.

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

Радость и грусть разработки на Qt под Android (и не только)

Reading time5 min
Views34K
На хабре то и дело мелькают статьи об успешном опыте использования Qt для разработки под Android, а также под iOS и WP. Статьи наполнены достаточно большим энтузиазмом — ведь это так здорово: пишешь и тестируешь UI на десктопе, а потом просто собираешь с помощью нехитрых команд под Android, iOS, WP, заливаешь в сторы и готово. В этой же статье я хочу поделиться опытом «собирания грабель» преимущественно при разработке под Android.
Читать дальше →

Персонажи сказок Старой Руси

Reading time15 min
Views192K


Если вы регулярно читаете наш блог, то наверняка помните пост про создание собаченьки, персонажа мобильной игры «Эволюция». Нарисовал её (и написал пост) ведущий художник проекта Роман Amokrus Папсуев. Однако, как и все талантливые люди, Роман творит не только на работе, но и в свободное время — для души. Однажды ему пришла в голову идея перерисовать всем известных персонажей русских сказок и былин в современном игровом фэнтези-стиле. В результате получилась целая серия замечательных карандашных рисунков, выполненных с большим вниманием к деталям. Роман не руководствовался персонажами какой-то конкретной игры, образы получились собирательными. Впрочем, лучше сто раз увидеть, чем один раз прочитать.

Добро пожаловать под кат, его рассказ ждет вас там (также смотрите вторую часть). Много картинок внутри!
Читать дальше →

OEM-активация Windows Vista/7/8/8.1 под гипервизором QEMU

Reading time6 min
Views198K
OEM-версии ОС от Microsoft, начиная с Vista, используют проверку подлинности, основанную на сличении трех компонентов:

  • OEM-сертификата, вшитого в дистрибутив ОС
  • бинарного ключа, вшитого в BIOS, а конкретно — в таблицу ACPI SLIC
  • лицензионного 25-значного ключа производителя, вшитого в дистрибутив ОС

При успешном сличении трех этих компонентов происходит оффлайн-активация ОС. На корпусе ПК в этом случае имеется наклейка, содержащая лицензионный ключ конкретного экземпляра ОС (а не производителя), которым можно произвести онлайн-активацию ОС в случае ее установки не с образа, предоставляемого производителем ПК, а с «чистого» (MSDN) OEM-образа от Microsoft.

Кроме того, лицензионный ключ конкретного экземпляра ОС может быть вшит в текстовом виде в BIOS, в таблицу ACPI MSDM. В этом случае, при установке ОС ключ будет извлечен из BIOS и вшит в конкретный экземпляр ОС. OEM-наклейка на корпусе ноутбука в этом случае может уже не содержать лицензионный ключ. Такой способ используется для активации Windows 8/8.1
Читать дальше →

Дорожная сеть OpenStreetMap

Reading time5 min
Views17K
Один из главных параметров карты — это информативность. Грубо говоря, это то, сколько информации можно считать с карты своими глазами. На самом подробном масштабе всё выглядит просто: места на экране много и нужно рисовать всё, что интересно пользователю (есть у нас в файле данных). Хотя тут остаётся важная задача — определить, что же всё-таки ему интересно. На обзорных масштабах всё сложнее: данных слишком много и надо выбрать те, которые повысят информативность и наглядность карты. Одновременно с этим карту нельзя перегружать. Если отобразить всё, то она станет нечитаемой. А пригодных для отображения на обзорном масштабе без предварительной обработки видов интересных пользователю объектов практически нет!

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


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

Полезные трюки PostgreSQL

Reading time3 min
Views203K


В мануале есть всё. Но чтобы его целиком прочитать и осознать, можно потратить годы. Поэтому один из самых эффективных методов обучения новым возможностям Postgres — это посмотреть, как делают коллеги. На конкретных примерах. Эта статья может быть интересна тем, кто хочет глубже использовать возможности postgres или рассматривает переход на эту СУБД.
Читать дальше →

Советы по написанию библиотек на Rust

Reading time9 min
Views11K

Перевод статьи Pascal Hertleif "Good Practices for Writing Rust Libraries" (2015.10.24).



Прошел примерно год, как меня заинтересовал Rust, язык программирования от Mozilla Research, сосредоточенный на решении трёх задач: безопасность, скорость и параллелизм. Он такой же низкоуровневый, как Си или C++, имеет хорошую систему типов (с обобщениями (generics) и типажами (traits)), дружелюбный компилятор и отличный менеджер пакетов Cargo.


С выпуска Rust 1.0 прошло уже полгода (май 2015): многие библиотеки (пакеты, crates), включая некоторые мои, были опубликованы в центральном регистре crates.io. Вот неплохие практики (еще рановато называть их "лучшими"), которые помогут другим людям находить, использовать и дополнять вашу библиотеку.

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

VR&ASMR

Reading time2 min
Views12K

Технологии виртуальной реальности постепенно проникают во все новые сферы работы и отдыха человечества. Не стало исключением и направление видеороликов для релаксации ASMR. YouTube включил поддержку 360° видео, а ASMR-артисты получили в свое распоряжение новые камеры. Но пока что эти видео являются экспериментами и поиском нового формата. Предлагаю вам посмотреть на то, какой путь успела проделать VR ASMR.
Читать дальше →

Gradle: 5 полезностей для разработчика

Reading time6 min
Views44K
Привет, Хабр! Настало время, когда можно сказать, что «new build system» Gradle является стандартом отрасли Android-разработки. Инструмент сделан настолько просто и удобно, что большинство разработчиков не испытает трудностей, даже не зная, как он устроен, и какие дополнительные возможности в нём есть — возникающие проблемы легко решаются с помощью 5 минут на StackOverflow, путем копирования «магического кода» в конфигурационные файлы. Возможно, в том числе из-за этого не все разработчики изучают Gradle детально и не знают о многих его полезных возможностях, которые существенно облегчают жизнь.


Сегодня рассмотрим пять таких полезностей

Проектирование в PostgreSQL документо-ориентированного API: Полнотекстовый поиск и сохранение многих документов(Часть 2)

Reading time5 min
Views10K
В первой части этой серии статей, я создал хорошую функцию сохранения, равно как и другую функцию, позволяющую создавать изменяемые документо-ориентированные таблицы на лету. Они работают исправно и делают именно то, что надо, но мы можем сделать еще многое. Особенно: я хочу полнотекстовый поиск, индексируемый на лету и сохранение многих документов внутри транзакции.

Давайте сделаем это.
Читать дальше →

Проектирование в PostgreSQL документо-ориентированного API (Часть 1)

Reading time5 min
Views18K
Данная статья является переводом, оригинальная статья находится вот здесь, автор Rob Conery.

Postgres, как многие знают, поддерживает JSON как тип хранения данных, а с выходом 9.4, Postgres теперь поддерживает хранение JSON в виде jsonb — бинарного формата.

Это прекрасные новости для тех, кто хочет шагнуть дальше простого «хранения JSON как текста». jsonb теперь поддерживает индексирование с использованием GIN индекса, а также имеет специальный оператор запросов, который позволяет получить преимущества GIN индекса.
Читать дальше →

Учёные изучили паразита, которым кошки заражают людей. Обещают выпустить вакцину

Reading time2 min
Views56K


Науке 70 лет известен чрезвычайно распространённый и тонко действующий паразит под названием Toxoplasma gondii, которым домашние кошки заражают мозг своих хозяев, вызывая у них изменения личности. Среди изменений — повышенная рискованность (подтверждено), более медленные реакции (подтверждено), любовь к кошкам (не подтверждено, но возможно), шизофрения и паранойя (в редких случаях). Более того, отдельные исследователи считают, что «в популяциях, где этот паразит очень распространён, массовые личностные изменения могут приводить к изменениям в их культуре».

К счастью, последние научные исследования позволяют надеяться, что скоро человечество наконец-то избавится от «кошачьей зависимости».
Читать дальше →

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

Reading time3 min
Views54K


Статья будет полезна начинающим разработчикам игр. В ней мы рассмотрим преимущества и способы создания и рендеринга трёхмерных объектов для изометрических 2D-игр на примере Blender. В статье не будет каких-то сложных операций, достаточно начальных знаний 3D-редактора. Для примера рендеринга и анимации я взял башню из Dune2, и, чтобы ей было не так скучно одной, дополнил двумя постройками из Desert Strike.
Читать дальше →

Сойлент 2.0 — жидкая еда будущего для борьбы с перекусами и фастфудом

Reading time3 min
Views76K


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

Также мы затрагивали вопросы здоровья — например, действительно ли еда из фастфуда вреднее, чем «ресторанная», а также рассказывали о новом напитке для похудения под названием «пуленепробиваемый кофе». Еще одним, даже более популярным у аудитори и инвесторов проектом, является жидкая еда под названием Сойлент. Не так давно разработчики выпустили новую версию этого «продукта». Издание TechCrunch решило поподробнее изучить, кому он может быть полезен, и для чего задумывался создателями. Мы представляем вашему вниманию адаптированный перевод этой заметки.
Читать дальше →

Gson или «Туда и Обратно»

Reading time25 min
Views187K
Недавно мне пришлось поработать с библиотекой Google Gson, предназначенной для преобразования Java-объектов в текстовый формат JSON (сериализация) и обратного преобразования (десереализация). Часто при работе с Gson хватает стандартных настроек библиотеки, но бывают случаи (в том числе мой), когда необходимо кастомизировать процессы преобразований.

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

Для начала нужно выбрать какую-нибудь предметную область. Скажем, не знаю, почему-то приходят в голову мысль про отряд гномов. Собственно, почему бы и нет?


За синие горы, за белый туман...

Необычные способы отображения времени для Pebble Time

Reading time2 min
Views11K


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

Проблема читов в онлайн-играх

Reading time8 min
Views86K


Большинство крупных многопользовательских игр рано или поздно сталкиваются с тем, что не все пользователи играют честно. В нашем шутере Warface в какой-то момент это стало ощущаться особенно сильно. Для борьбы с читерами мы используем целый комплекс решений. Одним из компонентов этого комплекса является наша внутренняя разработка под названием MRAC (Mail.Ru AntiCheat). После ее внедрения мы добились хороших результатов: среднее количество ежедневно улетающих в бан читерских аккаунтов упало с 17000 в начале года до 1500 сейчас, при том, что количество жалоб от пользователей на читеров существенно уменьшилось. На выявление подозрительной активности и блокировку аккаунта сейчас уходит примерно 5 минут, вместо прежних 20. Сейчас система распознает и реагирует на более чем 200 сигнатур читерского ПО и постоянно совершенствуется.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity