Обновить
9
0

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

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

Ускоряем Wordpress

Время на прочтение4 мин
Охват и читатели66K
image

Wordpress в стандартной установке довольно медленный. По умолчанию движок не использует некоторые возможности современного Веба для значительного своего ускорения. Существует целая куча плагинов для оптимизации Wordpress'a. Давайте наведем в них порядок и проведем капитальную оптимизацию.
Читать дальше →

Всё, что вы должны знать о прототипах, замыканиях и производительности

Время на прочтение9 мин
Охват и читатели51K

Не всё так просто


На первый взгляд, JavaScript может показаться достаточно простым языком. Возможно, это из-за достаточно гибкого синтаксиса. Или из-за схожести с другими известными языками, например, с Java. Ну или из-за достаточно малого количества типов данных, по сравнению с Java, Ruby, или .NET.

Но в действительности, синтаксис JavaScript гораздо менее прост и очевиден чем может поначалу показаться. Некоторые наиболее характерные черты JavaScript до сих пор неправильно воспринимаются и до конца не поняты, особенно среди опытных разработчиков. Одна из таких черт — производительность при получении данных (свойств и переменных) и возникающие при этом проблемы с производительностью.

В JavaScript поиск данных зависит от двух вещей: прототипного наследования и цепочек областей видимости. Для разработчика понимание этих двух механизмов совершенно необходимо, ибо ведет к улучшению структуры, а, зачастую, ещё и производительности кода.
Читать дальше →

Двухфакторная авторизация по смс с барышнями и преферансом

Время на прочтение3 мин
Охват и читатели11K
Это рассказ про то, как для элементарного поля «введите код из смс» был построен велосипед с большим числом колёс неправильной формы. Приглашаю покритиковать универсальный модуль для двухфакторной авторизации.

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

Атаки HTML5: что нужно знать

Время на прочтение6 мин
Охват и читатели41K


Все последние версии браузеров поддерживают HTML5, следовательно, индустрия находится на пике готовности принять технологию и адаптироваться к ней. Сама технология создана такой, чтобы сделать простым процесс включения и обработки графического и мультимедиа-контента в вебе, без использования третьих плагинов или API. Эта статья расскажет о новых типах атак, которые HTML5 «подарил» миру.
Читать дальше →

Почему настало время настоящих браузерных 3D-игр!

Время на прочтение11 мин
Охват и читатели37K
Сегодня перед нами открывается масса возможностей по созданию невероятных проектов, которые игроки смогут видеть, не закрывая своего браузера. Речь не просто о красивой “ферме” (их делают давно и успешно, откровений в этой области я не расскажу). Речь о проектах совсем иного рода.

Полноценный шутер в полном 3D? Легко.
MMORPG в соседней от «хабра» вкладке? Тоже не проблема.


Возникает вопрос — почему уже не созданы тысячи таких проектов? Ответа два и оба они банальны: технология и готовность аудитории. Технологическая база, способная предоставить все нужные условия, появилась не так давно, года полтора, может два назад. Аудитория же в свою очередь за аналогичный промежуток времени повзрослела и стала намного более требовательной к тем развлечениям, что им предлагает, скажем, социальная сеть. Совмещаем два этих фактора и получаем практически новый тренд, где есть деньги, аудитория, виральный рост и размах для творчества.

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

Примечание: материал подготовлен на основе доклада на прошедшей конференции DevGAMM 2014. Под катом немного картинок, но много текста, некоторые расчетные числа по разработке и ряд полезных метрик.

image

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

25 Laravel Tips and Tricks

Время на прочтение11 мин
Охват и читатели84K
Было время, достаточно недавно, когда PHP и его сообщество ненавидели. Главная шутка была про то, насколько ужасен PHP.

Да, к сожалению, сообщество и экосистема просто были ниже сообществ других современных языков по уровню. Казалось, что предназначение PHP было прожить большинство времени в форме беспорядочных тем для WordPress.

Но позже, на удивление, вещи начали меняться — и достаточно быстро. Как будто пока ведьма помешивала горшочек, из ниоткуда начали появляться новаторские проекты. Наверно, самый заметный проект был Composer: наиболее полный менеджер зависимостей для PHP (как Bundler для Ruby или NPM для Node.js). В прошлом PHP разработчики были вынуждены совладать с PEAR (что было страшным сном, на самом деле), сейчас, благодаря Composer, они могут просто обновить JSON файл, и немедленно подтянуть все нужные зависимости. Здесь — профайлер, там — фреймворк для тестирования. Это занимает секунды.
Читать дальше →

Комплексная аналитика интернет-проекта с помощью Google Analytics и Google Docs

Время на прочтение5 мин
Охват и читатели37K
В последнее время мы успели разобраться со множеством аналитических систем, построить экономическую модель и провести несколько экспериментов по оптимизации конверсий в регистрацию и активацию. Благодаря Илье Красинскому(ex. LinguaLeo product chief) мы научились правильной настройке и анализу данных Google Analytics, узнали как строить экономические модели интернет проектов. Далее мы стали разбираться с event based аналитикой и настройкой mixpanel. Теперь мы решили поделиться этими знаниями с хабросообществом.


В этой статье мы рассмотрим:
  • Построение экономики продукта с помощью Google таблиц
  • Формирование отчета Google Analytics по когортам и каналам
  • Создание таблицы анализа эффективности платных каналов

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

Вычисление фрактальной размерности Минковского для плоского изображения

Время на прочтение10 мин
Охват и читатели102K
Доброго времени суток читатель. Сегодняшний пост будет посвящен вычислению приближенного значения фрактальной размерности плоского изображения, которая тесно связано с размерности Минковского. Это интересно как минимум по двум причинам. Во-первых оказывается, что размерность ограниченного множества в метрическом пространстве может быть не только целым числом, но и любым неотрицательным. Во-вторых значение размерности контура изображения (а это ограниченное множество в метрическом пространстве) является хорошим признаком. В рамках сегодняшнего поста не предусмотрено исследование робастности этого признака, но давайте рассмотрим показательный пример. Множество различных характеристик клеток опухолей молочной железы, полученное в результате анализа снимков тонкоигольной пункционной биопсии. Множество данных состоит из 30 признаков (поля таблицы) с пометкой злокачественная или доброкачественная опухоль, и одним из признаков является как раз фрактальная размерность ядер клеток опухоли. Под катом вас ждет объяснение смысла фрактальной размерности множества, по возможности доступным языком, алгоритм вычисления приближенного значения этой размерности, его реализация на c# и ряд примеров с картинками. Возможно вы открыли этот пост только из-за картинки справа, это изображение я позаимствовал из инстаграмма Jennifer Selter, и в конце мы вычислим фрактальную размерность, так сказать филейной части Дженифер. Хочется кстати вас попросить ответить на пару вопросов в конце поста.

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

Разговор с создателями топовых iOS-приложений: «Маркетинг – ничто, дизайн – всё». Path

Время на прочтение5 мин
Охват и читатели24K
В процессе разработки своего первого мобильного приложения мне очень не хватало опыта более продвинутых товарищей по рынку. Я решил заполнить эту информационную брешь. Перед вами первый из серии материалов, написанных на основе моего общения с создателями самых разных приложений. Критерии отбора – известность и наличие приложения в моем iPhone.

Самыми оперативными откликнувшимися на мои запросы были создатели Path, им и слово. В следующих постах расскажем про приложения Twitter, 4square, Pedometer, Bump, Shazam и другие.
Читать дальше →

Гайд по созданию Facebook Welcome Page и других кастомных табов

Время на прочтение8 мин
Охват и читатели49K
Facebook — самая большая социальная сеть и один и самых посещаемых сайтов в мире. В ней можно не только постить веселые статусы и лайкать фотографии, но и
использовать, как мощный маркетинговый инструмент. Все логично — миллиард пользователей, возможность таргетинга на определенную аудиторию, мгновенные объявления, ну и масса других
полезных штук, которые недоступны для оффлайна. На сегодняшний день сложно найти компанию без собственной бизнес-страницы или популярную личность без фан-пейджа. В этой статье постараюсь
подробно разобрать техническую сторону этого вопроса со стороны фронт-енд разработки.
Речь в посте пойдет не о создании самой страницы, потому что это довольно тривиальная процедура, а о пользовательских вкладках, которые можно добавить самостоятельно и наполнить нужным контентом.
Любой, даже начинающий веб-разработчик, может сделать с десяток таких табов за один вечер, зная некоторые принципы и нюансы их создания.
Я имею в виду подавляющее большинство всякого рода welcome-страниц, страниц-анонсов и страниц со всяким информационным текстово-графическим контентом. На страницы посложнее с динамическими элементами, формами и прочим функционалом времени уйдет, конечно, побольше.


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

Социальная архитектура: что нужно, чтобы соцсеть не умерла сразу после рождения?

