Как стать автором
Обновить
58.2
Карма
0
Рейтинг
Олег Полудненко @uaoleg

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

Yii2 bad behaviors

DataArtPHPYii
Минимальная версия PHP для Yii2 — 5.4. Минимальная версия PHP для Traits — 5.4. Совпадение? Не думаю!



Yii2 уже давно пора избавиться от этих плохих поведений. И вот почему.
Читать дальше →
Всего голосов 10: ↑6 и ↓4 +2
Просмотры8.2K
Комментарии 38

Новости

Показать еще

Как потерять и найти свой аккаунт на AWS

DataArtAmazon Web Services
Очень полезный пост на 3 предложения, который, тем не менее, поможет сэкономить время и нервы.

Несколько дней назад, со мной случилась пренеприятнейшая штука: при попытке войти в AWS Console с домашнего компьютера, я увидел вместо списка сервисов — экран регистрации. Смешных картинок с моим фейсом не будет, вы и так понимаете ситуацию — проект в лайве. После нескольких попыток перелогиниться в режиме инкогнито и в других браузерах, ситуация оставалась прежней. Ничего кроме как завершить регистрацию мне не оставалось. После этого я получил — ТА-ДАМ — совершенно девственный аккаунт.
Читать дальше →
Всего голосов 28: ↑23 и ↓5 +18
Просмотры8.5K
Комментарии 6

Почему вы никогда не должны говорить «никогда»

Разработка веб-сайтовNoSQLMongoDB
Эта моя публикация чуть более чем полностью является ответом на перевод статьи «Почему вы никогда не должны использовать MongoDB». Статья, которая, по сути, рекомендует держаться подальше от MongoDB, является самой заплюсованной в хабе. И это звучит как приговор. Поэтому логично либо хаб закрыть и больше никогда не читать, либо написать ещё более рейтинговое опровержение. Конечно же, я выбрал второй вариант, рискуя своим рейтингом и кармой (ввиду крайней холиварности в комментах).

image
Картинка самоиронии

Читать дальше →
Всего голосов 136: ↑106 и ↓30 +76
Просмотры54.7K
Комментарии 211

Проектирование новостной ленты в социальных сетях

DataArtNoSQLMongoDBBig Data


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

Мой рассказ будет о том, как я, превозмогая трудности, решал задачу формирования новостной ленты. А также я расскажу о подходах, которые наработали ребята из проекта Socialite, и которыми они поделились на MongoDB World.
Читать дальше →
Всего голосов 38: ↑34 и ↓4 +30
Просмотры33.5K
Комментарии 68

Три новинки в MongoDB 2.8

NoSQLMongoDB
На днях я посетил грандиозную тусовку любителей NoSQL — World MongoDB Conference.



Eliot Horowitz, Co-Founder и CTO в MongoDB, рассказал о 3 новшествах, которые будут доступны уже в ближайшем релизе.
Каждое из анонсированных нововведений нацелено на достижение следующих принципов в архитектуре MongoDB:
  • Продуктивность разработчика
  • Горизонтальная масштабируемость
  • Операционная масштабируемость
  • Администрирование одного вебсервера должно быть простым. То же самое касается кластеров

Видео презентации можно посмотреть здесь.
Подробности здесь
Всего голосов 70: ↑66 и ↓4 +62
Просмотры23.2K
Комментарии 33

Как ваши твиты раскрывают ваше местоположение

Data Mining
Перевод

Исследователи из IBM разработали алгоритм, позволяющий определять место жительства пользователя с точностью до 70% путём анализа 200 его последних твитов.



USA tweets
Читать дальше →
Всего голосов 36: ↑31 и ↓5 +26
Просмотры24K
Комментарии 18

Функции в PHP 5.6 — что нового?

Разработка веб-сайтовPHP

Слева направо: Rasmus, Build 5.4, Version 5.5, Relise 5.6

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

  • Новый синтаксис для функций с переменным числом аргументов и радостный отход в историю мороки с func_get_args():
    function fn($reqParam, $optParam = null, ...$params) { }
    

  • Опускаем указание значений для необязательных аргументов:
    function create_query($where, $order_by, $join_type = '', $execute = false, $report_errors = false) { }
    create_query('deleted=0', 'name', default, default, /*report_errors*/ true);
    

  • Импорт функций из пространства имён:
    use function foo\bar\baz;
    baz();
    

  • Исключения вместо набивших оскомину фатальных ошибок:
    <?php
    function call_method($obj) {
        $obj->method();
    }
    
    call_method(null); // oops!
    
    try {
        call_method(null); // oops!
    } catch (EngineException $e) {
        echo "Cool Exception: {$e->getMessage()}\n";
    }
    

  • Добавление модификатора deprecated:
    deprecated function myOldFunction() { }
    

  • Вызов методов и доступ к свойствам создаваемого объекта:
    new foo()->xyz;
    new baz()->bar(); 
    

Большинство из приведенных предложений пока находятся на стадии обсуждения. Но среди них уже есть утверждённые и даже реализованные.

Также искушённого читателя ждёт эксклюзив: изучая чужие умные мысли, я и сам решился написать собственный RFC. Сейчас вы не увидите его в списке предложений, так как на данный момент он находится на самом начальном этапе — на рассылке internals@lists.php.net.

А начну обзор с RFC, который уже реализован и гарантированно попадает в релиз 5.6.

Синтаксис для функций с переменным числом аргументов

Реализовано в PHP 5.6, Принято 36 голосами против 1

И сразу в бой: рассмотрим код, который показывает как переменный аргумент ...$params будет заполняться в зависимости от количества переданных аргументов:
function fn($reqParam, $optParam = null, ...$params) {
    var_dump($reqParam, $optParam, $params);
}
 
fn(1);             // 1, null, []
fn(1, 2);          // 1, 2, []
fn(1, 2, 3);       // 1, 2, [3]
fn(1, 2, 3, 4);    // 1, 2, [3, 4]
fn(1, 2, 3, 4, 5); // 1, 2, [3, 4, 5]

$params будет пустым массивом, если число переданных аргументов меньше, чем число объявленных. Все последующие аргументы будут добавлены в массив $params (с сохранением порядка). Индексы в массиве $params заполняются от 0 и по возрастанию.
Читать дальше →
Всего голосов 98: ↑83 и ↓15 +68
Просмотры58.6K
Комментарии 203

Ускоряем Nginx за 5 минут

Высокая производительность
image
Попытайтесь повторить это сами

Как правило, настроенный должным образом сервер Nginx на Linux, может обрабатывать 500,000 — 600,000 запросов в секунду. Но этот показатель можно весьма ощутимо увеличить. Хотел бы обратить внимание на тот факт, что настройки описанные ниже, применялись в тестовой среде и, возможно, для ваших боевых серверов они не подойдут.

Минутка банальности.

yum -y install nginx

На всякий пожарный, создадим бэкап исходного конфига.

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
vim /etc/nginx/nginx.conf

А теперь можно и похимичить!
Бдыжь-бдыжь
Всего голосов 203: ↑138 и ↓65 +73
Просмотры232.2K
Комментарии 127

Бесплатная музыка на YouTube

Социальные сети и сообщества
Перевод
Нельзя отрицать силу музыки. Правильная песня может создать волшебное настроение. В то же время неправильная — вмиг его испортит. Независимо от того, в какое состояние вы хотите погрузиться, саундтрек имеет решающее значение.

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

Именно поэтому, сегодня мы запускаем музыкальную библиотеку YouTube Audio Library. Любой автор YouTube теперь имеет доступ к более чем 150 бесплатным инструментальным композициям, которые можно использовать бесплатно, в любое время, для любых творческих целей (не только для видео на YouTube). Вы найдете ссылку на библиотеку в вашем редакторе видео и сможете фильтровать треки по тональности, жанру, инструментам и продолжительности. Треки можно скачивать как MP3-файлы (320 Кб).

Если вы создаёте мелодраму, послушайте The Engagement

image
Гитарист Оскар Родригес (Oscar Rodriguez) записывает трек для аудио библиотеки YouTube
Читать дальше →
Всего голосов 40: ↑40 и ↓0 +40
Просмотры50.9K
Комментарии 23

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

Информационная безопасность
Перевод
image

Хороший пример того, как должна работать программа поощрений на Фейсбуке (в отличие от той неразберихи, которая была несколько недель назад): исследователь безопасности обнаружил ошибку, которая позволяет кому угодно удалить практически любую фотографию из Фейсбука — будь то ваши личные фото, мои или Цукерберга. За это открытие он получил весьма щедрое денежное вознаграждение.

По условиям программы поощрений, те кто находит ошибки и публикует их согласно правилам, получают вознаграждение. Минимальная выплата за любую ошибку составляет $500. Однако Фейсбук может заплатить и больше, в зависимости критичности найденной уязвимости. Большинство выплат, как правило, составляют $1500. В своём блоге, исследователь безопасности Арул Кумар пишет, что получил $12 500 премиальных — приблизительно 25 базовых выплат.
Почему так много?
Всего голосов 64: ↑59 и ↓5 +54
Просмотры40K
Комментарии 30

Ким Дотком организовывает политическую партию в Новой Зеландии

IT-инфраструктура
Перевод
image

Основатель Меги подтвердил в Твиттере намерение создать собственную политическую партию к парламентским выборам в 2014 году.
Читать дальше →
Всего голосов 36: ↑30 и ↓6 +24
Просмотры11.3K
Комментарии 9

Bootstrap CSS Sprite: синтаксический сахар для <img />

Разработка веб-сайтовPHPYii

UPD


Сегодня в этом уже нет никакого смысла. Просто настройте себе HTTP/2



Что это?


В один прекрасный день я отчётливо понял, что устал писать длинные ссылки на файлы изображений, каждый раз задавать им ширину и высоту, заботиться о том, чтобы это всё не прыгало при загрузке и не мигало при наведении мышкой. И я решил автоматизировать всю эту рутину. Так появился Bootstrap CSS Sprite — библиотека, которая позволяет работать со всеми вашими изображениями, как с одним спрайтом. При этом доступ к тайлам спрайта осуществляется в стиле Twitter Bootstrap.

Приведу пример: у нас есть файл изображения cat.png. Чтобы показать это изображение надо использовать тег <i>, указав для него CSS-класс img-cat, как мы делаем это в Twitter Bootstrap:

<i class="img-cat"></i>


Читать дальше →
Всего голосов 22: ↑14 и ↓8 +6
Просмотры20.5K
Комментарии 62

Как я учился защищать изображения

Разработка веб-сайтовAmazon Web Services

Изображение защиты

В этой статье хочу изложить нелёгкий путь, который я прошёл «защищая» изображения в вебе. Перед тем, как мы начнём это увлекательное путешествие, хочу обозначить два подхода в деле защиты изображений:
  1. ограничение/запрет постинга прямых ссылок на оригиналы изображений
  2. вы параноик и пытаетесь ограничить распростронение копий изображений

UPDATE
Универсальной защиты конечно же не существует. Статья о том, как не подставлять напрямую данные из GET в SQL-запросы. Только в контексте защиты изображений.
Итак...
Всего голосов 108: ↑69 и ↓39 +30
Просмотры73.9K
Комментарии 121

Инструменты мониторинга в социальных сетях

DataArt
Сегодня можно без труда на пальцах одной руки насчитать две и даже семь сотен социальных сетей. Я думаю мне не нужно убеждать дорогого читателя в том, что это бездонный кладезь информации. Но вот как можно эту самую информацию заполучить, да ещё и в удобоваримом виде?

Для того, чтобы у нас с вами было не как на картинке, предлагаю вашему вниманию обзор наиболее интересных сервисов для монитроинга и взаимодействия с социальными сетями. Если коротко, то ситуация выглядит следующим образом:
Wildfire HootSuite TweetDeck AppData Klout
С чем интегрируется
Google+, Facebook, Linkedin, Pinterest, Twitter, Youtube
Google+, Facebook, Foursquare, Linkedin, Mixi, Myspace, Twitter, Wordpress, App Directory
Facebook, Twitter
Facebook
Facebook, Twitter
Цена
Pro / Enterprise — договорная
Free, Pro — $10/месяц, Enterprise — договорная
Free
Free, Pro — $595/месяц или $5995/год, Enterprise — договорная
Free
Аналитика
          
          
          
          
          
Сравнение брендов
          
          
          
          
          
Постинг по расписанию
          
          
          
          
          
Стриминг сообщений
          
          
          
          
          
Для любопытного же читателя я подготовил более развёрнутое описание всех этих сервисов под катом. Так же там можно найти идеи для сервиса, который мог бы принести радость всем людям на Земле.
Читать большой субъективный обзор с картинками
Всего голосов 24: ↑22 и ↓2 +20
Просмотры54.8K
Комментарии 23

Репликация MongoDB на Amazon EC2

NoSQLMongoDB
Из песочницы

system.indexes


  • Предисловие
  • Настройка Amazon EC2
  • Установка MongoDB
  • Настройка репликации
  • Что почитать

local.abstract


В этой статье я расскажу о том, как максимально безболезненно организовать репликацию MongoDB на базе Amazon EC2. Несомненно, существует отличная документация как по работе с Amazon EC2, так и по настройке MongoDB в целом и репликации в частности. Но, как известно, дьявол живёт в мелочах. И в этой статье я выделю те “мелочи”, которые более всего донимали меня.
Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Просмотры13.6K
Комментарии 14

Информация

В рейтинге
5,827-й
Откуда
Днепр, Днепропетровская обл., Украина
Работает в
Зарегистрирован
Активность