На хабре уже есть статья по этой теме. Но фреймворк с тех пор сильно обновился и, к сожалению, по старой статье разобраться скорее всего будет проблематично. Кроме того, в изучении чего-то нового всегда самое сложное — это начало. Поэтому по свежей памяти постараюсь описать процесс старта хотя бы в общих чертах.
Константин @KonstantinKuklin
User
Тренды веб-дизайна в 2013 году
2 min
101KВсем привет!
Хотел бы поделиться с Вами наиболее полной информацией о тенденциях и направлениях веб-дизайна уже в нынешнем 2013 году.
Хотел бы поделиться с Вами наиболее полной информацией о тенденциях и направлениях веб-дизайна уже в нынешнем 2013 году.
+51
Раскрываем магию MySQL или о строгости и мягкости MySQL
15 min
136KTutorial
Очень часто в интернете встречаюсь со статьями, в которых приводят кучу примеров с якобы странным поведением MySQL по сравнению с другими БД. Чтобы стало понятно, о чём я говорю, приведу несколько примеров:
1. Деление на ноль возвращает NULL вместо ошибки
2. Выход за диапазон допустимых значений неявно приводит число к допустимому значению, а не к ошибке и откату транзакции
3. Вставка неверного типа данных также приводит к неявному преобразованию и успешному выполнению операции
Таких примеров я могу привести огромное число, но цель статьи не сделать очередное собрание высосанных из пальца примеров, а объяснить, почему происходит то или иное действие. Вся эта мистика MySQL давно описана в документации и легко объяснима, в чём вы сможете убедиться сами, прочитав статью до конца.
Для меня эта первая статья на хабре, поэтому я старался писать дотошно подробно. Уверен, что она будет полезна всем, кто работает с MySQL. Большую помощь в написании статьи оказала подготовка к сдаче на сертификат разработчика MySQL, а точнее книга «MySQL Certification Study Guide».
Итак, мой друг, начнём!
1. Деление на ноль возвращает NULL вместо ошибки
2. Выход за диапазон допустимых значений неявно приводит число к допустимому значению, а не к ошибке и откату транзакции
3. Вставка неверного типа данных также приводит к неявному преобразованию и успешному выполнению операции
Таких примеров я могу привести огромное число, но цель статьи не сделать очередное собрание высосанных из пальца примеров, а объяснить, почему происходит то или иное действие. Вся эта мистика MySQL давно описана в документации и легко объяснима, в чём вы сможете убедиться сами, прочитав статью до конца.
Для меня эта первая статья на хабре, поэтому я старался писать дотошно подробно. Уверен, что она будет полезна всем, кто работает с MySQL. Большую помощь в написании статьи оказала подготовка к сдаче на сертификат разработчика MySQL, а точнее книга «MySQL Certification Study Guide».
Итак, мой друг, начнём!
+63
Профилирование нагрузки на файловую систему с помощью iostat и gnuplot — заметки дилетанта
9 min
91KTutorial
Зачастую работа «в поле» требует сбора и анализа информации на сайте заказчика в условиях наличия крайне скудного списка утилит. В частности собрать информацию об использовании системы ввода-вывода в течении дня.
В статье я попробую показать, как располагая только iostat и gnuplot можно попробовать провести анализ системы и какие выводы можно сделать.
Я не претендую на доскональное владение предметом и точное использование терминов. Более того, я постараюсь говорить «обычным» языком и не бросаться терминами.
Все описанное ниже есть плод опыта, ошибок, гугления, курения манов и прочая
В статье я попробую показать, как располагая только iostat и gnuplot можно попробовать провести анализ системы и какие выводы можно сделать.
Я не претендую на доскональное владение предметом и точное использование терминов. Более того, я постараюсь говорить «обычным» языком и не бросаться терминами.
Все описанное ниже есть плод опыта, ошибок, гугления, курения манов и прочая
+39
Продвинутая настройка VIM
13 min
46KTutorial
Одно из правил эффективного использования редактора гласит следующее — определите, на что у Вас тратится больше всего времени при наборе текста, и улучшите это.
Как показывает практика, часто пользователи этого редактора ограничиваются установкой опций, коих конечно не мало. Затем ставят какой-нибудь плагин-мега-пак по советам знатоков, и вроде бы все устраивает, кроме… первого, второго, третьего…
Но ведь если пойти дальше, можно обнаружить бесконечный потенциал для увеличения производительности в использовании своего редактора.
В этой статье я попытаюсь описать немного продвинутый способ настройки Vim.
Мы рассмотрим с Вами внутренний скриптинг и поймем, что ничего в нем нет страшного, обычный скриптовый язык.
Данный материал рассчитан на довольно подготовленных пользователях редактора Vim. Для тех, кто разобрался, что такое режимы редактора, буферы, окна. Статья написана в стиле «Одна глава — один конкретный рецепт — одно описание синтаксической структуры языка».
Как показывает практика, часто пользователи этого редактора ограничиваются установкой опций, коих конечно не мало. Затем ставят какой-нибудь плагин-мега-пак по советам знатоков, и вроде бы все устраивает, кроме… первого, второго, третьего…
Но ведь если пойти дальше, можно обнаружить бесконечный потенциал для увеличения производительности в использовании своего редактора.
В этой статье я попытаюсь описать немного продвинутый способ настройки Vim.
Мы рассмотрим с Вами внутренний скриптинг и поймем, что ничего в нем нет страшного, обычный скриптовый язык.
Данный материал рассчитан на довольно подготовленных пользователях редактора Vim. Для тех, кто разобрался, что такое режимы редактора, буферы, окна. Статья написана в стиле «Одна глава — один конкретный рецепт — одно описание синтаксической структуры языка».
+26
Браузерная онлайн игра средствами jQuery, CoffeeScript, SVG и node.JS
3 min
13KДавно хотел написать свою небольшую игрушку. И вот, изучив подходящие технологии, создал «шедевр».
+21
Психологический тест для оценки IT-продукта, или в чем Habrahabr уступает Facebook
6 min
37KПробовали ли вы оценивать свой IT-продукт с психологической точки зрения? Такая оценка может основываться на общей психологии и включать эргономическое тестирование, может основываться на когнитивной психологии и задействовать теорию познания и принятия решений, может основываться на теории деятельности и анализировать пользовательские сценарии, может основываться на психологии научения и бихевиоризме и анализировать продукт с точки зрения геймификации…
Но отдельный очень важный раздел психологии – это психология личности, включающая теории личностных потребностей и психологических защит. Из-за сложности и большого количества иногда противоречащих друг другу концепций, эту область редко используют в качестве источника идей и ограничений при разработке IT-продуктов. Однако психология личности дает очень много возможностей для понимания и предсказания поведения пользователей.
Предлагаю вариант методики для оценки IT-продукта, созданный на основе компиляции различных теорий личностных потребностей.
Тест оценивает, насколько продукт может удовлетворить 10 наиболее распространенных потребностей личности.
Этот тест можно использовать не только для оценки продукта, но и как чек-лист при поиске идей в разработке IT-продуктов.
Описание теста.
Для каждой потребности предложено по 5 вопросов о продукте.
Но отдельный очень важный раздел психологии – это психология личности, включающая теории личностных потребностей и психологических защит. Из-за сложности и большого количества иногда противоречащих друг другу концепций, эту область редко используют в качестве источника идей и ограничений при разработке IT-продуктов. Однако психология личности дает очень много возможностей для понимания и предсказания поведения пользователей.
Предлагаю вариант методики для оценки IT-продукта, созданный на основе компиляции различных теорий личностных потребностей.
Тест оценивает, насколько продукт может удовлетворить 10 наиболее распространенных потребностей личности.
Этот тест можно использовать не только для оценки продукта, но и как чек-лист при поиске идей в разработке IT-продуктов.
Описание теста.
Для каждой потребности предложено по 5 вопросов о продукте.
+90
Легальный вывод денег из oDesk в РФ
40 min
55KЗдравствуйте!
Вопросы, связанные с получением денег от зарубежных заказчиков многократно освещались на различных порталах. Мы давно используем oDesk для работы, и коллеги из других компаний не раз спрашивали о деталях оформления процесса вывода средств со счёта oDesk на официальный расчётный счёт в банке, будь то ООО или ИП. В этой статье я опишу шаги и опубликую перевод договора, который необходимо предоставить в банк.
Вопросы, связанные с получением денег от зарубежных заказчиков многократно освещались на различных порталах. Мы давно используем oDesk для работы, и коллеги из других компаний не раз спрашивали о деталях оформления процесса вывода средств со счёта oDesk на официальный расчётный счёт в банке, будь то ООО или ИП. В этой статье я опишу шаги и опубликую перевод договора, который необходимо предоставить в банк.
+73
Дайджест интересных новостей и материалов из мира PHP за последние две недели №8 (29.12.2012 — 11.01.2013)
5 min
17KНовогодние праздники подходят к финишу, и мы снова в строю со свежей порцией новостей и материалов из мира PHP.
Приятного чтения!
+25
Избавляемся от дублирования сквозного кода в PHP: рефакторинг кода с АОП
12 min
44KДумаю, каждому программисту знаком принцип единственной ответственности, ведь не зря он существует: соблюдая его, можно написать код лучше, он будет более понятным, его будет легче дорабатывать.
Но чем больше каждый из нас работает с кодом, тем больше приходит понимание того, что на существующем уровне языка — объектно-ориентированном — этого сделать невозможно. А мешает нам в соблюдении принципа единственной ответственности такой факт, как сквозная функциональность.
Эта статья о том, как можно избавиться от дублирования сквозного кода, и как сделать его чуточку лучше с помощью АОП.
Но чем больше каждый из нас работает с кодом, тем больше приходит понимание того, что на существующем уровне языка — объектно-ориентированном — этого сделать невозможно. А мешает нам в соблюдении принципа единственной ответственности такой факт, как сквозная функциональность.
Эта статья о том, как можно избавиться от дублирования сквозного кода, и как сделать его чуточку лучше с помощью АОП.
+85
Пишем расширение для google chrome
11 min
28KTutorial
Написать расширение для google chrome несложно. Но при написании первого раширения могут возникнуть (и возникают) вопросы. Большинство мануалов по написанию первого расширения расчитаны на использования манифеста первой версии, поддержка которого в скором будущем прекратится.
В этой статье будет рассмотрено:
В этой статье будет рассмотрено:
- Как составлять манифест v.2
- Как работать с удаленными ресурсами
- Как работать с cookies
- Как работать с local storage
- Как работать с уведомлениями
+58
Пять причин быть управленцем
4 min
162KЯ прочитал пост «13 причин не быть управленцем» и хочу написать ответ.
Прежде всего хочу заметить, что доктор биологических наук Сергей Савельев в книге «Изменчивость и гениальность» говорит, что мозг каждого человека под что-то создан. Кто-то имеет мозг программиста, кто-то управленца, кто-то обе сферы может осилить. Но обычно талант вынуждает человека делать то, что ему нравится. А к чему он не создан, его радовать не будет, и в это все дело.
Таким образом, к примеру, есть мозг художника, и он не будет математиком. А математик часто не может писать гениальные стихи, и так далее. Бывают гении, типа Леонардо да Винчи, но это исключение.
Весь вопрос в том, чтобы освоить азы профессии, и если она нравится — ей и нужно заниматься. Если нет — пробовать себя в чем-то другом.
Поэтому универсальных советов нет, каждому нужно искать свое дело.
Это было предисловие, а теперь про плюшки работы управленцем.
Итак, что в управлении проектами круто.
1. Масштабируемость
Как управленец, я могу строить управленческие структуры, рабочие группы, и суммарный результат во много раз больше, чем если бы я сам кодил. При этом масштабируемость бесконечна, насколько хватит способностей.
Прежде всего хочу заметить, что доктор биологических наук Сергей Савельев в книге «Изменчивость и гениальность» говорит, что мозг каждого человека под что-то создан. Кто-то имеет мозг программиста, кто-то управленца, кто-то обе сферы может осилить. Но обычно талант вынуждает человека делать то, что ему нравится. А к чему он не создан, его радовать не будет, и в это все дело.
Таким образом, к примеру, есть мозг художника, и он не будет математиком. А математик часто не может писать гениальные стихи, и так далее. Бывают гении, типа Леонардо да Винчи, но это исключение.
Весь вопрос в том, чтобы освоить азы профессии, и если она нравится — ей и нужно заниматься. Если нет — пробовать себя в чем-то другом.
Поэтому универсальных советов нет, каждому нужно искать свое дело.
Это было предисловие, а теперь про плюшки работы управленцем.
Итак, что в управлении проектами круто.
1. Масштабируемость
Как управленец, я могу строить управленческие структуры, рабочие группы, и суммарный результат во много раз больше, чем если бы я сам кодил. При этом масштабируемость бесконечна, насколько хватит способностей.
+101
Рейтинг лучших книг «Питера» за 2012 год: от UI до теории струн
5 min
20KВ последней в уходящем году публикации в нашем корпоративном блоге мы хотим подвести некоторые итоги и представить рейтинг лучших профессиональных книг, выпущенных «Питером» в 2012 году.
За этот год в нашем издательство вышло более двухсот наименования книг по компьютерной и технической тематикам, и наиболее популярные и востребованные из них мы хотим перечислить.
Представляем книжный топ-18 от «Питера»: от UI и .NET до теории струн!
За этот год в нашем издательство вышло более двухсот наименования книг по компьютерной и технической тематикам, и наиболее популярные и востребованные из них мы хотим перечислить.
Представляем книжный топ-18 от «Питера»: от UI и .NET до теории струн!
+24
Что нам стоит Git настроить!
3 min
106KTutorial
Дарова, хабр! (ничего оригинальнее не придумал)
Сомневаюсь что эта заметка тянет на полноценный пост, но я все же оставлю ее здесь. О чем же пойдет речь?
Все мы слышали о Git. Все мы знаем что он — хорош. Но лишь немногие пытаются что-то с ним делать, как-то его протвикерить. Сразу говорю, тут не будет ничего паранормального, только немного работы с файлом .gitconfig. Да-да, именно с тем файлом, который так трепетно пылится у вас в домашней директории.
Так, мне уже немного надоело писать этот, по сути, бессмысленный вступительный текст, так что давайте уже начнем что-то делать.
+122
Coroutines в PHP и работа с неблокирующими функциями
18 min
79KTutorial
Translation
Одним из самых больших нововведений в PHP 5.5 будет поддержка генераторов и корутин (сопрограмм). Генераторы уже достаточно были освещены в документации и в нескольких других постах (например в этом или в этом). Сопрограммы же получили очень мало внимания. Это гораздо более мощный, но и более сложный для понимания и объяснения, инструмент.
В этой статье я покажу как реализовать планировщик задач с использованием корутин, чтобы вы поняли, что с ними можно делать и как их применять. Начнем с нескольких вступительных слов. Если вы считаете, что вы уже достаточно хорошо знаете как работают генераторы и корутины, тогда можете сразу перейти к разделу «Совместная многозадачность».
Суть генератора в том, что это функция, которая возвращает не просто одно значение, а последовательность значений, где каждое значение выброшено одно за другим. Или, другими словами, генераторы позволяют вам реализовать итератор, без лишнего кода.
В этой статье я покажу как реализовать планировщик задач с использованием корутин, чтобы вы поняли, что с ними можно делать и как их применять. Начнем с нескольких вступительных слов. Если вы считаете, что вы уже достаточно хорошо знаете как работают генераторы и корутины, тогда можете сразу перейти к разделу «Совместная многозадачность».
Генераторы
Суть генератора в том, что это функция, которая возвращает не просто одно значение, а последовательность значений, где каждое значение выброшено одно за другим. Или, другими словами, генераторы позволяют вам реализовать итератор, без лишнего кода.
+95
10 дистрибутивов Linux специального назначения
2 min
223KTranslation
Прелесть Linux в том, что можно сделать дистрибутив под любые запросы. Требуется лишь время и желание. Многие популярные дистрибутивы Linux — результат работы отдельных энтузиастов или групп, недовольных имеющимся набором опций. Вот некоторые из дистрибутивов Linux специального назначения.
1. Parted Magic OS: дистрибутив для восстановления дисков и работы с разделами, который поддерживает более десяти файловых систем и включает различные утилиты для «переноса, копирования, создания, удаления, расширения и сжатия дисковых разделов. Клонирование дисков и осуществление полного бэкапа. Тестирование дисков на возможность сбоя в будущем. Поиск сбойных секторов. Тестирование производительности компьютера. Безопасная полная очистка диска без возможности восстановления. Доступ к незагружаемым HDD для восстановления важных данных».
1. Parted Magic OS: дистрибутив для восстановления дисков и работы с разделами, который поддерживает более десяти файловых систем и включает различные утилиты для «переноса, копирования, создания, удаления, расширения и сжатия дисковых разделов. Клонирование дисков и осуществление полного бэкапа. Тестирование дисков на возможность сбоя в будущем. Поиск сбойных секторов. Тестирование производительности компьютера. Безопасная полная очистка диска без возможности восстановления. Доступ к незагружаемым HDD для восстановления важных данных».
+96
MySQL: разрушаем стереотипы
5 min
59KRecovery Mode
В последнее время часто стал натыкаться на различные рассуждения людей, по поводу того, что MySQL — это плохо, это очень плохо — потому что… а вот дальше идут описания различных фич MySQL, которые четко документированы, но пользователь их просто не знает. Кто-то добавляет в БД данные без валидации и удивляется почему они сохранились в неверном формате, а кто-то описывает кучу особенностей myIsam движка, и на этих основаниях делает вывод, что MySQL это отстой — который невозможно использовать в реальных проектах. Всю документацию прочитать невозможно, и да — я с этим абсолютно согласен, но поверьте у нас есть куча других недокументированных и не менее интересных особенностей. Давайте начнем с малого, к примеру докажем, что NULL равно нулю.
+105
Внутреннее устройство Git: хранение данных и merge
9 min
86KВ процессе перехода с SVN на Git мы столкнулись с необходимостью переписывания наших внутренних инструментов, связанных с развёртыванием кода, которые ориентировались на существование линейной истории правок (и разработку в trunk). На Хабре уже публиковались возможные решения этой проблемы через Git-SVN, но мы пошли другим путём. Нам нужна поддержка таких возможностей Git, как branching и merge, поэтому мы решили разобраться в основах, как же работает Git и каким способом должна осуществляться интеграция с ним.
+77
Как устроены массивы в PHP
6 min
73KВ прошлой статье я рассказывал о переменных, теперь пойдет речь о массивах.
На уровне PHP, массив — это упорядоченный список скрещенный с мэпом. Грубо говоря, PHP смешивает эти два понятия, в итоге получается, с одной стороны, очень гибкая структура данных, с другой стороны, возможно, не самая оптимальная, точнее, как выразился Anthony Ferrara:
(на картине изображен HashTable с Bucket-ами, В. Васнецов)
Что такое массивы на уровне PHP?
На уровне PHP, массив — это упорядоченный список скрещенный с мэпом. Грубо говоря, PHP смешивает эти два понятия, в итоге получается, с одной стороны, очень гибкая структура данных, с другой стороны, возможно, не самая оптимальная, точнее, как выразился Anthony Ferrara:
PHP arrays are a great one-size-fits-all data structure. But like all one-size-fits-all <anything>, jack-of-all-trades usually means master of none.
Ссылка на письмо
(на картине изображен HashTable с Bucket-ами, В. Васнецов)
+64
Система хранения файлов с дедупликацией между пользователями
3 min
6.5KНачало этому проекту положила очень простая идея, о которой, я год назад писал на страницах хабрахабра. Именно тогда, я задумался, почему все сервисы хранения файлов такие жадные? Почему они зарабатывают на том, что несколько различных пользователей, хранят один и тот же файл? Почему мы должны платить дважды, трижды, а иногда и в сотни раз больше, чем реально это стоит? По-моему это несправедливо.
Вторая проблема всех платных сервисов хранения файлов – абонентская плата. Нас заставляют постоянно платить за хранение наших файлов. Если не заплатить, файлы удалят. Больше похоже на вымогательство, чем на удобный сервис, особенно в свете вот этого исследования на тему стоимости хранения данных. Поэтому я решил, что настала пора создать проект, который лишен этих недостатков.
Так появилась идея, а что из этого получилось можно прочитать под хабракатом.
Вторая проблема всех платных сервисов хранения файлов – абонентская плата. Нас заставляют постоянно платить за хранение наших файлов. Если не заплатить, файлы удалят. Больше похоже на вымогательство, чем на удобный сервис, особенно в свете вот этого исследования на тему стоимости хранения данных. Поэтому я решил, что настала пора создать проект, который лишен этих недостатков.
Так появилась идея, а что из этого получилось можно прочитать под хабракатом.
+17
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity