Search
Write a publication
Pull to refresh
24
0
ilnarb @ilnarb

User

Send message

Запускаем мобильное направление в компании: к чему готовиться и как жить

Reading time11 min
Views14K


Один из самых заметных трендов рунета — стремительный рост мобильной аудитории. По данным на конец 2013 года, каждый четвертый хит сети совершается из мобильного браузера. Ежемесячная мобильная аудитория рунета составляет уже свыше 130 миллионов человек, а ежедневно в сеть со смартфонов и планшетов выходят 20-25 миллионов пользователей.

В связи с этим множество e-commerce-компаний и подразделений задумываются над тем, нужно ли сражаться за мобильную аудиторию. Ответ «да» порождает целый вал вопросов. Какие проблемы предстоит решить перед созданием своего первого приложения? Какие риски учесть? Как появление приложения повлияет на бизнес компании и на отдел разработки? К чему готовиться и как жить дальше?

Читать дальше →

Что же там такого тяжелого в обработке исключений C++?

Reading time12 min
Views72K
image
Исключения и связанная с ними раскрутка стека – одна из самых приятных методик в C++. Обработка исключений интуитивно понятно согласуется с блочной структурой программы. Внешне, обработка исключений представляется очень логичной и естественной.

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

Тем не менее, в C++, исключения традиционно рассматриваются буквально как исключительные ситуации, связанные с восстановлением после ошибок. Трудно сказать, является ли это причиной или следствием того, что реализация обработки исключений компиляторами чрезвычайно дорога. Попробуем разобраться почему.
Читать дальше →

6 ошибок снижающих конверсию вашего магазина

Reading time6 min
Views34K


В статье я расскажу реальные истории изменений интернет магазинов и о том, какой эффект они дали. Все истории 2012-2013 годов.

На протяжении многих лет я специализируюсь на анализе текущего положения дел интернет магазина и последующем увеличении его конверсии. За это время у меня набрались некоторые хинты, внедрение которых всегда позволяло на значительную величину увеличить продажи. (Значительное – это конечно, не 500%, а 1%-5%). Другими словами — отсутствие этих вещей, снижает эффективность магазина. Накопилось их значительно больше 6, но я постарался написать о тех, внедрение которых не требует много времени или ресурсов.
Читать дальше →

Секреты auto и decltype

Reading time5 min
Views113K
Новый стандарт языка принят относительно давно и сейчас уже, наверное, нет программиста, который не слышал о новых ключевых словах auto и decltype. Но как почти с любым аспектом С++, использование этих новых инструментов не обходится без нюансов. Некоторые из них я постараюсь осветить в этой статье.
Читать дальше →

Python на Хабре

Reading time7 min
Views454K
Некоторое время назад, в силу определенных причин, мне пришла в голову мысль о том, чтобы начать изучать какой-нибудь новый язык программирования. В качестве альтернатив для этого начинания я определил два языка: Java и Python. После продолжительного метания между ними и сопутствующих нытья и долбежки головой о стену (у меня с новыми языками всегда так — сомнения, раздумья, проблема выбора и т.д.), я все-таки остановился на Python. Окей, выбор сделан. Что дальше? А дальше я стал искать материал для изучения…
Читать дальше →

Google Compute Engine теперь доступен для всех

Reading time2 min
Views42K


Компания Google наконец-то открыла для всех желающих сервис облачных вычислений Google Compute Engine (GCE), анонсированный полтора года назад. Учитывая опыт компании Google в разработке масштабируемых решений, сервисов для разработчиков и самый большой в мире парк серверов, GCE вполне может составить конкуренцию EC2. Никому не будет плохо, если два гиганта-конкурента начнут демпинговать.

Ко дню премьеры приурочено ещё несколько приятностей:

  • снижены цены на инстансы на 10%;
  • поддержка 16-ядерных инстансов (до 104 ГБ RAM) для высокопроизводительных вычислений и баз NoSQL;
  • кроме Debian и CentOS с ядром от Google, теперь в виртуальных машинах можно запускать FreeBSD и любые дистрибутивы Linux с любыми ядрами и программным обеспечением, включая Docker, FOG, xfs и aufs.
Читать дальше →

Ждали, ждали и дождались! OpenMP 4.0

Reading time5 min
Views23K


Каждая новая спецификация OpenMP вводит очень полезные и необходимые дополнения к уже существующему функционалу. Например, в версии 3.0 были добавлены так ожидаемые задачи (tasks), позволившие решать ещё больший спектр задач по распараллеливанию приложений. В 3.1 целый ряд улучшений по работе с задачами и редукциями.

