Как стать автором
Обновить
2
0
Дмитрий @dimarick

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

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

Техника безопасности при работе с PostgreSQL

Время на прочтение7 мин
Количество просмотров27K
Так получилось, что я начал работать с PostgreSQL три года назад и за это время умудрился методично собрать все возможные грабли, которые можно вообразить. И сказать по правде, если бы была возможность поделиться с собой трехлетней давности нынешним горьким опытом, моя жизнь была бы куда проще и нервные клетки целее. Именно поэтому я решил написать абсолютно субъективную статью со сводом правил, которых придерживаюсь при разработке на PostgreSQL. Возможно, кому-то эта статья поможет обойти собранные мной грабли (и наступить на другие, ха-ха!).


Читать дальше →
Всего голосов 75: ↑71 и ↓4+67
Комментарии43

Обзор расширения OPCache для PHP

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


PHP — это скриптовый язык, который по умолчанию компилирует те файлы, которые вам нужно запустить. Во время компилирования он извлекает опкоды, исполняет их, а затем немедленно уничтожает. PHP был так разработан: когда он переходит к выполнению запроса R, то «забывает» всё, что было выполнено в ходе запроса R-1.

Очень маловероятно, что на production-серверах PHP-код изменится между выполнением нескольких запросов. Так что можно считать, что при компилированиях всегда считывается один и тот же исходный код, а значит и опкод будет точно таким же. И если извлекать его для каждого скрипта, то получается бесполезная трата времени и ресурсов.
Читать дальше →
Всего голосов 56: ↑55 и ↓1+54
Комментарии25

Реализация Single Sign On в Symfony2 приложении

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

Что такое Single Sign On?


Single Sign On — это технология, с помощью которой пользователь, будучи аутентифицированным на удостоверяющем центре (далее Identity Provider, IdP), будет автоматически аутентифицирован на другом сервисе (далее Service Provider, SP или Consumer[1-N]) этой компании.

Механизм Single Sign On используют такие сайты, как ХабраХабр, Yandex, Google. Приемущества такого подхода к аутентификации пользователей очевидны:

  • Пользователь вводит пароль только 1 раз
  • Или вовсе не вводит пароль на IdP, если там был использован вход через социальную сеть или с использованием OpenID
  • Автоматически аутентифицируется на всех проектах компании
  • Данные пользователя могут плавать между сервисами от IdP до SP прозрачно для пользователя

Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии21

Postgres. Выборка N случайных записей

Время на прочтение6 мин
Количество просмотров36K
При работе над одним проектом возникла необходимость написать некое подобие тестовой системы. Задача формулировалась примерно так:

  • из N записей в базе необходимо выбрать m (3-5) случайных строк в серии из k выборок (преимущественно k=2).

А теперь то же самое человеческим языком: из таблицы нужно два раза выбрать по 3-5 случайных записей. При этом не должно быть дубликатов и выборка должна происходить случайным образом.

Первое, что приходит в голову:

 SELECT *
  FROM data_set
  WHERE id NOT IN (1,2,3,4, 5)
  ORDER BY random()
  LIMIT 5;

И это даже будет работать. Вот только цена такого решения…
Читать дальше →
Всего голосов 56: ↑51 и ↓5+46
Комментарии47

Когда я говорил…

Время на прочтение1 мин
Количество просмотров189K
Когда я* говорил, что нужно вкладывать в сообщество и User Groups, вы вкладывали в теннисные столы. Теперь у нас много средненьких теннисистов и нет коммюнити.

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

Когда я говорил вкладывать деньги в обучение специалистов, вы продолжали раздавать деньги за рекомендации. Теперь у нас никто не работает, а все рекомендуют.
Читать дальше →
Всего голосов 632: ↑586 и ↓46+540
Комментарии443

Pirate Bay начал продвигать новый бесплатный VPN

Время на прочтение2 мин
Количество просмотров138K
Последние несколько дней на главной странице «Пиратской бухты» вместо их собственного лого висит промо нового бесплатного VPN — FrootVPN. На странице проекта написано, что сервис базируется в Швеции и находится под защитой шведских законов, предоставляет свои услуги бесплатно, используя несколько 10-гигабитных каналов и не ведёт никаких логов.


Что мы знаем о тех, кто разместил эту ссылку, кроме удивительной толерантности к jpg-артефактам на логотипах?
Читать дальше →
Всего голосов 67: ↑58 и ↓9+49
Комментарии56

Машинное обучение для интеллектуализации ваших приложений

Время на прочтение1 мин
Количество просмотров15K
Вводный доклад начального уровня о машинном обучении на конференции iForum'2014.

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

Для программистов, желающих стать распознавальщиками.



Всего голосов 13: ↑9 и ↓4+5
Комментарии7

Биржа убийств — правильное использование Bitcoin

Время на прочтение2 мин
Количество просмотров397K
image
Честно говоря, я давно ждал этого события. На днях оно случилось.
Открыт общественный краудфандинг-биржа, где принимаются ставки на убийство общественных деятелей.
Схема простая: кто-то вносит имя в блэк-лист, остальные люди, которым тоже не нравится сей деятель и которые желают от него быстрее избавиться, вносят пожертвования через биткоины. В один прекрасный момент, собранная сумма становится привлекательной для киллера-маньяка, он пишет авторам сайта сообщение (делает ставку), мол, тогда-то и тогда-то умрет такой-то человечек из вашего списочка. Если человек действительно умирает, убийца срывает банк и забирает все деньги. Все счастливы (почти все).
Конечно, к сервису два главных вопроса.
Читать дальше →
Всего голосов 235: ↑201 и ↓34+167
Комментарии306

Серьезный разговор о VLC

Время на прочтение6 мин
Количество просмотров126K
Под катом:

1. Небольшое введение в медиаплеер/сервер VLC.
2. Удаленное управление VLC.
2.1. VLC в качестве Пульта ДУ (iPhone/iPod Touch\КПК)
3. Одиночное/пакетное конвертирование/кодирование видео в VLC (на примере кодирования видео для iPod/iPhone)


Читать дальше →
Всего голосов 119: ↑111 и ↓8+103
Комментарии159

ElasticSearch — агрегация данных

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

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

Для всех, кому интересно как сделать свои запросы в ES интереснее и посмотреть на обычной поиск с другой стороны, прошу под кат.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии8

Хроники ремонта или как IT-шники магазин открывали: MadRobots выходит в офф-лайн

Время на прочтение19 мин
Количество просмотров98K
Последние несколько недель прошли с ощущением крушения планов. Нет, это не было «А-А-А, шеф, все пропало», это было вдумчивое и постепенное отодвигание срока окончательного открытия, раз за разом, неделя за неделей. Я не скажу, что нас преследовал злой рок, но мы определённо переоценили свои возможности, и из-за этого реальность давала нам оплеуху за оплеухой, отодвигая дату открытия все дальше и дальше. Мы были в положении Зеноновского Ахиллеса, который бежит за черепахой, но никак не может ее догнать.
Тем не менее, мы все же сделали это — мы открыли первый магазин MadRobots в оффлайне.
image

Все началось, как ни странно, с выставки 3D Expo. К нашему стенду подошел человек, который представился директором горбушки (именно ТЦ Горбушка, а не Горбушкин двор — это разные здания, принадлежащие разным владельцам), который сказал что мы очень клевые, мы продаем крутые штуки, и он хочет, чтобы мы были у него в здании. Да, мы хотели открыть магазин (для начала точку самовывоза) в районе горбушки — потому что рядом расположен наш основной склад, но не так же скоро! Пришлось изменить планы и передвинуть магазин с даты «где-то в конце лета» на дату «прям сейчас-срочно». Это было довольно авантюрно, и заставило забросить остальные проекты, но шанс упускать было глупо — Тигран обещал нам любую площадь, в том числе и занятую, но решаться надо было сейчас. И мы решились.
Как все было...
Всего голосов 158: ↑146 и ↓12+134
Комментарии119

Видеозаписи докладов конференции AI&BigData Lab

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


Команда проекта GeeksLab 12 апреля 2014 года в Одессе провела конференцию «Al&BigData Lab», которая была посвящена большим данным и искусственному интеллекту.

Презентации и видеозаписи докладов под катом.
Читать дальше →
Всего голосов 38: ↑34 и ↓4+30
Комментарии2

Elasticsearch как NoSQL база данных

Время на прочтение8 мин
Количество просмотров61K
Может ли поисковый сервер Elasticsearch использоваться в качестве NoSQL базы данных? Положительный ответ позволит рассмотреть его различные свойства, в том числе и те, от реализации которых он отказался, чтобы стать одним из самых гибких, производительных и масштабируемых поисковых движков. Но для ответа на этот вопрос стоит сначала определиться с самим термином NoSQL, так как в зависимости от контекста он может трактоваться по-разному.

Что же все-таки такое NoSQL?


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

Дело в том, что речь идет совсем не об SQL. Поясним. Язык запросов Hive явно был вдохновлен SQL. Это же можно сказать и о языке Esper, хоть он работает и не с потоками, а с отношениями. Интересна история PostgreSQL — изначально он назывался Postgres, в качестве языка запросов использовал Quel и являлся ORDBMS, а сегодня PostgreSQL обладает многими функциями, которые позволяют ему быть документноориентированным хранилищем.

В данном случае речь идет не о ACID — в определении NoSQL о транзакциях ничего не говорится. Hyperdex — это база NoSQL, которая стремится обеспечивать ACID-транзакции. MySQL, несомненно, является базой SQL и в своей истории имеет сомнительные интерпретации на тему, что же на самом деле означает ACID.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии10

Вычисление дня недели в уме

Время на прочтение4 мин
Количество просмотров106K
imageСуществует множество способов прокачать мозг. Задачи «n-back» или мобильные приложения для тренировки навыка быстрого счета в уме. Но эти задачи оторваны от текущей реальности, а хотелось бы прокачать мозг практичным навыком.

Зачем? Ведь можно быстро посчитать на гаджете. Увы, совсем не быстро, т.к. потребуется время на поиски и активацию гаджета, поиск приложения, ввод даты, осознание полученного результата. А еще можно друзей/подруг порадовать своими внезапно появившимися экстраординарными способностями. Кстати, друзья быстро осознают удобство использования вечного календаря с голосовым интерфейсом.

Разве это возможно? Как-то раньше обходились без компьютеров. В одной из тв-передач «ищем таланты» показывали натренированного трехлетнего ребенка, который может вычислять произведение трехзначных чисел (пощадите своих детей). Впрочем, взрослые уже не дети и их мозг частично кристаллизован, в смысле слабо обучаем. Значит нужно запоминать как можно меньше и максимально задействовать имеющиеся навыки.
Как считать
Всего голосов 48: ↑45 и ↓3+42
Комментарии20

Использование EXPLAIN. Улучшение запросов

Время на прочтение10 мин
Количество просмотров168K
Когда вы выполняете какой-нибудь запрос, оптимизатор запросов MySQL пытается придумать оптимальный план выполнения этого запроса. Вы можете посмотреть этот самый план используя запрос с ключевым словом EXPLAIN. EXPLAIN – это один из самых мощных инструментов, предоставленных в ваше распоряжение для понимания MySQL-запросов и их оптимизации, но печальным фактом является то, что многие разработчики редко его используют. В данной статье вы узнаете о том, какие данные предлагает EXPLAIN на выходе и ознакомитесь с примером того, как использовать его для оптимизации запросов.
Читать дальше →
Всего голосов 39: ↑32 и ↓7+25
Комментарии14

Подборка трюков при анализе защищенности веб приложений

Время на прочтение5 мин
Количество просмотров35K
Всем привет! Этот топик посвящен разным трюкам при анализе защищенности (пентесте) веб приложений. Периодически сталкиваешься с ситуацией, когда надо обойти какую-нибудь защиту, выкрутиться в данных ограничениях или просто протестировать какое-то неочевидное место. И этот пост как раз об этом! Добро пожаловать под кат.
Читать дальше →
Всего голосов 87: ↑81 и ↓6+75
Комментарии16

Работа с ветками SVN

Время на прочтение6 мин
Количество просмотров185K
Прежде чем приступать вообще к использованию веток, и даже если вы и не думаете их использовать, необходимо прочесть Этот Священный Талмуд.

После того как вы прочли статью о ветках в svnbook, вы уже понимаете для чего нужны ветки, как с ними работать и в каких случаях их необходимо использовать. В принципе, после этого, то, что написано под катом вам уже скорее всего не нужно. Но если вам было лень читать, то может текст ниже вас заинтересует, и вы все таки прочтете статью документации. А может, просто поможет вам лучше понять то, что только что прочли в svnbook-е.
Читать дальше →
Всего голосов 84: ↑81 и ↓3+78
Комментарии72

Снегопад с помощью фильтров FFmpeg

Время на прочтение6 мин
Количество просмотров18K
FFmpeg — мощное ПО со большим набором возможностей. В статье я постараюсь рассказать о немного необычном применении фильтров ffmpeg и о том что можно сделать используя исключительно их. Видео ниже сделано с помощью 1 команды ffmpeg (ни один графический редактор не пострадал).

Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии12

Десятка лучших консольных команд

Время на прочтение2 мин
Количество просмотров198K
imageВ данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
Узнать больше
Всего голосов 382: ↑346 и ↓36+310
Комментарии215

Pull request'ы на GitHub или Как мне внести изменения в чужой проект

Время на прочтение6 мин
Количество просмотров494K
По просьбе tulskiy делаю вольный перевод частей официальной документации GitHub'а Fork A Repo и Send pull requests.

Итак, что же такое «запрос на включение (сделанных вами изменений)» (именно так я перевёл pull request)? В официальной документации гитхаба говорится следующее:
Pull request'ы позволяют вам рассказать другим о тех изменениях, которые вы разместили в своём GitHub-репозитории. Как только pull request отправлен, заинтересованные стороны рассматривают ваши изменения, обсуждают возможные правки или даже добавляют дополняющие коммиты, если нужно.

Говоря своим языком: Посылая pull request, вы говорите автору изначального репозитория (и всем заинтересованным лицам): «Смотрите, что я сделал, не хотите ли принять мои изменения и влить их в проект?»
Читать дальше, но теперь уже обо всём по порядку
Всего голосов 84: ↑80 и ↓4+76
Комментарии31

Информация

В рейтинге
Не участвует
Откуда
Свердловская обл., Россия
Дата рождения
Зарегистрирован
Активность