Pull to refresh
42
0
Send message

Создание модуля для Magento — часть 1

Reading time16 min
Views32K
Популярность Magento постоянно растет. Появляется множество новых интеренет-магазинов, написанных на этом замечательном движке.
К сожалению, информации для разработчиков маловато, поэтому, будем исправлять ситуацию :)
В мои планы входит написание нескольких статей о том, как создать модуль для Magento, на примере модуля блога.
Оригинал данной статьи находится на моем блоге.
Читать дальше →

Подробнее об анализаторе исходного кода PHP Depend

Reading time4 min
Views5.5K
image В одном из обзоров на Хабре уже упоминался анализатор кода PHP Depend (http://pdepend.org/). В данном материале хотелось бы рассмотреть небольшой пример его использования и интерпретации результатов.
Читать дальше →

Google Collections LIbrary 1.0 final

Reading time1 min
Views2.7K
Наконец-то вышла финальная версия Google Collections Library.Это библиотека коллекций, по сути дополняющая стандартные коллекции.
Что есть в Google Collections?
  • Дополнительные типы коллекций Multimap, Multiset, BiMap
  • Также есть неизменяемые типы коллекций, которые удобны в многопоточных программах
  • Классы утилит для Списков, Множеств и Карт
  • И многое другое…

Советую использовать эту библиотеку, для того чтобы не создавать свои велосипеды.
Видеоуроки по использованию библиотеки
ссылка на проект

Где погрызть гранит науки

Reading time4 min
Views28K
image Здравствуй, хабрасообщество. Я знаю, ты любишь халяву. А еще ты любишь учиться. Ведь так? А что может быть лучше для хабравчанина бесплатного образования? Вот и решил собрать специально для тебя подборку из ссылок, где можно набраться уму-разуму в области IT.
Все нижеперечисленные ресурсы абсолютно и официально бесплатны и свободны, что не может не радовать.

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

Большое спасибо в помощи добавлении ресурсов vansickle, RedFox, kagen, theinterman, sM1Le.

Англоязычные ресурсы



Компьютерные науки



OpenCourseWare MIT




Одно из самых больших хранилищ учебных курсов. Здесь собраны практически все курсы, которые преподаются в Massachusets Institute of Technology, который по праву считается одним из лучших в мире. На сайте всего 1900 курсов, а тех, которые преподаются на факультете Electrical Engineering and Computer Science я насчитал более 200. Состав большинства курсов: краткие конспекты лекций, подробное описание курса, календарный план, задания на лабораторные работы, задания на курсовые проекты и экзамены, промежуточные модули. К некоторым курсам прилагаются и видеолекции.

смотреть другие сайты

SOHO и Apple

Reading time4 min
Views1.4K

Уже третий месяц я работаю в команде, используя для решения управленческих задач технологии Apple. Решил поделиться некоторыми моментами, на которых мы застревали, и которые приходилось решать.
четыре человека и мак мини

STI — одна таблица и много моделей

Reading time3 min
Views29K
Вчера, в заметке про полиморфные связи в комментариях был упомянут паттерн STI. Как выяснилось, не все знают что это такое, как работает и зачем нужно. Решил восполнить этот информационный пробел и вкратце рассказать об этом шаблоне проектирования и его реализации в Рельсе.

STI (Single Table Inheritance) — паттерн проектирования, который позволяет перенести объектно-ориентированное наследование на таблицу реляционной базы данных. В таблице БД должно присутствовать поле идентифицирующее название класса в иерархии. Зачастую, в том числе в RoR, поле называют type.

Таким образом, мы можем иметь одну таблицу и несколько типов объектов (моделей), которые будут в ней храниться. В случае с вышеупомянутой хабразаметкой — это одна таблица постов, которая хранит посты разных типов: ссылка, подкаст, статья, перевод и т.д.

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

Приступим.
Читать дальше →

Rails и полиморфные связи

Reading time3 min
Views7.2K
В большинстве руководств по Rails, которые мне попадались в руки, в примерах по полиморфным связям есть интересная особенность выбора типа для этих связей, о которой и пойдет речь в этом посте.
Читать дальше

PastryKit: средство разработки сайтов для iPhone, написанное в Apple

Reading time1 min
Views1.2K
Обратите внимание вот на какую картинку:

[пример web-приложения PastryKit]

На экране этого iPhone вы видите приложение, которое выглядит как обычное приложение; тем не менее оно запущено через Интернет, оно является сайтом, который просматривается в мобильной версии браузера Safari. Этот эффект достигается использованием библиотеки PastryKit, разработанной в Apple: библиотека отключает адресную строку Safari, библиотека обеспечивает фиксированное позиционирование панелей инструментов, библиотека даже заменяет способ прокрутки сайтов Safari, добавляя к нему такое «сохранение импульса», которое свойственно именно приложениям iPhone, а не сайтам Safari.

Библиотека PastryKit состоит из CSS и джаваскриптов. Она используется в «iPhone User Guide», а также, до некоторой степени, в LP-файлах iTunes, но ещё не очень ясно, собирается ли Apple пропагандировать и документировать использование PastryKit; блоггер и разработчик Джон Грубер (John Gruber; это тот самый, который придумал язык разметки Markdown) сравнительно случайно обнаружил библиотеку PastryKit на сайте Apple и дал знать о её существовании другим заинтересованным разработчикам.

Подробнее обо всём этом вы можете прочесть во блоге Ajaxian; там же рассказывается, как и где можно скачать и подключить PastryKit.

Backup My App – резервное копирование сайтов на Ruby On Rails

Reading time1 min
Views1.1K
Привет, ruby-on-rails-разработчики. Я работаю программистом в Теориях и практиках и хочу рассказать про Backup My App – сервис бекапа для ror-приложений, который мы используем.

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

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

Сервис платный: есть бесплатный тарифный план только для одного приложения на один гигабайт, либо нужно платить за 5 гигабайтов 3 доллара в месяц, за 100 гигабайтов – $60. После регистрации нужно
  • установить плагин
    $ script/plugin install git://github.com/crocoduck7/backupmyapp.git
  • запустить генератор
    $ script/generate backupmyapp KEY=выданный ключ
а потом отправить изменения на сервер. После этого сайт – код, база данных, файлы – начнет бекапиться.

Что это даст



Это даст ежедневные автоматические бекапы с предпросмотром в браузере, загрузкой, восстановлением и просмотром статистики за просто так. Я считаю, что это чудо.

50 ресурсов в стиле «Hand Drawing» наборов иконок, кистей, текстур и шрифтов

Reading time1 min
Views2.2K
На глаза попалась очень красивая и приятная для глаза сборка бесплатных ресурсов наборов иконок, кистей, текстур и шрифтов, выполненных в стиле «нарисовано от руки». Пример:



Остальное смотрим тут: 50 Free Resources Of Hand Drawing Style Icons, Brushes, Textures and Fonts

Визуальный сахар для ActiveRecord

Reading time4 min
Views1.2K
Каждый, кто разрабатывал приложение на RoR знает, что в консоли (./script/console) не слишком удобно просматривать ActiveRecord объекты, они имеют мягко говоря не читабельный вид

Например в моем последнем проекте есть модель Schema
Читать дальше →

Скриптинг на bash — это просто

Reading time1 min
Views3.9K
Вот за что я люблю Linux и FreeBSD, так это за возможность быстро и красиво автоматизировать рутинные действия. Например, типичная задача любого сисадмина — прописать конифиг виртхоста для Апача. Автоматизировать это действие поможет вот такой скрипт:
#!/bin/sh
[ -z $1 ] && (echo "Enter hostname"; exit 1)
[ -z $2 ] && (echo "Enter IP"; exit 1)
HTTPD=/etc/httpd/conf.d
BASE=/home
USER=www
VHOST="$BASE/$USER/$1/htdocs"
mkdir -p $VHOST
chown -R $USER:$USER $BASE/$USER/$1
cat << EOF > $HTTPD/$1.conf
<VirtualHost $2:80>
	ServerName $1
	ServerAlias www.$1
	DocumentRoot $VHOST
	ErrorLog /var/log/httpd/$1.error_log
	CustomLog /var/log/httpd/$1.log combined
</VirtualHost>
EOF
service httpd reload

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

Debian-пакеты с человеческим лицом на примере Zabbix 1.8

Reading time4 min
Views12K
Написать эту статью меня заставили две вещи: во-первых, есть ощущение, что после статей типа "делаем debian-пакет на коленке", большинство хабравчан утвердятся во мнении, что debian-пакеты придумали извращенцы для извращенцев. Во-вторых, вышел zabbix 1.8 — замечательная система мониторинга, в которой, судя по новостям, наконец-то занялись проблемами юзабилити админского интерфейса.

Связывает два этих события то, что zabbix 1.8 пока нет в репозиториях убунты, а компилировать и ставить из исходников что-то на продакшн-серверах, это, конечно, недостойное джентльмена занятие. В общем, есть повод показать, как делаются debian-пакеты.

Итак, хе-хе, приступим :)

apt-get install dh-make devscripts cdbs libmysqlclient-dev libcurl4-gnutls-dev
wget sunet.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/1.8/zabbix-1.8.tar.gz
tar zxvf zabbix-1.8.tar.gz
cd zabbix-1.8
dh_make --createorig


На вопрос dh_make, какого типа пакет мы хотим создать, нужно ответить «b» (cdbs). В результате будет создан шаблонный пакет, с кучей файлов в директории debian на все случаи жизни (большую часть мы потом удалим).

Создание пакетов — это все-таки немножко шаманство и магия. Дело в том, что более простые, чем zabbix, программы, уже на этом этапе можно заканчивать пакетировать. Т.е. если для установки программы нужно сделать только ./configure && make install, то все готово, можно собирать и ставить. Zabbix — несколько более сложный вариант, поэтому впереди еще несколько шагов:

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

BDD с помощью Cucumber

Reading time3 min
Views105K
Если вы привыкли сначала писать код, а потом его тестировать, то с BDD такой подход совсем не уместен. Сила BDD в том, что он помогает вести разработку начиная со стадии оформления ТЗ. Для BDD это список свойств (фич), который уместно писать вместе с заказчиком.

Но самое главное, что по этому же списку происходит автоматическое тестирование проекта. Инструмент тестирования (в нашем случае это Cucumber) методично пройдет по вашему перечню и дотошно проверит реализацию каждой фичи.
Читать дальше →

GITips & GITricks

Reading time2 min
Views2.3K
Уже было несколько статей, где авторы рассказывали о том как скрасить консольные будни с git. В последней приведенной ссылке автор предлагает создавать алиасы, для работы c git, непосредственно в shell. Это не очень хороший способ, хотя бы потому, что, например алиас gc будет конфликтовать с одноименной командой пакета graphviz. git сам прекрасно умеет работать с собственным алиасами.

Ваш новый gitconfig

Обзор Facebook SDK

Reading time2 min
Views3.2K
imageДанный инструментарий предоставляется, как Facebook Client Library, точно также как и библиотеки к PHP и JavaScript. Цель — предоставить .NET разработчикам быстро и легко использовать различные особенности платформы Facebook. Этот пакет разработчика развился через какое-то время после подключения к разработке сообщества и Miсrosoft. Самая последняя редакция (v3.0) включает новые архитектурные усовершенствования и обеспечивает асинхронные интерфейсы для работы из Silverlight и WPF.
Читать дальше →

Памятка дизайнеру сайтов

Reading time10 min
Views246K
Вторая версия статьи, расширенная и дополненая.

Большая часть готовилась для моего выступления на «РИТ: Клиентские технологии», куда я, к сожалению, не доехал.

 

Памятка дизайнеру сайтов

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

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

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

Плагин helpInput (мой велосипед)

Reading time2 min
Views3.1K
imageЗдравствуйте. На днях возникла задача оформить на одном проекте мини-подсказки в полях input(подобно тому, как оформлено поле «поиск по сайту», которое вы можете увидеть в правом верхнем углу Хабры). Проект, на котором надо было оформить поля, написан с использованием jQuery, поэтому решил воспользоваться плагином для этой библиотеки. Пробежался по уже готовым решениям и не нашёл полностью устраивающее меня. Решил мастерить свой велосипед. На мой взгляд, получилось неплохо, хотя в процессе разработки не раз натыкался на подводные камни. Из-за скудного выбора плагинов, решающих эту задачу, я и решил выложить своё «творение» на Хабру. Необходимость в оформлении полей подобным образом встречается часто, авось кому-нибудь и пригодится.

UPD: В ходе обсуждений было предложено пару дельных идей, которые я и реализовал:
1. Обрабатывается не только Tab, но и Shift+Tab
2. Плагин научился работать с автозаполнением (если надо отключить эту возможность — при инициализации установите в значение false ключ autoComplete)
3. Изменились имена ключей(приобрели смысловую нагрузку понятную не только мне)

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

Оптимизация приложений (Iphone armv6)

Reading time6 min
Views1.2K
    Совсем недавно стукнул год, с тех пор как на просторах AppleStore появилось наше первое приложение. По началу было довольно сложно во всем разобраться. Особенно если учесть, что до этого я разработкой приложений под MacOS не занимался. За этот год много чего было написано. Приложения, которые мы написали, я к сожалению назвать не могу (не помню всех, да и руководство не одобряет такие вещи), но о нескольких способах оптимизации приложений под данную платформу я могу вам смело рассказать.
    Где-то пол года (или даже больше) назад пришлось мне писать приложение основной задачей которого была обработка звука. Для этого был написан свой несложный движок, который все это делал. Приложение было выпущено в свет и постепенно этот движок начал часто использоваться в других приложениях подобного рода. Но вот недавно началась разработка 2-й версии этой программы. Требования возросли, а ресурсы стареньких ифонов не изменились. Вот тут и пришлось поискать пути улучшения уже написанного кода.
Читать дальше →

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Registered
Activity