Как стать автором
Поиск
Написать публикацию
Обновить
0
Александр Агуленко @agulread⁠-⁠only

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

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

FuelPHP — фреймворк с полным баком

Время на прочтение4 мин
Количество просмотров13K
Fuel — это простой, гибкий, управляемый сообществом php5-фреймворк, родившийся благодаря разочарованию в имеющихся инструментах. Таким слоганом нас встречает сайт фреймворка — fuelphp.com.

Разработчики — Dan Horrigan, Phil Sturgeon, Jelmer Schreuder и другие участники сообщества. Ребята являлись (являются?) активными участниками сообщества Codeigniter, но разочаровались в темпах его развития (сейчас разработка Codeigniter ведется более активно, на два фронта — Codeigniter Core и комьюнити-драйвен-версия Codeigniter Reactor). В результате родился Fuel. Что ж, давайте рассмотрим его поближе.
Читать дальше →

Использование объектов для красивой структуры кода в JavaScript

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

Вступление


Доброго всем времени суток. Поздравляю вас с праздниками и перехожу к теме.
Когда вы выходите за рамки написания простых фрагментов jQuery и приступаете к разработке более сложных взаимодействий пользователей, ваш код может быстро стать громоздким и трудным для отладки. Эта статья покажет вам начать думать об этих взаимодействий в терминах «частичек поведения» используя паттерн проектирования object literal.

В последние несколько лет, JavaScript библиотеки дали начинающим разработчикам возможность добавлять дополнительные возможности взаимодействия с сайтом. Некоторые из них, например jQuery, имеют синтаксис настолько простой, что люди с нулевым опытом программирования научились быстро добавлять «свистки и колокольчики» на свои страницы. Надо только погуглить плагин, скопировать и вставить несколько десятков строк из пользовательского кода. Результат — клиент впечатлен, и вы добавляете jQuery к вашему резюме.

Но подождите. Допустим, теперь требования изменились. Теперь код, который работал для трех элементов должен работать для десяти. Или ваш код должен быть повторно использован для несколько иного приложения, в котором все идентификаторы разные. Как не потеряться в коде, который является не просто вызовом плагина или парой строчек типа show() и hide()?
Читать дальше →

Перехват системных вызовов с помощью ptrace

Время на прочтение4 мин
Количество просмотров36K
ptrace (от process trace) — системный вызов в некоторых unix-подобных системах (в том числе в Linux, FreeBSD, Max OS X), который позволяет трассировать или отлаживать выбранный процесс. Можно сказать, что ptrace дает полный контроль над процессом: можно изменять ход выполнения программы, смотреть и изменять значения в памяти или состояния регистров. Стоит оговориться, что никаких дополнительных прав при этом мы не получаем — возможные действия ограничены правами запущенного процесса. К тому же, при трассировке программы с setuid битом, этот самый бит не работает — привилегии не повышаются.

В статье будет показано, как перехватывать системные вызовы на примере ОС Linux.
Читать дальше →

CANVAS шаг за шагом: Основы

Время на прочтение6 мин
Количество просмотров547K
CANVAS шаг за шагом:
  1. Основы
  2. Изображения
  3. Понг
  4. Пятнашки

Если верить англо-русскому словарю, то можно узнать что canvas переводится как холст, а если верить википедии, то можно узнать что тег canvas, это элемент HTML 5, который предназначен для создания растрового изображения при помощи JavaScript. Тому как создать это растровое изображение и будет посвящен мой небольшой текст. Прежде чем начинать пробовать свои силы в этом не легком деле рекомендуется уже иметь базовые знания о том что такое HTML и с чем едят JavaScript.
Читать дальше →

ICQ бот на Python

Время на прочтение5 мин
Количество просмотров13K
Привет %habrauser%! Это мой первый хабротопик. В котором я расскажу как можно сделать ICQ бот на pythone. Бот у нас будет сидеть в сети и отправлять, по запросу пользователя, список последних статей хабра.
Для реализации бота мы будем использовать библиотеку Twisted. Конечно же есть уже специализированные библиотеки для работы с ICQ на python. Такие как py-icq или nanoicq. Но так как с Twisted я был уже знаком, то выбор пал именно на него.
Читать дальше →

Ассемблер для Windows используя Visual Studio

