Как стать автором
Обновить
1
0

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

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

Yii 1.1.15 (исправление безопасности)

Время на прочтение1 мин
Количество просмотров9.8K
Вышел PHP-фреймворк Yii 1.1.15, исправляющий проблему безопасности, найденную в 1.1.14. Более ранние версии не затронуты. Если вы используете его, следует обновиться. 1.1.15 полностью совместим с 1.1.14.

Уязвимость затрагивает `CDetailView`. Если ваше приложение берёт значение `value` от пользователя, то атакующий имеет возможность выполнить произвольный PHP скрипт на вашем сервере. Мы не раскрываем подробностей сразу чтобы дать время обновиться. По нашим данным детали пока известны только основной команде разработчиков фреймворка.

Уязвимости присвоен номер CVE-2014-4672.

Забрать дистрибутив можно, как обычно, на yiiframework.com или обновиться через Composer.

Апшифтинг для программиста в Таиланде

Время на прочтение16 мин
Количество просмотров115K
Судя по коментам, статья «Дауншифтинг для программиста? Камбоджа, опыт выживания и опыт жизни» вызвала интерес Хабрасообщества и захотелось поделиться своим опытом.

Наверное, многим поступок «бросить все и уехать жить в ЮВА» кажется безрассудным, и даже опасным. Среди нас, айтишников, много основательных людей, педантичных к мелочам и желающих просчитывать каждый шаг, каждую мелочь, знать все риски, планировать каждую деталь своей жизни. Я тоже являюсь таким человеком, даже сказал бы что «грешу» этим намного выше среднего. Еще до отъезда в тай, все это вызывало у меня подсознательный страх: бросить хорошую работу, оставить родных, друзей и уехать без обратного билета. Это выходило за рамки моего состояния комфорта и множилось непониманием близких родственников. Однако, вся затея оказалась совершенно не страшной, как я себе представлял изначально, и вот уже почти год мы с женой комфортно живем в тае. О различных аспектах постоянной жизни здесь, понимание которых могло бы помочь вам избавиться от подобных страхов, я и хочу написать.
Читать дальше →

Сервер очередей

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


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


Существует несколько подходов к организации очередей:
  • использовать реляционные базы данных;
  • применить существующие решения (RabbitMQ и т.п.);
  • написать свой велосипед.


«Мой Мир» какое-то время использовал очереди в реляционной базе, но с ростом проекта начались проблемы с производительностью. Мы встали перед выбором: применить существующие решения или разработать свою систему.
Читать дальше →

Начинаем работать с browserify

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

Введение


Решения, написанные на JavaScript становятся сложнее из года в год. Это, несомненно, обусловлено разрастанием такого прекрасного зверя, как веб. Многие из нас сейчас работают с JavaScript модулями — независимыми функциональными компонентами, которые собираются вместе и работают как единое целое. Так же такой подход позволяет нам реализовать взаимозаменяемость компонентов, не прикончив попутно код. Многие из нас использовали для этого паттерн AMD и его реализацию в RequireJS.
Читать дальше →

Подборка полезных CSS рецептов, или чем мы занимаемся на голых пятницах

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


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

Итак, представляем вашему вниманию сборку интересных и (надеемся) малоизвестных HTML и CSS-рецептов. Будем рады, если каждый из вас узнает что-то новое!
Вперед!

Опыт интернет-рекрутинга

Время на прочтение3 мин
Количество просмотров8.7K
Уже год я работаю рекрутером в международном стартапе. И, кажется, готова поделиться некоторыми проблемами, с которым сталкиваются «девочки-рекрутеры», мечущиеся между «кадры решают все» и «незаменимых у нас нет». Всем нужны квалифицированные работники, вменяемые, и чтобы вышли на работу вчера. Но где и как их искать?

Казалось бы, сотрудники IT-компаний в выигрышном положении. На дворе XXI век, интернет есть даже в глубинке, и программисты могут уж как-нибудь написать себе резюме и разместить там, где его прочитают рекрутеры. Тем более, что для программистов, в отличие от кассиров или плотников, подходит и удаленная работа. Но не тут-то было. Практика показывает, что найти себе сотрудника-программиста не так уж просто. Почему?

Причины неудач


Прежде всего, программисты не тусуются в одном месте. Нет такого сайта, который собрал бы резюме всех в мире разработчиков, или хотя бы учел их профессиональные интересы. Ареалы обитания определяются языком, местом жительства, личными интересами: как в программировании, так и вне его. Больше того: увлеченные программисты, которые не заняты срочным поиском работы, возможно, ВООБЩЕ НИКУДА НЕ ЗАХОДЯТ. Они просто работают. А когда вдруг задумываются о смене работы, пишут не резюме, а мейлы своим приятелям – сотрудникам нужных фирм.
Читать дальше →

Разработка Iframe приложений на VK API. От первых шишек до двухмиллионной аудитории

Время на прочтение5 мин
Количество просмотров71K
image
image
image Здравствуйте, в этом посте речь пойдет о том, как я создавал Iframe приложения в одной известной социальной сети. Пост будет скорее повествовательным, чем познавательным, хотя я постараюсь ответить на многие вопросы, которые поставили меня в ступор на начальном этапе.

С API Контакта познакомился сравнительно недавно. Тогда оно казалось мне жутко сложным и неоднозначным, с минимумом пояснений и полным отсутствием примеров использования. Сейчас, подтянув знания в javaScript, не испытываю абсолютно никаких трудностей. Наоборот даже приятно, что разработчики во многом подумали за меня.

Работать с javascript API Вконтакте просто до безобразия. Нужно лишь подключить файл xd_connection.js, инициализировать VK API, и делать запросы не чаще трех раз в секунду. Также стоит отметить, что и безо всяких запросов Вк передает в Iframe много необходимых параметров в виде объекта flashVars. Из него можно вытащить id пользователя, токен, упрощающий авторизацию пользователя на стороннем сервере, язык интерфейса и другие нужности.
Читать дальше →

Лёгкие контроллеры с Angular Classy

Время на прочтение2 мин
Количество просмотров14K
Нашёл любопытный инструмент для облегчения структуры контроллеров — Angular Classy. Он представляет из себя модуль, размером в 1 килобайт (gzipped and minified), и помимо представления контроллера в виде объекта даёт ряд полезных плюшек, рассказ о которых под катом.

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

Расширение и компоновка директив

Время на прочтение4 мин
Количество просмотров18K
Про директивы много написано, но мало о том как писать их правильно. Поделюсь опытом.

Хорошо написанная директива должна
  • решать одну задачу
  • легко расширяться
  • не конфликтовать с другими директивами


Разберем каждый пункт на примере поля для ввода пароля (думаю, всем знакомо поле с глазиком)

image

<input ng-model="user.password"
       ng-minlength="6"
       form-password
       form-error="Не менее 6 символов">


Сколько директив используется?
Читать дальше →

Готовим IndexedDB

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


На Хабре уже рассказывали про IndexedDB — стандарт хранения больших структурированных данных на клиенте. Но это было давно и API сильно изменился. Несмотря на это в поиске статья всплывает одной из первых и вводит в заблуждение многих, кто начинает пытатся работать с этой технологией. Поэтому я решил написать новую статью с информацией об актуальном API.
Читать дальше →

Пишем плагин для CKEditor 4

Время на прочтение8 мин
Количество просмотров25K
CKEditor — это WYSIWYG редактор HTML-кода для браузеров. Всякий раз, сталкиваясь с его документацией или же с его исходным кодом, с исходным кодом его плагинов я терялся. И это не мудрено, ведь CKEditor это очень большой продукт, имеющий довольно сложную инфраструктуру. Но, зачастую, стандартных возможностей не хватает и требуется добавить свою. В этой статье я хотел бы остановиться на плагине, который позволяет встраивать и оперировать в редакторе Yandex-картами.

Вот так это будет выглядеть по окончанию редактирования:


А вот так в режиме редактирования:
Читать дальше →

Стартап WigWag создаёт среду для программирования умного дома на JavaScript

Время на прочтение2 мин
Количество просмотров22K
Сегодня разные производители предлагают десятки разных (и часто несовместимых между собой) систем, устройств, приложений и интерфейсов для превращения обычного дома или квартиры в «умный» — интеллектуальные дверные замки и лампочки с управлением по WiFi, розетки, датчики и выключатели с аккаунтом в Твиттере, интернет-холодильники кондиционеры. Стартап WigWag, который уже собрал на Кикстартере почти в четыре раза больше денег, чем планировал, подошел к вопросу создания умного дома более системно. Они предлагают не просто набор сенсоров и актуаторов, но и целую инфраструктуру, совместимую со множеством уже существующих интеллектуальных электроприборов, и, что ещё важнее — открытую для модификаций и дружелюбную как к простым пользователям, так и к программистам и хакерам.

WigWag позволяет создавать «правила», подобные рецептам IFTTT, которые могут на основе информации с датчиков или из интернета управлять любыми устройствами. Это могут быть датчики и актуаторы WigWag, интернет-сервисы, Raspberry Pi, Arduino, Belkin WeMo, Philips Hue, и любые другие, поддерживающие протоколы IP, RS-232, 6loWPAN, Bluetooth и Zigbee. Причем создавать правила можно не только через графический интерфейс, но и на JavaScript, с помощью среды выполнения DeviceJS, которую разработчики WigWag позиционируют как способ писать приложения для умного дома точно так же, как пишутся приложения для Web.


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

Как легко потерять домен с миллионной посещаемостью

Время на прочтение4 мин
Количество просмотров199K
Друзья, некоторые из вас, к своему огорчению или к чьей-то радости, заметили, что наш сервис по адресу prostopleer.com не открывается уже неделю. В этом посте я хочу рассказать, как вы легко можете потерять домен с полуторамиллионной ежесуточной посещаемостью.

Версии в интернете бродили самые разные: от нового закона до старых добрых жалоб правообладателей

Новый адрес сервиса Pleer.com.
Читать дальше →

Написание программ на PHP с использованием fork()

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

Параллельные программы на PHP


Раньше заголовок темы был «Написание многопоточных программ на PHP». В PHP есть ровно один «нормальный» способ писать приложения, которые используют несколько ядер/процессоров — это fork(). О прикладном использовании системного вызова fork() в языке PHP и расширения pcntl я и расскажу. В качестве примера мы напишем достаточно быструю параллельную реализацию grep (со скоростью работы, аналогичной find . -type f -print0 | xargs -0 -P $NUM_PROCS grep $EXPR).
Читать дальше →

PHP process manager

Время на прочтение8 мин
Количество просмотров21K
image

Всем привет!

На Хабре было много статей, о том как писать демоны на PHP и другие fork-нутые вещи. Хочу поделится с вами своими наработками на схожую, но все-таки несколько другую тему — управление несколькими PHP процессами.
Читать дальше →

Работа по протоколу XMPP используя jquery

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


Доброго времени суток!
Этот небольшой обзор, я бы хотел посвятить насущной для некоторых разработчиков проблеме по работе с jabber сервером через long polling соединение по протоколу BOSH.
Читать дальше →

В jQuery 2.0 не будет поддержки IE 6/7/8

Время на прочтение1 мин
Количество просмотров15K
Разработчики jQuery опубликовали план выпуска новых версий библиотеки.

  • jQuery 1.8: выйдет в течение месяца.
  • jQuery 1.9 (начало 2013): удаляются многие интерфейсы, устаревшие в версии 1.8; некоторые из них останутся в виде плагинов или альтернативных APIs. Поддержка IE 6/7/8 пока сохраняется.
  • jQuery 1.9.x (в течение 2013 года и далее): версия с добавлением патчей, устранением багов, поддержкой новых браузеров и т.д.
  • jQuery 2.0 (начало 2013, вскоре после 1.9): поддержка тех же APIs, что и в jQuery 1.9, но удаление «странностей» IE 6/7/8, таких как модель event’ов, “attroperties” в IE7, HTML5shim и проч.

Цель состоит в том, что 1.9 и 2.0 должны быть взаимозаменяемыми в рамках поддерживаемых наборов API. Когда выйдет jQuery 2.0, разработчики получат выбор, какую из версий использовать: нужна ли им поддержка IE 6/7/8. Версия jQuery 2.0 будет меньшего размера и с лучшей производительностью.
Читать дальше →

Web-разработка на node.js и express. Изучаем node.js на практике

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

Предисловие



Пришла мне в голову смелая мысль, взяться за написание туториала по разработке на node.js (что-то наподобие ruby.railstutorial.org). Так как я первый раз берусь за подобный труд то для для меня очень важен любой фидбэк. Нужно это — не нужно. Что стоит убрать а на чем остановиться подробнее, в общем любая конструктивная критика. Надеюсь что дело пойдет и вам понравится, в этом случае по мере написания буду выкладывать главы на хабр.

Вступление



Приветствую, перед вами небольшой учебник по практической разработке на node.js, с использованием фреймворка express. Я с большим энтузиазмом отношусь к node и сопутствующим технологиям. Node.js в первую очередь привлекает свежестью в подходах к разработке, смелостью и драйвом.

О том, что такое node.js вы можете прочитать на http://nodejs.org/, если коротко — то это серверная платформа, для выполнения javascript. Так же мы будем использовать express, web-фреймворк построеный на концепции middleware (о том, что это такое, поговорим поподробнее чуть позже)

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

Хочется отметить, что очень большое влияние на меня оказал railstutorial, это лучшее пособие по web-разработке, которое я встречал, и мне очень хотелось бы создать нечто подобное для node.js.
Читать дальше →

Простой сайт с возможностью авторизации на node.js

Время на прочтение3 мин
Количество просмотров93K
В этой статье я попробую рассказать о том, как с помощью node.js и connect сделать простой сайт с авторизацией. Т.е. такой, где часть контента доступна всем, а часть — только зарегистрированным пользователям. Поскольку express.js основан на connect, практически все, что здесь написано, относится и к нему тоже.
Допустим, что вы уже знаете, что такое node.js и как с ним работать. Также допустим, что у вас уже есть простенький сайт с основной страницей и парой дополнительных. Вот здесь — исходники такого сайта, пример для этой статьи.
Читать дальше →

HTML5 File API: множественная загрузка файлов на сервер

Время на прочтение7 мин
Количество просмотров87K
Когда передо мной в очередной раз встала задача об одновременной загрузке нескольких файлов на сервер (без перезагрузки страницы, само собой), я стал блуждать по интернетам в поисках довольно корявого jQuery-плагина, который позволяет имитировать ajax-загрузку файла (того самого плагина, который со скрытым фрэймом: от java- и flash- плагинов сразу было решено отказаться). В процессе поиска я вспомнил, что в грядущем стандарте html 5 возможности по работе с файлами должны быть существенно расширены, и часть этих возможностей доступна уже сейчас. В итоге было решено опробовать их в действии.

Рассматривать возможности File API будем на примере одновременной загрузки нескольких картинок на сервер. В конце статьи приводится готовое решение, оформленное в виде jQuery-плагина.
Читать дальше →

Информация

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