Pull to refresh
58
0
Олег Полудненко @uaoleg

User

Send message

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

Reading time 1 min
Views 8.8K
Очень полезный пост на 3 предложения, который, тем не менее, поможет сэкономить время и нервы.

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

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

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

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

Читать дальше →
Total votes 136: ↑106 and ↓30 +76
Comments 211

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

Reading time 9 min
Views 38K


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

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

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

Reading time 3 min
Views 23K
На днях я посетил грандиозную тусовку любителей NoSQL — World MongoDB Conference.



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

Видео презентации можно посмотреть здесь.
Подробности здесь
Total votes 70: ↑66 and ↓4 +62
Comments 33

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

Reading time 4 min
Views 27K

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



USA tweets
Читать дальше →
Total votes 36: ↑31 and ↓5 +26
Comments 18

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

Reading time 10 min
Views 60K

Слева направо: 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 и по возрастанию.
Читать дальше →
Total votes 98: ↑83 and ↓15 +68
Comments 203

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

Reading time 5 min
Views 280K
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

А теперь можно и похимичить!
Бдыжь-бдыжь
Total votes 203: ↑138 and ↓65 +73
Comments 127

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

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

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

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

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

image
Гитарист Оскар Родригес (Oscar Rodriguez) записывает трек для аудио библиотеки YouTube
Читать дальше →
Total votes 40: ↑40 and ↓0 +40
Comments 23

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

Reading time 2 min
Views 40K
image

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

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

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

Reading time 2 min
Views 11K
image

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

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

Reading time 3 min
Views 21K

UPD


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



Что это?


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

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

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


Читать дальше →
Total votes 22: ↑14 and ↓8 +6
Comments 62

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

Reading time 5 min
Views 78K

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

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

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

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

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

Для того, чтобы у нас с вами было не как на картинке, предлагаю вашему вниманию обзор наиболее интересных сервисов для монитроинга и взаимодействия с социальными сетями. Если коротко, то ситуация выглядит следующим образом:
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
Аналитика
          
          
          
          
          
Сравнение брендов
          
          
          
          
          
Постинг по расписанию
          
          
          
          
          
Стриминг сообщений
          
          
          
          
          
Для любопытного же читателя я подготовил более развёрнутое описание всех этих сервисов под катом. Так же там можно найти идеи для сервиса, который мог бы принести радость всем людям на Земле.
Читать большой субъективный обзор с картинками
Total votes 24: ↑22 and ↓2 +20
Comments 23

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

Reading time 5 min
Views 14K

system.indexes


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

local.abstract


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

Information

Rating
Does not participate
Location
Днепр, Днепропетровская обл., Украина
Registered
Activity