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

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

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

Медиазапросы: width против device-width

Время на прочтение6 мин
Количество просмотров62K
Довольно часто люди не понимают разницы между шириной (width) и шириной устройства (device-width) (и, более того, есть примеры с минимальной (min-device-width) и максимальной шириной устройства (max-device-width)), используя медиазапросы CSS. Это недопонимание приводит к написанию плохого кода и значительно большему количеству работы для разработчика. Этот вопрос очень часто встречается на форумах SitePoint, поэтому пришло время объяснить все подробнее. В этой статье будет затронута эта проблема, а также мы более подробно рассмотрим, какой вариант следует использовать, создавая отзывчивые сайты.
Читать дальше →

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

Время на прочтение28 мин
Количество просмотров187K
Сегодня мы представляем вашему вниманию адаптированную подборку инструментов (в том числе облачных) для разработчиков, которые позволяют создавать по-настоящему качественные проекты. Здесь представлены исключительно SaaS, PaaS и IaaS сервисы, предоставляющие бесплатные пакеты для разработчиков инфраструктурного ПО.

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

Яндекс открывает ClickHouse

Время на прочтение14 мин
Количество просмотров170K
Сегодня внутренняя разработка компании Яндекс — аналитическая СУБД ClickHouse, стала доступна каждому. Исходники опубликованы на GitHub под лицензией Apache 2.0.



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

В этой статье мы расскажем, как и для чего ClickHouse появился в Яндексе и что он умеет; сравним его с другими системами и покажем, как его поднять у себя с минимальными усилиями.
Читать дальше →

Построение диаграмм и графов в Doxygen

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


Данная статья входит в получившийся цикл статей о системе документирования Doxygen:

  1. Документируем код эффективно при помощи Doxygen
  2. Оформление документации в Doxygen
  3. Построение диаграмм и графов в Doxygen

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

Android WebView: актуальные проблемы и их решение

Время на прочтение13 мин
Количество просмотров183K
На прошедшей встрече AndroidDevs Meetup выступили несколько разработчиков из команды мессенджера ICQ. Мой доклад был посвящен Android WebView. Для всех, кто не смог приехать на встречу, публикую здесь статью по мотивам выступления. Пойду по верхам, крупными штрихами. Глубоких технических деталей и много кода давать не буду. Если вас заинтересуют подробности, по ссылке в конце поста можно скачать приложение, специально написанное в качестве иллюстрации, и все увидеть на примерах.

Что такое WebView?


WebView — это компонент платформы Android, который позволяет встраивать web-страницы в Android-приложения. По сути, это встраиваемый браузер. При помощи WebView примерно год назад мы решили создать ICQ Web API для интеграции web-приложений в наш мессенджер. Что представляет собой web-приложение? По сути, это HTML-страница, которая содержит JavaScript и работает внутри ICQ. Используя ICQ Web API, web-страницы через JavaScript могут отдавать ICQ разные команды, допустим, на отправку сообщений, открытие чата и т.п.


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

Гаджеты для ценителей искусства Зелёного Змия

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


Новый год — самый щедрый праздник в году. По количеству дней отдыха, по тоннам съеденных салатов, эшелонам истраченных петард, хлопушек и фейерверков. И, само собой, по количеству цистерн выпитого спиртного. Отрицать это было бы ханжеством. До конца новогодних праздников ещё около недели, и — музыкой навеяло — мы решили предложить вам подборку алкогольных гаджетов.
Читать дальше →

Инструментарий для игры в снежки

Время на прочтение2 мин
Количество просмотров24K
Январь в этом году не подкачал, морозный и снежный. Это вам не унылый дождливо-слякотный декабрь, когда приходилось гадать, а будет ли снег хотя бы на Новый год. Ведь хуже зимы без снега может быть только снежное лето, как утверждает народная мудрость. Потому что ни на санках покататься, ни в снежки поиграть, ни на лыжах с коньками укататься, ни на тройке с бубенцами под гармонь не покуражиться, ни в прорубь из бани голым выбежать. В общем, без снега не было бы половины наших культурных архетипов и шаблонов. Так что пока природа дарит нам хорошие снежные зимы, надо этим пользоваться, ибо глобальное потепление не дремлет. Главная и всем доступная снежная забава — игра в снежки. У этого народного развлечения есть один недостаток: руки мёрзнут снег лепить. А в перчатках и варежках неудобно. И чтобы радоваться снегу было сподручней и интересней, можно воспользоваться специальными зимними гаджетами.

Например, для приготовления круглых холодных боеприпасов можно использовать щипцы для мороженого лепки снежков Flexible Flyer Snowball Maker.


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

Гаджеты для души. Или что подарить девушке айтишника

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


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

Перегрузка операторов в C++

Время на прочтение6 мин
Количество просмотров779K
Доброго времени суток!

Желание написать данную статью появилось после прочтения поста Перегрузка C++ операторов, потому что в нём не были раскрыты многие важные темы.

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

Недорогой конструктор 3D-принтера Аврора. Будет ли революция?

Время на прочтение6 мин
Количество просмотров31K
3D принтеры JGAURORA уже давно известны на рынке у печатников, эта компания производит как недорогие принтеры для дома и офиса, так и профессиональные. Сегодня к нам на обзор попал младший брат из семейства JGAURORA — модель 605S DIY в виде комплекта для сборки на акриловой раме. Вот из этого набора деталей и предстоит создать нечто, что будет воплощать нематериальное в осязаемое.

image

Итак встречайте – набор для сборки 3D-принтера от JGAurora.
Читать дальше →

Кюветы Android, Часть 1: SDK

Время на прочтение12 мин
Количество просмотров27K
Довольно долгое время я никак не мог понять, в чём же разница между «библиотекой» и «фреймворком». Нет-нет, я умел и читать, и гуглить, но до меня всё никак не доходил смысл этих понятий. Начав же программировать под андроид, я наконец понял, что значат слова «библиотеку использует программист, но программиста использует фреймворк».
В этой серии статьей я хочу рассказать о проблемах, с которыми мне пришлось столнулся при разработке под андроид. Моей целью является не предоставление каких-либо убер-решений приведенных проблем, а лишь информирование о том, с какими проблемами может столкнуться тот, кто посягнет на святой грааль Android SDK. Не думаю, что суровые синьоры откроют для себя Америку, но как говорится: «повторение — мать учения».
image
Читать дальше →

Первый в мире карманный гексакоптер за 18$ — MJX X901

Время на прочтение2 мин
Количество просмотров21K
Я недавно рассказывал о первых двух моделях, представленных компанией MJI, которые приятно удивили. В MJX X800 инженеры компании совместили управление стиками с управлением наклонами, а модель MJX X600 наделили функцией возврата на точку без использования спутников. А на этот раз они решили нас удивить размером и ценой, выпустив гексакоптер размером со спичечный коробок и стоимостью чуть больше 18 баксов. Встречайте MJX X901

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

Дьявольский квадрокоптер за 100$ с онлайн-трансляцией на монитор — WLtoys V666 FPV

Время на прочтение3 мин
Количество просмотров18K
В мире любителей квадрокоптеров уже давно на слуху и компания WLtoys и её моделька V666, так что мы устроили собственное тестирование полной версии, которая оснащена камерой (1080p) и монитором для трансляции с этой камеры. Итак, аккумуляторы заряжены, батарейки вставлены, поле найдено, погода заказана — поехали.

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

NIHUI TOYS U807 — неожиданно честный квадрокоптер с интересной камерой для 45$

Время на прочтение3 мин
Количество просмотров18K
Сегодня расскажу про малоизвестный в наших краях, квадрокоптер с интересным производителем, NIHUI TOYS U807. Изначально нас он заинтересовал, так как имеет «Безголовый режим» (Headless Mode), средние размеры, интересный дизайн и камеру c 2 мегапикселями. Когда он пришёл и мы увидели камеру — захотелось сразу её куда-нибудь выкинуть подальше, туда же где лежит стоковая камера от Syma X5C, но всё-таки мы взяли её на тестирование и вот что из этого получилось.


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

Syma X8W — большой квадрокоптер с видео-трансляцией за 80$

Время на прочтение5 мин
Количество просмотров50K
Я уже дважды восторженно отзывался о квадрокоптерах компании Syma в статьях про Syma X5SW и Syma X13. Напомню, что это небольшие квадрокоптеры на которых можно летать, как дома, так и на улице. Они просты, не нагружены лишними сложностями в управлении и поэтому мне они так нравятся. И я совершил ошибку, когда решил, что Syma X8W будет такой же «пушистый», ведь это квадрокоптер уже другой весовой категории, а значит его сила и возможности гораздо выше младших братьев.


Подробности под катом.
Читать дальше →

MJX X600 — первый бюджетный уличный гексакоптер с функцией возвращения без GPS

Время на прочтение4 мин
Количество просмотров17K
В прошлой статье я писал о маленьком гексакоптере MJX X800, стоимостью около 30$, который мне очень понравился. Поэтому сегодня я хочу рассказать о его старшем брате — MJX X600. В этом коптере производитель продолжил внедрение своих инноваций, значительно увеличил размер и при этом сохранил интересную цену. Наиболее же интересной функцией в новинке стал модуль возврата домой, который впервые реализован без использования GPS, что и позволило существенно снизить стоимость.

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

«Книжная полка фронтендера» — как гугл, только лучше

Время на прочтение2 мин
Количество просмотров38K
Список книг — «Книжная полка фронтендера

Привет, читатель!

В этой публикации я расскажу тебе о «Книжной полке фронтендера».

Предыстория


К сожалению, в рунете очень мало по-настоящему качественных ресурсов для изучения фронтенда. Эти ресурсы можно буквально пересчитать по пальцам одной руки — это Frontender Magazine, HTML Academy, «Современный учебник JavaScript». Я благодарю авторов этих ресурсов за их неоценимый вклад в развитие и популяризацию фронтенда в рунете.

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

Чудо свершилось. Вышла «отвязанная» версия Arduino Mega Server

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

Революция о которой так долго говорили большевики свершилась. Теперь вы можете взять карточку памяти microSD, записать на неё файлы дистрибутива AMS и ваша Arduino превратиться в маленькое (или большое, это как посмотреть) чудо. Вам больше не нужны «костыли» с поддержкой стороннего сервера, Arduino Mega Server стал полностью автономным и вполне «юзабельным» в одиночном режиме работы. И это открывает для всех нас очень интересные перспективы.
Читать дальше →

Отладочная плата Orange Pi PC Allwinner H3 всего за $15

Время на прочтение2 мин
Количество просмотров71K
Orange Pi PC Allwinner H3 Top

Ранее компания Shenzhen Xunlong Software CO. использовала процессоры Allwinner A20 и Allwinner A31s в отладочный платах Orange Pi. Но недавно компания представила модель Orange Pi PC на базе процессора Allwinner H3, которая стоит существенно дешевле предыдущих, и составляет $15. Низкая стоимость платы была достигнута, благодаря низкой цены самого процессора Allwinner H3, и составляет $6.
Читать дальше →

Несколько интересных особенностей MySQL

Время на прочтение8 мин
Количество просмотров63K
В не очень далеком прошлом мне пришлось покопаться немного в исходном коде MySQL, и разобраться в некоторых аспектах его работы. В ходе работы лопаткой, и эксперимeнтов, я наткнулся на несколько очень интересных особенностей, часть из которых просто забавна, а в случае некоторых бывает очень интересно понять, чем руководствовался программист, который принимал решение сделать именно так.

Начнем с такого интересного типа, как ENUM.

mysql> CREATE TABLE enums(a ENUM('c', 'a', 'b'), b INT, KEY(a));
Query OK, 0 rows affected (0.36 sec)

mysql> INSERT INTO enums VALUES('a', 1), ('b', 1), ('c', 1);
Query OK, 3 rows affected (0.05 sec)
Records: 3  Duplicates: 0  Warnings: 0


Итак, у нас есть таблица, в ней есть два столбца. У первого, a, тип ENUM, у второго, b, INT. В таблице три строки, у всех трех значение b равно 1. Интересно, чему равны минимальный и максимальный элементы в столбце a?

mysql> SELECT MIN(a), MAX(a) FROM enums;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| c      | b      |
+--------+--------+
1 row in set (0.00 sec)


Кажется странным, было бы разумно, если бы самым маленьким был 'a', а самым большим — 'c'.
А что если выбрать минимум и максимум только среди тех строк, где b = 1? То есть, среди всех строк?

mysql> SELECT MIN(a), MAX(a) FROM enums WHERE b = 1;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| a      | c      |
+--------+--------+
1 row in set (0.00 sec)


Вот так мы заставили MySQL поменять свое мнение о том, как сравнивать поля в ENUM, просто добавив предикат.
Разгадка такого поведения заключается в том, что в первом случае MySQL использует индекс, а во втором нет. Это, конечно, не объясняет, почему MySQL сравнивает ENUMы по разному для сортировки в индексе, и при обычном сравнении.

Второй пример проще и лаконичнее:

mysql> (SELECT * FROM moo LIMIT 1) LIMIT 2;
+------+
| a    |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)


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

Интересно, что далеко не любой SELECT в скобках сработает, в частности, UNION в скобках — это синтаксическая ошибка:

mysql> (SELECT * FROM moo UNION ALL SELECT * FROM hru) LIMIT 2;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION ALL SELECT * FROM hru) LIMIT 2' at line 1


Еще несколько интересных примеров под катом
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Savona, Liguria - Savona, Италия
Зарегистрирован
Активность