Время на прочтение7 мин
Охват и читатели14K
Сначала писать в сети было сложно, потому что нужно было обладать определённой грамотностью. Потом писать стало легко. Прошло ещё какое-то время, и информации стало настолько много, что возник хаос. Этот хаос породил спрос на софт, позволяющий организовывать окружающую информацию: отсекать лишнее и показывать главное. Людям сейчас нужна такая штука, которая помогает побороть все потоки данных из сети — и при этом не терять важные вещи по работе, в том числе в группе.


Примерно так обычно представляют корпоративную социальную сеть

Наверняка вы знаете примеры таких вещей: это удобные трекеры, удобные системы совместной работы над кодом, RSS-читалки и так далее. Всё это – средства, которые превращают кучу источников информации в организованную структуру. Главные из них — это соцсети: они дают значимую и интересную для вас информацию.

В прошлом месяце Росс Мейфилд выступал с лекций в Digital October, в которой рассказывал о том, как продумывать архитектуру сети, как делать так, чтобы людям там нравилось, и как инициировать живое общение. Заодно он обяснил что не так с G+ и зачем Фейсбуку понадобился Instagram.
Читать дальше →

jQuery plugin для форм с динамической структурой

Время на прочтение5 мин
Охват и читатели33K
Хочу поделиться с обществом собственным плагином, который упрощает работу с динамическими формами и называется jqDynaForm. Под динамическими формами я подразумеваю формы, в которые при заполнении пользователь может добавлять по необходимости дополнительные поля или блоки полей. Разумеется, в каждом месте разрешено добавлять только заранее разрешенные виды блоков. Вот примеры подобных простейших форм:

1. Контактная форма, в которой есть поле «телефон». Пользователь может добавить еще несколько дополнительных полей для телефонов, если возникнет желание.

2. Счет на оплату. Есть фиксированный набор полей, таких как «имя плательщика» и «номер счета». Кроме того, есть таблица с позициями. Каждая позиция состоит следующих полей: «наименование», «количество», «цена». Пользователь может добавлять произвольное количество дополнительных позиций.

Давайте рассмотрим работу с jqDynaForm на примере такого счета. Вот пример такой формы:



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

Поднимает телефонию с нуля: Asterisk, FreePBX, GSM-шлюз на Huawei E173 в Debian

Время на прочтение8 мин
Охват и читатели217K


Сначала маленькая предыстория. Не так давно наша фирма практически лишилась городской связи, один телефонный оператор, что-то не поделил с другим и в результате между ними перестали проходить звонки. Было принято решение, раз уж так произошло полностью отказаться от обычной телефонной связи и полностью перейти на ip-телефонию.
Постановка задачи:
1) Организовать телефонную связь;
2) Запись разговоров;
3) Очередь звонков;
4) Голосовое меню;
5) GSM-шлюз, так-как должны обрабатываться и звонки с мобильных операторов.
6) Минимальная стоимость решения, так как ситуация форс-мажорная и бюджет выделен не был.

Никогда раньше я с телефонией не работал, задача встала срочная, попытаюсь подробно рассказать как ее решал лично я, про грабли на которые наступил, если что сделано не совсем оптимально или вообще криво буду благодарен за исправления и дополнения, и так поехали.
Читать дальше →

Различия асинхронной и многопоточной архитектуры на примере Node.js и PHP

Время на прочтение9 мин
Охват и читатели92K
В последнее время наблюдается рост платформ, построенных на асинхронной архитектуре. На асинхронной модели построен самый быстрый в мире веб-сервер nginx. Активно развивается шустрый серверный javascript в лице Node.js. Чем же хороша эта архитектура? Чем она отличается от классической многопоточной системы? На эту тему было написано огромное множество статей, но полного понимания предмета они дали далеко не всем. Часто приходится наблюдать споры вокруг Node.js vs PHP+apache. Многие не понимают, почему некоторые вещи можно сделать на Node.js, но нельзя на PHP или наоборот — почему вполне правильный рабочий код на PHP сильно замедлится в Node.js, а то и повесит ее. В данной статье я бы хотел еще раз подробно объяснить разницу в их архитектуре. В качестве примеров двух систем, возьмем вебсервер с PHP и Node.js.
Читать дальше →

Обучение в США

Время на прочтение5 мин
Охват и читатели79K
На написание этого поста меня вдохновил вот этот вот пост.

В своем же посте я хочу чуть рассказать об обучении в США и параллельно показать свою точку зрения на то, как это делать лучше. Все ниже сказанное относится более к компьютерным наукам (Computer Science), хотя есть некоторые общие утверждения.

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

Как работает сортировка у Реддита

Время на прочтение4 мин
Охват и читатели9.2K
Сейчас на хабре продолжают обсуждать сортировки и рейтингования сущностей (записей, постов, комментов), так что я сам этим заинтересовался и, как раз находясь на реддите, решил узнать как там работает сортировка, и наткнулся на отличную и короткую статью.

Этот пост — продолжение разбора алгоритмов сортировки (в прошлый раз был Hacker News). В этот раз, мы разберем как работает сортировка постов и комментариев на Reddit. Алгоритмы у Реддита достаточно простые, чтобы понять их и реализовать.

Первая часть этой записи будет сфокусирована на сортировке постов, а вторая на сортировке комментариев. Они довольно сильно различаются, и за идеей способа сортировки комментариев стоит Randall Munroe (автор xkcd).

Разбираем сортировку постов

Реддит open-source-ный проект и его код полностью доступен на гитхабе. Он написан на питоне, исходники вы можете увидеть тут. Их алгоритмы сортировки написаны под Pyrex, для дальнейшей компиляции (трансляции) в C-код. Pyrex был выбран из-за производительности. Я переписал их реализации на чистый питон, чтобы они легче читались.
Читать дальше →

Оптимизация графики для Retina-экранов

Время на прочтение7 мин
Охват и читатели216K
После недавнего выпуска Retina MacBook Pro и The new IPad, экраны с увеличенной плотностью пикселей начали активно входить в нашу жизнь. Что это значит для веб-разработчиков?

Для начала разберемся в терминологии.

Физические пиксели


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

RedBeanPHP — CodeFirst PHP фреймворк

Время на прочтение6 мин
Охват и читатели33K
RedBeanPHP
В данном посте речь пойдет об весьма интересном ORM фреймворке RedBeanPHP. Примечателен он, прежде всего, возможностью создавать структуру базы данных на лету. К тому же фреймворк прост в использовании как две копейки. Моё повествование будет разделено на 3 части.
Во второй части основная тема будет — модели. В третей — изменение логики работы фреймворка.

Перед написанием поста я потрудился и сделал тестовое приложение с 15 000 записей, для того, что бы убедиться на своем опыте в возможности невероятно облегчить работу. Ведь я наверно не один, кто прописывает поля в нескольких местах с жутким осознанием бессмысленности этой работы, особенно на начальном этапе разработки. Наконец появился аналог Entity Framework Code First из .NET, который в свое время вызвал у меня дикий восторг. Итак по порядку.
Читать дальше →

«Див» блоки одинаковой высоты

Время на прочтение2 мин
Охват и читатели44K

На днях столкнулся с задачей:


Сделать две одинаковые по высоте -колонки, не зависимо от количества текста в какой либо из них.

Условия:


  1. Никаких таблиц;
  2. Поддержка IE6+ и т.д;
  3. Резиновая верстка;
  4. Никакого JavaScript, чистый HTML и CSS.

Дизайн:


В дизайне изображены две колонки с отступом друг от друга. Каждый из них имеет свой фон и border с округленными уголками. На вид все просто.

Поиск решений:


Искал и естественно нашел очень полезный пост, где описаны все самые действенные способы решения данной задачи: http://habrahabr.ru/post/64173/.
Собственно 4-е решение из этого поста было наиболее приемлемым, но с помощью него мне так и не удалось вывести два разных фона для своих колонок.

Решение

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

Графический фреймворк. Набор иконок социальных сервисов

Время на прочтение1 мин
Охват и читатели61K


Привет уважаемое хабрасообщество, этот пост служит продолжением еще недавно активно обсуждаемой темы о социальных иконках [1] [2]. Мысль, которая пришла ко мне в голову после прочтения этих статей, привела к появлению нового вектора развития этой темы. Кстати о векторе, например бывает так, что дизайн разрабатываемого сайта или приложения имеет свою специфику и интегрировать стандартные иконки социальных сервисов без адаптации не представляется возможным. В таком случае мы берем в руки гугл и принимаемся за поиск нужных логотипов, для того чтобы создать подходящий набор иконок. Ах да я немного отвлекся, продолжим о векторе, чтобы не проделывать такие скучные действия, я собрал воедино несколько популярных иконок в векторе и теперь каждый желающий может сэкономить немного времени воспользовавшись им.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность