Pull to refresh
0
Be3 @Be3read⁠-⁠only

User

Send message

PHP: Расширенный текучий интерфейс

Reading time5 min
Views3.8K
Уверен, что многим из вас, кто читает этот текст, знакомо понятие Текучий интерфейс. И даже если вы про него не слышали, уверен, что вы им пользовались и не раз. Это действительно удобно. Так о чем же идет речь?

<?php 

class Images {
	
	public $width;
	
	public $height;
	
	public function SetWidth($value) {
		$this->width = $with;
		return $this;
	}
	
	public function SetHeight($value) {
		$this->height = $value;
		return $this;
	}
	
}

$images = new Images();
$images->SetWidth(100)->SetHeight(100);

?>


Вот небольшой пример. Мы можем в строчку, последовательно, производить действия. Этот же принцип лежит в основе популярной библиотеки jQuery. Да что тут говорить, все современные фреймворки изобилуют подобными конструкциями. А вот что если использовать подобный механизм для построения всего сайта?

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

Пишем модуль uLogin для Kohana 3.2

Reading time6 min
Views8.8K
Не так давно на Хабре была статья про виджет авторизации uLogin.
Что мне в нём очень понравилось, это возможность указать обязательные поля, при этом, в случае их неполучения от провайдера, пользователю предлагается врчуную их заполнить. Так возникло желания написать модуль в Kohana, который позволял бы легко осуществлять регистрацию пользователя с помощью виджета uLogin.

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

Как пропущенный var сорвал наш запуск

Reading time4 min
Views2.6K
Перевод этой заметки никак не нацелен оттолкнуть читателя от использования Node.js, и на старуху бывает проруха, а лишь призывает быть внимательными, и, возможно, подскажет решение тем, кто вдруг столкнётся с подобным поведением своего приложения. Лексика автора оставлена без особых изменений и цензуры.

Кратко сказка сказывается, да долго дело делается, MelonCard сегодня был представлен на TechCrunch вместе с другими компаниями, как вдруг всё внезапно сломалось. Каждая. маленькая. мелочь. Мы только что обновили сайт, чтобы он выглядел и ощущался более отзывчивым, используя long-polling NodeJS, с крутейшим динамическим фронтендом на jQuery Templates и KnockoutJS. Приложили все усилия и провели ручное и юнит-тестирование с помощью Vows. Все системы готовы, полный вперёд и всё такое? Не тут-то было.
Читать дальше →

Эффективное использование Vim

Reading time11 min
Views74K

Введение


Я очень люблю редактор Vim, использую его в своей работе (для написания кода) уже больше четырех лет и хочу поделиться своим опытом его использования.

Эта статья — не набор “волшебных команд” и рецептов (cookbook, как называют такие наборы по-английски), хотя они тут тоже присутствуют, а, скорее, попытка описать, как общие принципы построения эргономичных интерфейсов можно применить в практике использования Vim, чтобы сделать из него удобную и эффективную среду работы с текстами.

Эта статья также не является tutorial’ом для начинающих пользователей Vim, хотя и им (а также пользователям Emacs) может быть интересна, поскольку некоторые упоминаемые принципы являются достаточно общими и действуют не только в системах редактирования текстов, а вообще везде, где идет речь об использовании компьютера для редактирования чего-либо. Тем не менее, я предполагаю, что читатель знаком с основными концепциями, применяемыми в Vim (режимы, регистры, буфера, команды) и не останавливаюсь на их подробном описании.

По умолчанию Vim настроен очень старомодно, и эта настройка подразумевает, что пользователь при работе с текстом будет мыслить метафорами пятидесятилетней давности, как будто бы сейчас заря эпохи UNIX. Однако дизайн Vim позволяет сделать несколько настроек, после которых система станет выглядеть вполне прилично и станет работать весьма эффективно, сочетая в себе полезные черты и древних юниксовых инструментов работы с текстом, и современных WYSIWIG-процессоров, при этом обходя, насколько это возможно, присущие им недостатки. Вот об этих настройках и приемах их использования и пойдет речь.
Читать дальше →

Учим bash-скрипты, пишем Quadronix

Reading time4 min
Views11K
На хабре уже много статей об играх на bash, это Шахматы, Xonix, Sokoban, Морской бой и даже Шутер с псевдо-3D графикой. Но во всех этих играх управление происходит с помощью клавиатуры. Мы же пойдём дальше и напишем игру на bash, управление в которой будет осуществляться с помощью мыши. А заодно разберём как сделать игру устойчивой к изменению размера терминала. Итак, напишем игру Quadronix.



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

Исправление и изменение кодировок MySQL

Reading time3 min
Views26K
Боремся с кракозябрамиВ связи с тем, что довольно много людей обращается с просьбой помочь исправить проблему с кодировками MySQL, решил написать статью с описанием, как «лечить» наиболее часто встречающиеся случаи.

В статье описывается не то, как первоначально правильно настроить кодировки MySQL (об этом уже довольно много написано), а о случаях, когда есть довольно большие таблицы с неправильными кодировками и нужно всё исправить.

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

Система рейтинговой оценки в CMS

Reading time3 min
Views1.9K
Дай качественный рейтинг!Я разрабатываю проект на модульной системе, написанной одним питерским програмистом. Достаточное время уже стоит вопрос о рейтинговой системе для этой CMS. Универсальной, ориентированной не только на блоги, но и на другие типы сайтов, где основной контент — не обязательно записи блога (а, например, фото-сайты или сообщества и т.д.). Речь пойдёт о накрутках, виртуалах, потенциальных социальных уязвимостях рейтинговых систем. Суть проблемы описана под катом.
Читать дальше →

Google раздаёт бесплатно домены .IN

Reading time1 min
Views26K
Индийское подразделение компании Google выступило с благотворительной инициативой по поддержке малого бизнеса в стране и начало раздавать бесплатные домены в зоне .IN.



Получить домен и хостинг бесплатно на один год может каждый, кто заполнит анкету. Весь процесс регистрации домена занимает не более 15 минут.

Аналогичные программы Google по раздаче бесплатных доменов/хостинга для предприятий малого бизнеса действуют в Испании, Канаде Швеции, Великобритании и других доменных зонах.

via The Official Google India Blog

Пишем веб-сервер на Common Lisp часть вторая

Reading time8 min
Views4.1K
В прошлой статье мы начали разработку нашего веб-сервера. Продолжим c файлом util.lisp. В этом пакете будут находится все наши вспомогательные функции для обработки запросов. Для начала обьявим переменную *line*, она нам понадобится в дальнейшем.
Читать дальше →

Javascript наследование для чайников

Reading time6 min
Views69K
Прочитав очередную умную книжку про javascript, стал разбираться в методах реализации в нём наследования. Ну, то есть всем конечно понятно, что в реальном, большом, проекте лучше всего для этого использовать функцию из какой-нибудь библиотеки( благо их много ), но ведь хочется понять, как это вообще работает.

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

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

Индикатор выполнения на CSS3

Reading time2 min
Views3.8K
Сегодня мы будем воссоздавать прогресс-бар из программы установки Adobe Flash Player средствами CSS3, используя градиенты и тени.



Под хабракатом весь код и ссылка на рабочий пример.
Читать дальше →

Повторно используемый кэширующий прокси на JavaScript

Reading time4 min
Views2.5K

Проблема


Ни для кого не секрет, что производительность и по сей день остается одним из основных показателей качества веб-приложения. И, конечно, любой веб-разработчик провел не один час, оптимизируя свое приложение и добиваясь приемлемой производительности, как на серверной, так и на клиентской стороне. Несмотря на то, что аппаратное обеспечение день ото дня становится все мощнее и мощнее, всегда находятся узкие места, которые бывает непросто обойти. С приходом AJAX, HTTP запросы стали «мельче» по объему получаемых на клиента данных, но их количество увеличилось. Каналы связи могут быть достаточно широкими, а вот время соединения и процесс формирования ответа на сервере могут занимать значительное время. Кэширование результатов запросов на клиенте может значительно повысить общую производительность. Не смотря на то, что кэширование может быть настроено на уровне HTTP протокола, часто оно не удовлетворяет реальным требованиям.
Читать дальше →

Сервис Google для проверки отображения сайтов на мобильных устройствах

Reading time1 min
Views24K
Поисковый гигант сегодня в рамках Google Initiative представил новый инструмент Go Mo, назначение которого — проанализировать «дружелюбность» (friendly) сайта для отображения на мобильных устройствах.

Разработчики сервиса утверждают, что около 60% пользователей не вернутся на сайт, который по тем или иным причинам отображается неправильно на экране смартфона или планшета, а учитывая распространение этих устройств в мире, то лишать себя хотя бы части этой аудитории будет, как минимум, неосмотрительно.

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

Также есть возможность оценить примеры «хороших» сайтов, которые авторы GoMo поcчитали удовлетворяющими выдвинутым требованиям.

Видео для оценки возможностей Go Mo:



[Источник]

Как знание MVP поможет сэкономить время и силы стартаперу?

Reading time3 min
Views2.7K
На мой взгляд, каждый стартапер должен знать и хотя бы частично использовать элементы MVP в своих проектах. В этой статье освещены основные моменты MVP, знание которых сэкономит вам время, нервы и деньги.

Что же такое MVP и чем он так хорошо? Ответ на этот вопрос ниже, а начнем с того, что многие из нас сталкиваются с такой дилеммой: «Есть отличная идея, но надо много времени и средств для реализации». Возможно, пару дней эта идея не покидает ваш разум, но потом вы понимаете своё бессилие, и на этом все заканчивается. А все могло быть по-другому…
Читать дальше →

Плагин для рендеринга PDF в браузере

Reading time1 min
Views13K
Кажется, только недавно ребята из Mozilla начали разработку PDF.js — движка для рендеринга PDF-документов средствами HTML5 и JavaScript, и вот они уже вышли на финишную прямую. Качество рендеринга достигло такого уровня, что разработчики решили выпустить экспериментальную версию расширения для Firefox (файл XPI).



Интерфейс позволяет зуммировать и пролистывать документы, есть отображение уменьшенных копий страниц на левой панели, которая при желании убирается с экрана. Можно открыть в браузере PDF-файл с жёсткого диска и проверить качество рендеринга.
Читать дальше →

Как я видео делал

Reading time2 min
Views2.2K
В главных ролях: WingMan RumblePad от Logitech и руки от плечей.
Роль второго плана: лист ватмана.
Свет: люминесцентная лампа.
Камера: Neodrive (CMOS PC Camera)
Мотор:
ffmpeg -f vfwcap -vcodec copy -i 0 video.avi
ffmpeg -i video.avi -vf scale=1024:768 video.mp4

Снято!

Звуковая дорожка: Drifta - Karma

А теперь о граблях

Метод определения и динамической защиты от DDoS типа SYN-flood

Reading time4 min
Views17K
Привет, Хабрасообщество.

Об актуальности DDoS атак в наше время рассказывать не стану. Достаточно взглянуть на статистику. Сталкиваюсь с атаками по роду деятельности довольно часто, возникла идея динамической защиты от DDoS типа SYN-flood на северах Linux и FreeBSD. Также предложена реализация мониторинга SYN-flood по SNMP.

Об этом всём под катом.
Читать дальше →

Работа с изображениями средствами phpThumbOf

Reading time4 min
Views76K
phpThumbOf — это аддон для MODx, основанный на популярном скрипте phpThumb. Он позволяет модифицировать изображения средствами различных графических библиотек «на лету».

Я не буду описывать процесс установки аддона из репозитория. Будем считать, что вы уже скачали его и установили.

Причиной написания поста послужил тот факт, что официальная документация по phpThumbOf просто ужасна. Прочитав ман, я подумал, что единственной функцией, которую можно использовать для модификации изображения при его выводе является зум-кроп (zoom-crop), ибо больше там ничего не сказано. Но позже, попробовав использовать некоторые другие опции phpThumb я выяснил, что они прекрасно работают!
Читать дальше →

Школа программирования Codecademy получила $2,5 млн

Reading time1 min
Views2.9K
Компания Codecademy выполнила операцию Codecademy.add(investors) на сумму 2,5 миллиона долларов США. Кстати, одно из новых свойств объекта — Юрий Мильнер.

Напомним, что уникальный в своём роде стартап Codecademy обучает новичков JavaScript с помощью бесплатных интерактивных упражнений. Он открылся два месяца назад: за первые 72 часа работы сайт посетили 200 тыс. начинающих программистов, которые выполнили 2,1 млн уроков.

После получения такой значительной суммы инвестиций Codecademy может ещё долго работать бесплатно (в будущем они всё-таки планируют придумать какую-то бизнес-модель), а также может нанять контент-органайзеров и увеличить количество уроков на сайте. Новый контент будут добавлять силами коммьюнити по модели UGC. Например, недавно был запущен первый такой курс «Функции в JavaScript», написанный Альбертом Венгером.

Information

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