Но по сравнению с тем, что нам теперь даёт стандарт 4.0, предыдущие нововведения кажутся какими-то мелкими. Последняя версия расширила типы поддерживаемого параллелизма, чего раньше никогда не замечалось.
Поясню, что я хочу сказать.

Как рождается велосипед или зачем я написал клиент для биржи

Reading time4 min
Views13K
Думаю многие из вас могут сказать про себя «Два года назад я не верил в Bitcoin, поэтому не купил. Год назад я думал — ну теперь точно обвал и не купил...». Вы не одиноки.

Месяц назад я все таки решился и купил монет на одной из бирж. Какое было мое удивление, когда купленные по 4$ монеты, стали стоять 40$.

Но этот пост не об этом.
Читать дальше →

Какие ошибки в письмах делают люди и роботы

Reading time7 min
Views44K
Каждый день мне пишут роботы и обычные люди. В топике я расскажу про глупые ошибки в письмах, которых можно легко избежать. А ещё — о том, как устроена обработка почты у нас в компании.

Читать дальше →

Как сделать конкурс так, чтобы в нём участвовало больше 2 человек

Reading time6 min
Views39K
Думаю, почти все тут помнят недавний конкурс за MS-планшет, который призвал к жизни кучу мертворожденных топиков и вызвал некоторое бурление. Это было пример того, как можно сделать популярно, активно, динамично, но не в тему. Проблема в том, что иногда даже так сделать не получается.

Если вы сами проводили конкурсы и всё было ок — не читайте топик. Если где-то ждал облом — добро пожаловать под кат.

Читать дальше →

Жизненный цикл бизнеса: подготовка к пиковому сезону

Reading time9 min
Views33K
Говорят, если вы торгуете конфетами, то весь год медленно и печально теряете деньги, и только в две последние недели декабря отрываетесь и получаете сверхприбыль. Если вы торгуете цветами — ситуация похожа, только вы работаете примерно в ноль и отрываетесь на 8 марта.


«Кардиограммы» бизнес-циклов

Почти каждый бизнес — от торговли водкой до IT-проектов — имеет сезонные колебания. Их нужно учитывать в циклах подготовки, разработки, в финансах и в технических моментах перед пиком (вроде резервирования каналов).
Читать дальше →

Одержимость эффективностью рассылок: пара тестов и историй

Reading time6 min
Views41K
Год назад я узнал про сайт маскарадных костюмов, который забанил Яндекс. Проблема была в том, что они получали львиную долю клиентов именно из поиска, а не с улицы, поэтому ошибка сеошника могла стоить владельцам бизнеса.

Знаете, что они сделали? Они взяли свою клиентскую базу и начали делать полезную рассылку, которая позволила пережить пару месяцев без заказов. Точнее, переключила основной канал на повторные продажи.

И тут я начал экспериментировать с рассылками. Ниже – результаты.
Читать дальше →

Профилирование и отладка Python, инструменты

Reading time14 min
Views114K
В предыдущей статье мы на практике разобрались, где и в каких случаях можно использовать ручное профилирование, а так же познакомились со статистическими профайлерами.

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

Приступим!

Десять имён для одной архитектуры

Reading time3 min
Views133K

На пятничном семинаре учебного проекта лаборатории МФТИ-Интел один из студентов задал мне примерно такой вопрос: а почему 64-битный вариант архитектуры процессоров Intel называется x64, а 32-битный — x86? Я начал объяснять, что не всё так просто. Захотелось нарисовать более полную картину. Ведь на самом деле это не x64, и даже не x86.
Читать дальше →

Рейтинг Mail.Ru: новости с полей

Reading time2 min
Views9.3K
С момента нашего последнего новостного Рейтинг-дайджеста прошло достаточно времени. С тех пор мы не сидели сложа руки и сделали ряд нововведений в сервисе Рейтинг. Позвольте вас с ними ознакомить оптом.

image
Читать дальше →

Сравнение носителей SATA, SAS, SSD и RAID-массивов с ними

Reading time6 min
Views129K
Всем известны параметры производительности дисковых подсистем в теории. Но что на практике? Многие задают этот вопрос, некоторые строят свои гипотезы. Я решил провести серию тестов и определить «Who is who». Приступил к тестированию всеми известными утилитами dd, hdparm, далее перешел к fio, sysbench. Также был произведен ряд тестов используя UnixBench и несколько других аналогов. Было построено ряд графиков, но по мере дальнейшего тестирования было обнаружено что большинство этого ПО непригодно для адекватного сравнения разных дисков.
С помощью fio можно было составить сравнительную таблицу или график для SAS, SATA, но при тестировании SSD оказалось, что полученные результаты вовсе непригодны. Я конечно уважаю разработчиков этого всего софта, но в этот момент было принято решение создать ряд не синтетических тестов, а более близких к реальной обстановке.

Сразу скажу, что параметры теста и сами машинки были подобраны таким образом, чтобы результаты теста не были искажены типом процессора, его частотой или другими параметрами.
Читать дальше →

Как устроены облака Яндекса: Elliptics

Reading time5 min
Views47K
За последние несколько лет в мире IT появилась модная тенденция – использование всего «облачного» для разработки новых продуктов. Публичных облачных провайдеров не так много, самый популярных среди них – Amazon. Однако многие компании не готовы доверять приватные данные кому-либо, при этом хотят хранить их надежно, и поэтому поднимают частные небольшие облачка.

Любое облако состоит из двух основных компонентов: Единой Точки Входа (ЕТВ) и Облачной Магии (ОМ). Рассмотрим облачное хранилище Amazon S3: в роли ЕТВ используется довольно удобный REST API, а Облачную Магию обеспечивают эльфы, работающие на долларах. Компании, желающие разместить в S3 небольшие видеофайлы или базу данных, предварительно считают на калькуляторе сумму, которую они будут платить в месяц при планируемой нагрузке.

Эта статья про другое облачное хранилище, в котором эльфы питаются Духом Свободы, электричеством и еще им нужно немножечко «кокаина».

Называется это хранилище Elliptics.
Есть желающие стать Повелителями Облаков? Прошу под кат.

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

Reading time5 min
Views298K
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

А теперь можно и похимичить!
Бдыжь-бдыжь

Рабочие будни программиста: ожидания и реальность

Reading time3 min
Views83K
Продолжаем нашу серию статей по мотивам опросов: на этот раз мы решили измерить расхождение между тем, как представляют рабочий день программиста студенты-технари, и тем, как все происходит на самом деле. Студенты МГТУ им. Баумана, которые учатся в Технопарке, снова согласились ответить на наши вопросы.

Для этого мы провели небольшое исследование, в ходе которого ожидаемо выяснилось, что не все представления о «сферическом рабочем дне в вакууме» совпадают с реальностью. Студенты готовы программировать по 790 часов в год при условии, что половину рабочего времени будут проводить в социальных сетях.

Чтобы понять, как реально распределяется рабочее время программиста, мы провели небольшой опрос внутри компании.

Вопрос программистам: Представьте себе свой типичный рабочий день. Какой процент времени в среднем занимает каждая из перечисленных активностей?

  • Обдумываю задачу, ищу пути решения
  • Изучаю информацию, читаю маны
  • Пишу код
  • Тестирую, ищу баги
  • Участвую во встречах, планерках, брейнштормах, провожу собеседования
  • Читаю Хабрахабр, Роем и другое полезное в интернете
  • Читаю / пишу письма, ставлю / читаю таски в трекере
  • Сижу в социальных сетях
  • Общаюсь с коллегами по не рабочим вопросам
  • Ем, пью, сплю


Далее для сравнения мы собрали ответы студентов Технопарка.
Читать дальше →

Практическое применение LD_PRELOAD или замещение функций в Linux

Reading time4 min
Views44K
Всем привет!
В 2010 году, shoumikhin написал замечательную статью Перенаправление функций в разделяемых ELF-библиотеках. Та статья очень грамотно написана, полная, но она описывает более харкордный способ замещения функций. В этой статье, мы будем использовать стандартную возможность динамического линкера — переменную окружения LD_PRELOAD, которая может загрузить вашу библиотеку до загрузки остальных.

Как это работает?

Да очень просто — линкер загружает вашу библиотеку с вашими «стандартными» функциями первой, а кто первый — того и тапки. А вы из своей библиотеки можете загрузить уже реальную, и «проксировать» вызовы, попутно делая что вам угодно.

Реальный Use-Case #1: Блокируем mimeinfo.cache в Opera


Мне очень нравится браузер Opera. А еще я использую KDE. Opera не очень уважает приоритеты приложений KDE, и, зачастую, так и норовит открыть скачанный ZIP-архив в mcomix, PDF в imgur-uploader, в общем, вы уловили суть. Однако, если ей запретить читать файл mimeinfo.cache, то она все будет открывать через «kioclient exec», а он-то уж лучше знает, в чем я хочу открыть тот или иной файл.

Чем может приложение открывать файл? На ум приходят две функции: fopen и open. В моем случае, opera использовала 64-битный аналог fopen — fopen64. Определить это можно, воспользовавшись утилитой ltrace, или просто посмотрев таблицу импорта утилитой objdump.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity