Pull to refresh
180
0
Валентин @GlukKazan

Программист, Администратор БД

Send message

Простой парсер JSON на PL/SQL

Reading time5 min
Views49K
Буквально вчера внезапно возникла задача — понадобилось разобрать данные в формате JSON непосредственно в хранимой процедуре Oracle. Разумеется, именно для таких вещей в Oracle и была добавлена Java, но хотелось чего-то более своего и написанного непосредственно на PL/SQL. Результаты своего порыва я и выкладываю на суд общественности. Вдруг кому пригодится.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments15

Управление АТС — Дьявол в деталях

Reading time20 min
Views15K
Примерно год назад мне пришлось столкнуться с новой для себя задачей — автоматизацией управления АТС. На первый взгляд, в ней нет ничего сложного: необходимо соединиться с управляющим портом АТС по TCP или Serial-интерфейсу, передать команду и проанализировать ответ. Как выяснилось в процессе работы, простота эта оказалась обманчивой.

В своей статье я хочу рассказать о сложностях, с которыми мне пришлось столкнуться в процессе работы. Вряд ли эта статья будет интересна широкому кругу читателей, но, возможно, специалисты, занимающиеся телефонией, найдут в ней что-то для себя полезное. В качестве иллюстративного материала я буду использовать примеры команд АТС Alcatel S12 и M200, поддерживаемых проектом в настоящее время.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments2

Об одной ошибке

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

Скажу сразу, что себя я квалифицированным специалистом в области криптографии не считаю. Я имел дело с криптоалгоритмами, когда ситуация не оставляла мне другого выбора. Безусловно, было бы лучше, если бы этими работами занимался кто-то более разбирающийся в вопросе, но так получилось, что заниматься ими пришлось мне. В любом случае, я надеюсь, что мой рассказ будет интересен.
Читать дальше →
Total votes 89: ↑76 and ↓13+63
Comments45

Слияние дубликатов в Oracle

Reading time7 min
Views7.2K
Всего несколько дней назад я описывал набор процедур, помогающих бороться с дубликатами в БД PostgreSQL. Напомню, что под дубликатами я понимаю записи внесенные в справочники повторно, например по ошибке. Как выяснилось, для Oracle аналогичный инструмент также может быть полезен.
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments0

Наш вариант теста на знание SQL

Reading time2 min
Views464K
У нас, как и во многих других организациях, проводится тестирование соискателей при поступлении их на работу. Основу тестирования составляет устное собеседование, но в некоторых случаях, даются также практические задания. Несколько дней назад, Руководство попросило меня подготовить набор задач на знание SQL.
Читать дальше →
Total votes 47: ↑38 and ↓9+29
Comments125

Дело о малокском сейфе

Reading time11 min
Views48K

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

Отношение, у меня лично, к текстовым квестам двоякое. С одной стороны, они очень интересны и невообразимо атмосферны. С другой стороны, некоторые из них, пройти совсем не просто. Квест «Пятнашки», сразу поставил меня в тупик. Я вообще не очень хорошо решаю всякого рода головоломки, поэтому решил написать программу, которая найдет решение за меня.
Читать дальше →
Total votes 45: ↑36 and ↓9+27
Comments30

Боремся с дубликатами

Reading time5 min
Views9.6K
Продолжая тему использования динамического SQL, я хочу рассказать об одном полезном инструменте, реализованном мной в рамках одного из текущих проектов. Речь пойдет о дубликатах в справочниках. Под дубликатами, в этой статье, я понимаю записи, внесенные в справочники повторно, например в результате орфографической ошибки при вводе наименования.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments2

Что-то посложнее факториала

Reading time14 min
Views28K
Давным-давно, когда трава была зеленее, а деревья выше, жил-был тролль, по имени Xenocephal. Жил он, в принципе, во многих местах, но мне повезло встретить его на одном форуме, где я, в то время, набирался ума-разума. Я уже не вспомню топика, в котором протекала беседа, но суть ее сводилась к тому, что Xenocephal пытался убедить всех окружающих, что Lisp (с его макросами) — всему голова, а C++, с его шаблонами, жалкое подобие левой руки. Также утверждалось, что наметапрограммировать в нем что-то сложнее набившего оскомину факториала не представляется возможным.
Читать дальше →
Total votes 65: ↑59 and ↓6+53
Comments47

Секционирование и «живые снимки» данных в PostgreSQL

Reading time19 min
Views9.3K
Хотя тема секционирования уже поднималась ранее, я хочу к ней вернуться, чтобы рассказать о своем опыте решения этой задачи, возникшей в связи с необходимостью аналитической обработкой больших объемов данных. Помимо секционирования, я рассмотрю предельно упрощенную реализацию «снимков» агрегированных запросов, автоматически обновляемых при изменении исходных данных..
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments16

Маленький отважный арканоид (часть 4)

Reading time7 min
Views9.6K
После небольшого перерыва, продолжим нашу разработку. Сегодня мы добавим в проект небольшой звуковой эффект, проигрываемый при соударении шарика с чем либо на игровом поле. О работе с SoundEngine (которой мы сегодня воспользуемся) я уже писал ранее. По этой причине, сегодня я расскажу не столько о ней, сколько о том, как ее использование отразится на разрабатываемом нами проекте.
Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments0

Замена манифеста при сборке в Marmalade под Android

Reading time4 min
Views5.5K
В связи с вопросом, заданным Nonameface, я хочу опубликовать небольшое руководство, которое, возможно, окажется для кого-то полезным. Многим, рассматриваемый вопрос может показаться элементарным. Я прошу не судить меня строго, поскольку этот материал адресован начинающим разработчикам.

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

Пользователь, совершенно резонно, может посчитать приложение небезопасным и отказаться от его установки. Давайте посмотрим, как с этим можно бороться.
Читать дальше →
Total votes 4: ↑3 and ↓1+2
Comments2

Маленький отважный арканоид (часть 3 — Box2D)

Reading time26 min
Views13K
Сегодня, как я и обещал, мы вдохнем в наш Arcanoid жизнь. Заставим шарик двигаться, сталкиваясь с кирпичами, а кирпичи, при этом, разбиваться. В принципе, игровая физика в arcanoid не так чтобы очень сложна и вполне реализуема собственными силами. Единственный нетривиальный момент в ней — отслеживание столкновений. Но это именно то, что «взрослые» физические движки умеют лучше всего!

Так почему бы их не использовать? К тому-же, если мы оформим Box2D в виде модуля Marmalade, впоследствии, мы сможем использовать его и в других приложениях, возможно требующих более изощренной «физики». Давайте этим займемся.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments31

Маленький отважный арканоид (часть 2 — YAML)

Reading time7 min
Views10K
Продолжая рассказ про наш маленький (но очень отважный) arcanoid, я не могу не упомянуть о таком замечательном языке как YAML. Любая, даже самая простая, игра должна хранить массу данных, таких как: описание уровней, текущее состояние настроек, список достижений и т.п. Желательно, чтобы все это хранилось в понятном человеку и легко редактируемом виде. Традиционно, для этих целей используется XML, но он весьма многословен и его вряд-ли можно считать удобным для ручного редактирования.

YAML существенно лаконичнее, и сегодня, мы научимся им пользоваться.
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments12

Маленький отважный арканоид (часть 1 — IwGl)

Reading time7 min
Views13K
Как я уже говорил, описанному мной ранее framework-у не хватает очень многого, для того чтобы считаться полноценным игровым движком. В нем нет моделирования физики, он использует негибкий и не быстрый Iw2D для вывода графики. Фактически, все что он умеет делать — это выполнение 2D анимации спрайтов, сопровождаемое звуковыми эффектами. Чтобы как-то расти над собой, очевидно, необходимо осваивать новые возможности, но делать это, не имея какой-то цели, скучно и неинтересно.

Мы поставим перед собой цель, и разработаем небольшой прототип всем известной игры Arcanoid. Для начала, попробуем внять совету уважаемого crmMaster и попытаться разобраться с тем, что-же такое IwGl и как его можно использовать. Правда натягивать текстуры на куб мы сегодня не будем. Начинать надо с простого, и сегодня мы поучимся рисовать треугольники.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments0

Marmalade Framework (режим паузы)

Reading time4 min
Views3.2K
Ранее я уже рассказывал о разработке небольшого игрового Framework-а с использованием инструментальной платформы Marmalade. Разумеется, в том виде, в котором он выложен на GitHub он вряд ли пригоден для разработки чего-то более сложного чем демонстрационное приложение. В нем не хватает многих возможностей, необходимых для разработки более-менее серьезного приложения. К счастью, Framework спроектирован достаточно гибко, чтобы недостающие возможности можно было легко добавить.
Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments0

Скриптинг для бюджетной активации (часть 1)

Reading time7 min
Views3.5K
Некоторое время назад, мне довелось поучаствовать в крупном международном проекте в составе команды активации. Суть проекта сводилась к автоматизации выполнения ряда команд на оборудовании Cisco. Разработка активационных скриптов велась на JavaScript. Главная мысль, которую я вынес из этого проекта, заключалась в том, что разработка и отладка активационных скриптов на JavaScript крайне трудоемкое занятие. Интенсивная разработка велась в течение 1 года, а только наша группа активации включала в себя около 10 разработчиков (тестеров требовалось не меньше).

В июне этого года, уже местное руководство, осчастливило меня новым активационным проектом, в котором маршрутизаторы Cisco сменились на АТС Alcatel S12 и M200. Вторым отличием этого проекта было то, что всю активационную часть предстояло разработать мне одному, с нуля, в течение полугода.
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments8

Framework в Мармеладе (часть 4)

Reading time18 min
Views2.9K
В последней статье цикла, посвященного разработке Marmalade Framework, мы добавим в проект анимированные и составные спрайты, а также построим небольшое демонстрационное приложение, иллюстрирующее принципы использования библиотеки.
Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments3

Framework в Мармеладе (часть 3)

Reading time8 min
Views3.2K
Сегодня мы продолжим описание разработки Marmalade Framework, начатой в 1 части статей этого цикла, усовершенствовав работу с графическими ресурсами, а также добавив работу со звуком и группами изображений, при помощи которых мы обеспечим локализацию приложений.
Читать дальше →
Total votes 8: ↑5 and ↓3+2
Comments2

Framework в Мармеладе (часть 2)

Reading time12 min
Views4.2K
В предыдущей статье я начал рассказывать о разработке небольшого Framework-а для создания 2D-игр, с использованием инструментальной системы Marmalade, предоставляющей возможность разработки и сборки приложений для ряда платформ, в том числе iOS и Android. Мы научились работать с графическими ресурсами и построили небольшое тестовое приложение. Сегодня я хочу рассказать об обработке событий.
Читать дальше →
Total votes 9: ↑6 and ↓3+3
Comments4

Framework в Мармеладе (часть 1)

Reading time12 min
Views13K
В этом цикле статей я опишу разработку небольшого Framework-а, предназначенного для создания 2D-игр, с использованием Marmalade. Marmalade предоставляет API для разработки кросс-платформенных приложений, позволяя собирать их, в том числе, под Android и iOS. Работа в Marmalade довольно комфортна, а его справочная система сопровождена большим количеством примеров, но сам процесс разработки носит довольно низкоуровневый характер. Использование готового Framework-а может сильно облегчить жизнь начинающему разработчику.
Читать дальше →
Total votes 24: ↑19 and ↓5+14
Comments16

Information

Rating
3,577-th
Location
Казань, Татарстан, Россия
Date of birth
Registered
Activity