Pull to refresh
161
0.2
Павел @PaulZi

User

Send message

WebGL для всех

Reading time11 min
Views53K


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

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

Этой статьёй хочется облегчить порог вхождения в чистый WebGL, дать начальное представление и подсказать, куда двигаться дальше.
Поехали!
Total votes 70: ↑66 and ↓4+62
Comments24

Простой Blender. Часть 4

Reading time8 min
Views57K

КДПВ. System's check.

Дисклеймер


Как вы заранее догадались, в этой серии я тоже не покажу, как нарисовать танк. В этой серии я напишу про менеджмент объектов (в прошлой писал про геометрию). Просто потому, что сейчас — самое время (вообще, я хотел вставить эту часть сразу после первой, но не срослось).
Где. Мой. Танк?!
Total votes 23: ↑22 and ↓1+21
Comments6

Старт 7 Вт — светодиодная лампа из «Пятёрочки» и «Дикси»

Reading time2 min
Views61K
В магазинах «Пятёрочка» и «Дикси» по всей стране продаётся единственная модель светодиодной лампы — Старт 7 Вт. Стоит она около 270 рублей.



Я купил и протестировал эту лампу.
Читать дальше →
Total votes 94: ↑93 and ↓1+92
Comments81

Безлимитная Yota, а есть ли альтернатива?

Reading time4 min
Views51K
В далеком 2009-м это был настоящий прорыв. Дорогущий проводной офисный интернет, спутник с пингами по 1,5 секунды, GPRS по доллару за мегабайт и тут здрасьте я ваша Йота! Логотип полностью соответствовал феерическому появлению нового интернет-провайдера – поставили всех “офисных” провайдеров на уши. А что мы имеем сегодня?


Шесть дней Карл! Шесть дней я буду качать это обновление от Microsoft через йоту…

Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments54

Партицирование и боль MySQL

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

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

Шаг 1. Убираем AUTO INCREMENT из таблицы b_iblock_element.
ALTER TABLE b_iblock_element MODIFY ID INT(11) NOT NULL

Шаг 2. Удаляем PRIMARY key из таблицы.
ALTER TABLE b_iblock_element DROP PRIMARY KEY