Время на прочтение4 мин
Количество просмотров148K
Многие из нас изучали ассемблер в университете, но почти всегда это ограничивалось простыми алгоритмами под DOS. При разработке программ для Windows может возникнуть необходимость написать часть кода на ассемблер, в этой статье я хочу рассказать вам, как использовать ассемблер в ваших программах под Visual Studio 2005.

image

Создание проекта


В статье мы рассмотрим как вызывать ассемблер из С++ кода и обратно, передавать данные, а также использовать отладчик встроенный в Visual Studio 2005 для отладки кода на ассемблер.
Читать дальше →

CSS-препроцессор LESS и его интеграция с Ruby on Rails

Время на прочтение3 мин
Количество просмотров5.9K
LESS — новый препроцессор для CSS. Проще говоря, LESS позволяет использовать в вашем CSS-файле переменные, операторы, классы и вложенные конструкции. В этой статье вы узнаете об основных возможностях LESS и о том, как быстро подключить его к популярному фреймворку Ruby on Rails 3.

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

Roomle — онлайн сервис для планирования квартиры

Время на прочтение1 мин
Количество просмотров6.2K
Если вы планируете изменения в своей квартире, но CAD системы (ArchiCAD, AutoCAD) не то, с чем вы сталкиваетесь постоянно, то это сервис то что нужно.

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

Свежая подборка jQuery плагинов

Время на прочтение2 мин
Количество просмотров15K
Для меня jQuery ассоциируется с мощной и главное кросс-браузерной JavaScript библиотекой. Можно долго перечислять ее достоинства, холиварить по поводу и без, но думаю, никто не будет против посмотреть подборку интересных плагинов и уроков:
для удобства – каждая картинка ведет на демо

Hover Slide Effect



Демо | Урок
Галерея состоит из нескольких картинок, при наведении на одну из них она эффектно меняется на другую, а при клике на любую картинку — меняются все одновременно.

Остальные плагины

Comet–приложение для Mochiweb c нагрузкой в 1 000 000 пользователей. Часть 1/3

Время на прочтение6 мин
Количество просмотров7.6K
Часть 2
Часть 3

В этом цикле статей я поделюсь тем, что я узнал опытным путем о том, как Mochiweb обрабатывает большое количество открытых соединений, и покажу, как создать Comet-приложение, используя Mochiweb, где каждое соединение зарегистрировано в маршрутизаторе. Мы закончим рабочим приложением, которое в состоянии справиться с 1000 000 параллельных соединенией, и узнаем, как много памяти нам для этого потребуется.

В части первой:
• Создание простого Comet — приложение, которое посылает клиентам сообщение каждые 10 секунд.
• Настройка ядра Linux для поддержки большого количества соединений.
• Создание тестирующей утилиты для создания большого количества соединений.
• Определение необходимого количества памяти.

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

Предполагается, что Вы знакомы с bash, и немного с Erlang.
Читать дальше →

Работа с сокетами в Qt

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

Введение


image
Как-то несколько лет назад, на одном из форумов, я нашел такую замечательную фразу — «Каждый уважающий себя программист в жизни должен написать свой чат-клиент». Тогда мои знания не позволяли сделать это. Я просто улыбнулся и прошел мимо этой фразы. Но вот совсем недавно я столкнулся именно с данной проблемой — нужно было написать свой чат. Ну а так как последнее время мой интерес был направлен на изучение и разработку Qt-приложений, на чем будет сделан он, решилось само собой.
Читать дальше →

Видеохостинг своими руками

Время на прочтение6 мин
Количество просмотров71K
Эта статья о некоторых технических аспектах реализации бесплатного сервиса для загрузки, хранения и просмотра видео. Будут рассмотрены вопросы настройки серверного программного обеспечения, даны примеры команд для конвертации видео и примеры кода на языке PHP.
Читать дальше →

GMate — набор полезных расширений для gedit

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

Редактором по умолчанию в GNOME и, следовательно, Ubuntu является gedit. И в отличии от Блокнота в Windows он полезен :), однако выглядит он всё таки очень простым, даже после установки пакета gedit-plugins. Но на самом деле это довольно милый и хорошо расширяемый редактор, нужно просто добавить воды расширений.

GMate смотрит в сторону прекрасного TextMate из Mac OS X и содержит в себе подборку самых вкусных расширений, сниппетов, тем. Изначально, GMate создавался именно для Ruby-разработчиков, но пригодиться и для других разработчиков.

Если Вы любите GNOME и Ruby, то просто обязаны его поставить :).
Читать дальше →

Знаешь ли ты JAVA, %username%?

Время на прочтение11 мин
Количество просмотров150K
JAVA Evil EditionНедавно я сдавал экзамен Oracle Certified Professional Java Programmer (бывший Sun Certified), и за время подготовки прорешал огромное количество различных задачек. Отдельные задачки по джаве иногда появляются на хабре и вызывают немалый интерес, поэтому я решил поделиться накопленным и сделать небольшую подборку.

Итак, ниже представлен десяток наиболее, на мой взгляд, интересных задач по Java SE из более чем 1000, проработанных мной. Сложность варьируется от средней до ооооооочень сложной. Решение большинства задач практически не требует знания API, достаточно логики и фундаментальных основ Java.

К слову, сложность экзамена Oracle Certified Professional Java Programmer гораздо ниже чем сложность данного теста, поэтому все, кто правильно ответит хотя бы на половину этих вопросов, может смело сдавать этот экзамен без всякой подготовки.

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

ВНИМАНИЕ: во второй половине статьи — ответы и подробные пояснения по соответствующим нюансам JAVA.

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

Собираем виртуалку с phpdaemon'ном на Ubuntu 10.10

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

Вступление


Добрый день, всем читателям Хабры. Я бы хотел рассказать всем вам очень простой и быстрый способ собрать виртуалочку с пхп-демоном и при этом не перенапрячь свой отдыхающий и празднующий мозг. Зачастую на рабочих или домашних компьютерах по тем или иным, религиозным или политическим причинам установлен Windows. Ставить на него php или nginx дело неблагодарное и уж если есть необходимость работать с phpdaemon'ом то вариантов и вовсе не остается. Необходима nix система.

В данной статье не рассматриваются вопросы почему я выбрал Ubuntu, а не Debian, зачем использовать phpdaemon а не php-fpm и т.п. Возможно, что кому-то придется столкнуться с подобной проблемой и если эта статья позволит Вам сэкономить драгоценное время и провести его с семьей или за работой — значит моя задача выполнена успешно.
Читать дальше →

Drag&Drop между TreePanel и GridPanel в ExtJS

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

Проблема


ExtJS — прекрасная библиотека с огромным числом возможностей. На http://dev.sencha.com/deploy/dev/examples/ можно найти множество демонстрационных исходных кодов, доступных для использования в реальных проектах, однако, конечно, ответа на все вопросы это не даст.
Мне было необходимо сделать обоюдное перетаскивание между TreePanel и GridPanel. Найдя на форуме ExtJS и в интернете вообще лишь отрывочные сведения, я решил написать это самостоятельно. Как это у меня получилось — под катом.

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

Тюнинг резинового текстового поля

Время на прочтение3 мин
Количество просмотров28K
Думаю, что многим верстальщикам (и не только) приходилось верстать текстовые поля (<input type=«text» />), задавая им произвольные размеры. Но как сделать данный элемент резиновым и удовлетворить условиям:
  1. Возможность установки любых горизонтальных и вертикальных отступов у текста;
  2. Элемент должен занимать весь контейнер, в который он помещен;
  3. Клик мышью в любое место текстового поля устанавливает в нем курсор.

Ответ достаточно прост и решается следующим методом:


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

Local Shared Objects — Флеш куки

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

Приветствую жителей хабры!
Часто бывает случаи, где нас обязывают сохранять данные над которыми работает пользователь во Flash (очки игры, оформления рабочей области и т.д.).
Многие думают что нужно создавать мост между PHP и Flash. В некоторых случаях это нужно делать, для того чтобы хранить долгое время в сети данные о тех или иных действиях пользователя. Но иногда требуется на стороне клиента сохранить данные, которые предназначены только для определения того, какую функцию пользователь выбрал и в зависимости от этого предоставить ему нужную информацию. Мы сегодня рассмотрим сохранения данных на компьютере, а именно Local Shared Object (далее LSO), что в народе иногда звется флеш куки.
Читать дальше →

PHP и Dropbox. Удаленное хранилище пользовательских файлов

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

Применение


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

Решение


В качестве решения я предлагаю схему PHP<->Dropbox. Dropbox нам интересен тем, что каждому новому пользователю выделяеся 2Gb виртуального дискового пространства, а так же возможность отката на предыдущие версии файлов. Это обеспечивает нам стабильное хранилище, в котором не возникнет случаев безвозвратно удаленных файлов.
Читать дальше →

Знакомимся с OpenGL

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

OpenGL


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

Информация

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