Шаг 3. Создаем новый PRIMARY KEY, который будет содержать прошлый ключ и IBLOCK_ID, по которому идет разбиение на partition`ы.
ALTER TABLE b_iblock_element ADD CONSTRAINT id_iblock_id PRIMARY KEY (ID,IBLOCK_ID)

Шаг 4. Возвращаем AUTO INCREMENT.
ALTER TABLE b_iblock_element MODIFY ID INT(11) NOT NULL AUTO_INCREMENT

Шаг 5. Наконец то делаем разбиением на 10 частей.
ALTER TABLE b_iblock_element PARTITION BY HASH(IBLOCK_ID) PARTITIONS 10;


Все довольно просто. Функция по которой идет разбиение может содержать ключи, но все эти ключи должны быть в PRIMARY KEY.

Теперь же мне предстояло разбить другую таблицу, и хотелось бы ее разбить сразу по 2 полям: по типу и дате. Причем дату хотелось разбить по месяцам и данные хранить не больше года.
Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments9

Еще один способ отключения сбора телеметрии в OC Windows 10

Reading time10 min
Views352K
Микрософт с помощью пасьянса и косынки учила пользователей пользоваться мышью,
теперь с помощью windows 10 учит читать лицензионное соглашение.

После выхода windows 10 сразу появились сообщения о сборе информации о действиях пользователей и много обсуждений, что делать. Достаточно быстро пользователи составили список основных серверов, собирающих информацию и попытались их заблокировать через файл hosts. Но скептики сразу выдвинули здравое предположение, что MS мог предусмотреть этот метод и некоторые адреса прописать в коде. Тем более, что MS всегда может актуализировать адреса серверов через windows update.

В нашей компании начали появляться первые пользователи windows 10, и мы решили опробовать блокировку передачи телеметрии через встроенный windows firewall.
Читать дальше →
Total votes 97: ↑89 and ↓8+81
Comments245

Как работает реляционная БД

Reading time51 min
Views544K
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →
Total votes 232: ↑229 and ↓3+226
Comments134

Пешком по тайлам

Reading time6 min
Views24K


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

Ни один из известных нам сервисов не строил маршрут из точки А до точки Б там, где нет тропинок и тротуаров, зато полно заборов и домов причудливых очертаний.

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

Принято считать, что такой способ строить маршруты неприемлем, потому что съедает много ресурсов. Под катом — как мы с этим справились.
Читать дальше →
Total votes 65: ↑64 and ↓1+63
Comments26

HTML5-версия StarCraft

Reading time1 min
Views31K


Оригинальная игра StarCraft (с дополнением Brood War) портирована на HTML5. Теперь этот шедевр от студии Blizzard Entertainment запускается прямо в браузере. Правда, это пока что не полная игра, а только демо-уровни, но выглядит вполне достойно. Разработчик немало потрудился, портируя код с языков программирования C, C++ и ассемблера на Javascript.
Читать дальше →
Total votes 43: ↑37 and ↓6+31
Comments55

Уязвимость (?) и слежка в эмуляторе Bluestacks?

Reading time2 min
Views67K
Прошло два дня этой недели, а крупных скандалов еще нет. Болото стало затягиваться ряской. Давайте поговорим о Bluestacks, эмуляторе Android. Разработчики утверждают, что его установили 90 000 000 человек. Ну давайте я попробую кинуть в Bluestacks грязью.

image
Читать дальше →
Total votes 56: ↑53 and ↓3+50
Comments51

Оптимизация базы данных CDR в MySQL

Reading time1 min
Views10K
Рано или поздно, но база CDR разрастается до значительных размеров. Существует несколько довольно простых способов её оптимизировать.

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

2. Оптимизируйте InnoDB. В конфиге my.cnf рекомендую следующие настройки:

innodb_buffer_pool_size = 256M ; Рекомендую установить здесь значение, равное половине RAM вашего сервера.
innodb_file_format = Barracuda ; Более новый формат БД. Пригодится далее.
innodb_buffer_pool_instances = 1 ; Если у вас не больше гигабайта выделено под буферный пул, ставьте единицу.
innodb_change_buffer_max_size=10 ; В CDR мы мало пишем и много читаем. Буфер на запись ставим небольшой.
innodb_flush_log_at_trx_commit=2 ; Дополнительная буферизация при записи ценой риска потери пары последних записей в случае краха.

Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments18

Microsoft добавил средство сбора телеметрии в Windows 7/8/8.1

Reading time1 min
Views301K
Сегодня на MS Windows 7 и 8.1 прилетели обновления KB3080149 и KB3075249. Телеметрическая информация передаётся на следующие сервера:
vortex-win.data.microsoft.com
settings-win.data.microsoft.com

Передача осуществляется через TCP по порту 443 с использованием SSL.
Для параноиков людей, беспокоящихся о несанкционированной передаче информации Microsoft (далее возможно и третьим лицам), предлагаю добавить сервера в список исключений маршрутизатора, а следующие строчки в файл hosts (%windir%\System32\drivers\etc\hosts):
127.0.0.1 vortex-win.data.microsoft.com
127.0.0.1 settings-win.data.microsoft.com
Total votes 86: ↑76 and ↓10+66
Comments279

Распознавание кириллической Яндекс капчи

Reading time3 min
Views46K
Эта статья продолжает цикл об особенностях, слабых сторонах и непосредственно о распознавании популярных капчей.
В предыдущей публикации мы затронули готовое решение KCAPTCHA, которое несмотря на неплохую защищенность было распознано без сколько-нибудь серьезной предварительной обработки и сегментации, обычным многослойным персептроном.

Теперь на очереди кириллическая Яндекс капча, с которой, уверен, многие из нас отлично знакомы.

Итак, мы имеем такую капчу:

imageimageimage
Читать дальше →
Total votes 51: ↑47 and ↓4+43
Comments17

ipgeobase в Nginx

Reading time3 min
Views18K
Когда возникает задача — по адресу посетителя получать его город и налоговый (автомобильный) код региона, кажется — да это же просто, в инете полно таких штук!
А потом смотришь: одни платные, другие нельзя у себя развернуть, третьи можно, но это ресурсозатратно, четвертые о регионах РФ ничего не знают…
И тут на помощь спешит больной мозг программиста с навязчивой идеей: «Нет у других — сделай сам»

Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments9

Две простые и эффективные бесплатные программки для восстановления потерянных данных

Reading time9 min
Views129K
файлы…файлы…файлы

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

О том, как восстановить данные самостоятельно, если знакомый гуру категорически отказывается общаться в выходной на профессиональные темы, а ближайший сервис откроется не раньше понедельника, мы расскажем в нашей статье.
Читать дальше →
Total votes 16: ↑12 and ↓4+8
Comments14

Как написать пост с формулами: markdown + LaTeX

Reading time3 min
Views24K
Привет! На Хабре периодически появляются статьи, где авторы хотят вставить математические формулы: inline_formula, inline_formula или даже


У некоторых это получается, у некоторых — с трудом. parpalak сделал web-сервис для вставки svg формул, и это очень круто. Я хочу дополнить его небольшим скриптом, с которым вставка многих формул сведется к одной команде.

Читать дальше →
Total votes 46: ↑46 and ↓0+46
Comments20

Jii — JavaScript фреймворк с архитектурой от Yii 2

Reading time12 min
Views26K

Вступление


Привет всем хабровчанам, любителям Yii и Node.js.
Продалжаю серию статей про фреймворк Jii и его части. В прошлых частях мы рассмотрели части фреймворка, которые можно использовать без инициализации приложения, а именно — Query Builder и Active Record. Из голосования (а так же писем и комментариев) стало понятно, что продолжать стоит. И на этот раз мы будем говорить о архитектуре и структурных составляющих фреймворка Jii.
Читать дальше →
Total votes 29: ↑24 and ↓5+19
Comments73

Jii: Active Record для Node.js с API от Yii 2

Reading time17 min
Views11K
Jii

Вступление


Привет всем хабровчанам, любителям Yii и Node.js.
Это вторая статья про фреймворк Jii (GitHub), в предыдущей статье мы рассматривали Объекты доступа к данным и конструктор запросов (Query Builder).
Как и обещал, в этой статье я расскажу про использовании Active Record.

Active Record


Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments13

Jii: Полноценный Query Builder для Node.js с API от Yii 2

Reading time14 min
Views17K

Вступление


Привет всем хабровчанам, любителям Yii и Node.js. Почему объединены любители PHP-фреймворка и серверного JavaScript?
Потому что Yii теперь доступен и на JavaScript (как для Node.js, так и для браузера)!

В этой статье мы рассмотрим Query Builder, полностью сохранивший API от Yii2 и работающий на Node.js.
Конструктор запросов — это лишь одна из реализованных частей Jii (не путать с Yii), в данной статье я специально не буду рассматривать фреймворк в целом, потому что его вполне можно использовать и частями.

Jii

Что такое Jii?


Jii — это компонентный JavaScript MVC фреймворк, который повторяет архитектурные решения легендарного PHP фреймворка Yii 2, в большинстве случаев сохраняя его API. Отсюда происхождение названия Jii — JavaScript Yii.
Читать дальше →
Total votes 27: ↑22 and ↓5+17
Comments16

Information

Rating
2,448-th
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity