В первой части мы с вами создали виртуальную машину, установили Ubuntu, настроили сеть и SSH доступ к гостевой ОС (Ubuntu). Теперь, самое время разобраться с синхронизацией наших файлов. Можно конечно не заморачиваться с этим, а просто копировать файлы по sftp после каждого редактирования, но это быстро надоест. По этому, для полного счастья стоит взять на вооружение один из ниже описанных способов.
Дмитрий Шейко @rglab
senior web developer
JavaScript Gaming: Часть 1. Box2d и основы Физики
28 min
23K
Вместо предисловия.
Я всегда любил и буду любить компьютерные игры. Есть в них какая-то своя внутренняя магия, которая всегда привлекает и завораживает одновременно. За всю свою жизнь я переиграл в десятки игр, начиная с ветеранов Wolfenstein и Dune 2 и заканчивая современными блокбастерами. И теперь, добивая очередной хит и наблюдая за финальным роликом и титрами, в голове все чаще и чаще мелькает мысть «А что, если?..»
А ведь действительно, что если взять и написать собственную игру? Конечно же понятно, что ААА-тайтл сделать в одиночку не получится, и это годы работы и прочая и прочая, но ведь осилит дорогу идущий? Так уж получилось, что в Desktop-программироании я откровенно слаб, и вариантов для практикующего веб-разработчика не так уж много. Но за последние годы все кардинально изменилось, и теперь уже у браузера много общего с кофеваркой, а javascript может спокойно удовлетворять даже нужды военных ведомств, не то что мои собственные.
Вот как раз во время очередных раздумий и достаточно серьезной простуды мне попалась на глаза статья о Box2d в игрологе Ant.Karlov'а. Зачитавшись и замечтавшись я очень быстро нашел JS-порт этой библиотеки, и старая шальная идея сделать что-то маленькое и, главное — свое, начала донимать меня с новыми силами.
В общем, меньше патетики, больше дела. Надеюсь, вам будет интересно. Да простят меня суровые боги за использование Angry Birds в КПДВ ^_^
+147
Iterator, ArrayAccess, Countable: Объект как массив
5 min
31K0. Intro.
В стандартной поставке php имеются 2 интересных интерфейса, позволяющие значительно изменять поведение объектов в языке.
Это Iterator и ArrayAccess. Первый позволяет итерировать объект через такие конструкции each, foreach, for. Второй же, в свою очередь, позволяет обращаться к объекту, как к массиву применяя привычное $array[] = 'newItem'. Соответственно, для полноценной эмуляции массива, объект обязан заимплементить оба интерфейса.
+50
Стратегия социального проектирования (Social Design Strategy)
9 min
6KTranslation
От переводчика: данная статья была опубликована Эриком Фишером, евангелистом Facebook, в мае 2011 года и легла в основу Руководства по социальному проектированию от Facebook.
Продукт или сервис становится выдающимся, если предлагает своим пользователям возможность реализовать какую-то выдающуюся практику. И это отнюдь вопрос не о том, что пользователи делают в сервисе или как они это делают, а скорее вопрос о том, почему они делают с помощью сервиса то, что они делают. Почему они регулярно возвращаются к сервису и почему рассказывают о нём своим друзьям. Социальное проектирование как раз отвечает на этот вопрос «почему» и объясняет, как создавать возможности для реализации подобных выдающихся практик.
Давайте я расскажу вам короткую историю. Strand Book Store — довольно известный книжный магазин в Нью-Йорке. Но я впервые узнал о его существовании (хотя и живу в Нью-Йорке) только тогда, когда в начале этого года мне довелось прогуливаться неподалеку от него вместе с моей подругой, и она показала мне на него. Она сказала, что регулярно посещает этот магазин, и что он тоже должен мне понравиться. И он мне действительно понравился. Я даже приобрел там книгу одного своего любимого автора.
С помощью современных технологий мы можем получать ответы на любые вопросы очень быстро. На своем телефоне я бы легко мог вывести все книжные магазины Нью-Йорка, определить маршрут к каждому из них, а также узнать, в каких из них продаются книги моего любимого автора. Но ценность социального заключается как раз в том, что я могу найти даже то, что и не думал искать вообще.
Продукт или сервис становится выдающимся, если предлагает своим пользователям возможность реализовать какую-то выдающуюся практику. И это отнюдь вопрос не о том, что пользователи делают в сервисе или как они это делают, а скорее вопрос о том, почему они делают с помощью сервиса то, что они делают. Почему они регулярно возвращаются к сервису и почему рассказывают о нём своим друзьям. Социальное проектирование как раз отвечает на этот вопрос «почему» и объясняет, как создавать возможности для реализации подобных выдающихся практик.
Давайте я расскажу вам короткую историю. Strand Book Store — довольно известный книжный магазин в Нью-Йорке. Но я впервые узнал о его существовании (хотя и живу в Нью-Йорке) только тогда, когда в начале этого года мне довелось прогуливаться неподалеку от него вместе с моей подругой, и она показала мне на него. Она сказала, что регулярно посещает этот магазин, и что он тоже должен мне понравиться. И он мне действительно понравился. Я даже приобрел там книгу одного своего любимого автора.
С помощью современных технологий мы можем получать ответы на любые вопросы очень быстро. На своем телефоне я бы легко мог вывести все книжные магазины Нью-Йорка, определить маршрут к каждому из них, а также узнать, в каких из них продаются книги моего любимого автора. Но ценность социального заключается как раз в том, что я могу найти даже то, что и не думал искать вообще.
+28
Полноценная замена Denwer или разворачиваем Ubuntu-server на VMware (часть 1)
4 min
44KВсе кто занимается разработкой сайтов под windows, наверняка сталкивались с различными проблемами после запуска сайта на сервере. Проблемы эти появляются из-за того, что сервера обычно работают под ОС Linux. Кроме того, время от времени появляются очень интересные штуки на подобие NodeJS (портировали на win, но не сразу), которые очень хочется покрутить, но нельзя – на windows их нет. Однако, при всех этих недостатках с windows уходить не хочется, ведь здесь куча своих плюсов и привычно ведь в конце-то концов.
Но не стоит огорчаться, ведь есть виртуализация, которая спешит нам на помощь.
Но не стоит огорчаться, ведь есть виртуализация, которая спешит нам на помощь.
+26
Обработка входящей почты на PHP
2 min
38KХочу поделиться рецептом, как совместить php-скрипт и почтовый сервер Postfix для автоматической обработки входящей почты.
С помощью такой связки мы собираем статистику по количеству возвратов bounce-писем:Undelivered Mail Returned to Sender.
На других сайтах, я встречал подобный функционал, например, чтобы публиковать контент, отправив его на закрепленный за пользователем почтовый ящик.
С помощью такой связки мы собираем статистику по количеству возвратов bounce-писем:Undelivered Mail Returned to Sender.
На других сайтах, я встречал подобный функционал, например, чтобы публиковать контент, отправив его на закрепленный за пользователем почтовый ящик.
+51
Тестирование приложений методом Fuzzing
4 min
14KВсе, кто разрабатывает на php, да и вообще на любом другом языке программирования с нечеткой типизацией, сталкивались с подобной проблемой:
Или даже такой:
PHP Notice: Undefined index: test in /var/www/Testing.php on line 171
PHP Notice: Undefined index: test2 in /var/www/Testing.php on line 171
Или даже такой:
PHP Fatal error: Cannot use object of type stdClass as array in /var/www/Testing.php on line 171
+21
Пишем «рисовалку» для iPhone на HTML5 Canvas
7 min
10KЗдравствуйте, Хабражители!
В этом топике я покажу как создать простой графический редактор для iPhone. Статья написана максимально понятно, поэтому даже новичку не будет сложности разобраться. Более того, я расскажу:
Больше — под катом
В этом топике я покажу как создать простой графический редактор для iPhone. Статья написана максимально понятно, поэтому даже новичку не будет сложности разобраться. Более того, я расскажу:
- об особенностях событий touch-устройств;
- об особенностях верстки для мобильных девайсов;
- почему для создания нормальной «рисовалки» нужно использовать несколько холстов;
- что такое clickjacking и зачем я использовал этот хак в своей рисовалке;
- о всех трудностях и некоторых мелочах, с которыми я столкнулся в процессе разработки;
Больше — под катом
+42
Реализация паттерна Observer средствами PHP 5.3
3 min
11KПрочитав недавно нововведения PHP 5.3, я обратил внимание на несколько интересных особенностей, скомпоновав которые можно получить реализацию шаблона проектирования Observer, гораздо красивее, чем имеющиеся в pear и symfony, причём вся реализация займёт всего несколько строк кода.
+42
oAuth для iOS приложений
3 min
12K
Вечерело. Теплая августовская суббота предрасполагала к реализации oAuth авторизации на Google и Facebook для iOS клиента клуба интеллектуальных игр.
Поверхностный поиск в сети нам намекнул, что обе компании предоставляют средства для разработчиков, позволяющие поскорее автоматизировать эту рутину, и вернуться к более интересным задачам непосредственного программирования игрового процесса.
Быстрые ссылки на сами библиотеки: Google — gtm-oauth2, Facebook — facebook-ios-sdk
О нюансах интеграции под катом.
+23
Введение в PERFORMANCE_SCHEMA
13 min
27KМного камней было брошено в адрес MySQL, ввиду отсутствия возможности трассировки сессий и снятия stats pack отчетов, показывающих какие именно события нагружают базу данных. Начиная с версии 5.5 MySQL наконец-то озадачился необходимостью решения данной проблемы и выставил прототип, который в будущем, возможно, приведет к созданию аналогичных инструментов в MySQL. Сегодняшний мой рассказ будет о таком мощном (к сожалению пока только для разработчиков MySQL) инструменте как PERFORMANCE_SCHEMA. Итак выставляем performance_schema=ON в конфигурационном файле my.cnf, и приступаем к изучению её ограниченных, но уже крайне интересных возможностей.
+47
Полнотекстовый поиск в InnoDB
12 min
37KПривет, Хабрачитатель!
Полнотекстовый поиск данных в InnoDB – это известная головная боль многих разработчиков под MySQL / InnoDB. Для тех, кто не в курсе дела я объясню. В типе таблиц MyISAM есть полноценный полнотекстовый поиск данных, однако сама таблица исторически имеет ограничения, которые являются принципиальными в отдельных проектах. В более «продвинутом» типе таблиц InnoDB полнотекстового поиска нет. Вот и приходится мириться бедным разработчикам либо с ограничениями MyISAM, либо с отсутствием поиска в InnoDB. Я хочу рассказать о том, какие есть способы организовать полноценный поиск в InnoDB без магии и исключительно штатными средствами. Также будет интересно сравнить скоростные характеристики каждого способа.
Полнотекстовый поиск данных в InnoDB – это известная головная боль многих разработчиков под MySQL / InnoDB. Для тех, кто не в курсе дела я объясню. В типе таблиц MyISAM есть полноценный полнотекстовый поиск данных, однако сама таблица исторически имеет ограничения, которые являются принципиальными в отдельных проектах. В более «продвинутом» типе таблиц InnoDB полнотекстового поиска нет. Вот и приходится мириться бедным разработчикам либо с ограничениями MyISAM, либо с отсутствием поиска в InnoDB. Я хочу рассказать о том, какие есть способы организовать полноценный поиск в InnoDB без магии и исключительно штатными средствами. Также будет интересно сравнить скоростные характеристики каждого способа.
+67
Полезные советы проектировщикам интерфейсов
3 min
5.4KУделяйте достаточное внимание шаблонам
Люди тратят большое количество времени, используя различные интерфейсы (Facebook, Google, Windows, Mac OS и т.д.). В них уже могут быть представлены решения проблем, с которыми вы сталкиваетесь при проектировании. Поэтому не стоит изобретать колесо. Используя привычные шаблоны интерфейсов вы поможете пользователям почувствовать себя как дома.

CoTweet имеет привычный по почтовым клиентам шаблон.
+70
HTML5 — взгляд через призму безопасности
10 min
26KHTML5 — будущий стандарт языка разметки Интернет. Пока он находится в стадии черновика, но все больше и больше его возможностей реализуются в популярных веб-браузерах. Но как это обычно бывает, новые технологии несут в себе и новые опасности, которые могут быть успешно проэксплоитованы.
+140
HTML5 File API: множественная загрузка файлов на сервер
7 min
87KКогда передо мной в очередной раз встала задача об одновременной загрузке нескольких файлов на сервер (без перезагрузки страницы, само собой), я стал блуждать по интернетам в поисках довольно корявого jQuery-плагина, который позволяет имитировать ajax-загрузку файла (того самого плагина, который со скрытым фрэймом: от java- и flash- плагинов сразу было решено отказаться). В процессе поиска я вспомнил, что в грядущем стандарте html 5 возможности по работе с файлами должны быть существенно расширены, и часть этих возможностей доступна уже сейчас. В итоге было решено опробовать их в действии.
Рассматривать возможности File API будем на примере одновременной загрузки нескольких картинок на сервер. В конце статьи приводится готовое решение, оформленное в виде jQuery-плагина.
Рассматривать возможности File API будем на примере одновременной загрузки нескольких картинок на сервер. В конце статьи приводится готовое решение, оформленное в виде jQuery-плагина.
+97
Непрерывная интеграция на примере Hudson
10 min
33KВсе мы прекрасно понимаем, что тестирование является неотъемлемой частью жизненного цикла разработки ПО. Чем чаще мы тестируем наш код, тем быстрее мы сможем обнаружить ошибку, вкравшуюся в него в ходе разработки, и быстрее её исправить. При этом стоит понимать, что тестирование крайне желательно проводить в окружении, максимально близком к боевому (ОС, ПО, Hardware, Нагрузка), что бы иметь возможность обнаружить ошибки, которые не проявляются на сервере разработки, но могут появиться в бою. Компануя два вышесказанных тезиса вместе мы получаем концепцию, называемую Continuous Integration.
Суть CI заключается в постоянной (например, после каждого commit'а) сборке и тестировании разрабатываемого ПО в максимально приближенной к боевой среде с целью как можно более раннего обнаружения ошибок и оповещения о них разработчиков. Сама идея CI принадлежит Martin Fowler, подробно описавшему её в своей статье.
Для автоматизации процесса непрерывной сборки существуют готовые решения (Hudson, CruiseControl), интеграцию одного из которых (Hudson) я и опишу в этой статье.
Суть CI заключается в постоянной (например, после каждого commit'а) сборке и тестировании разрабатываемого ПО в максимально приближенной к боевой среде с целью как можно более раннего обнаружения ошибок и оповещения о них разработчиков. Сама идея CI принадлежит Martin Fowler, подробно описавшему её в своей статье.
Для автоматизации процесса непрерывной сборки существуют готовые решения (Hudson, CruiseControl), интеграцию одного из которых (Hudson) я и опишу в этой статье.
+36
Бизнес планирование. Статья 2. Бизнес-план — это попытка убедить себя, что вам не стоит начинать этот бизнес
5 min
17KИтак, уважаемые читатели, учитывая успех предыдущей статьи по бизнес-планированию, думаю, продолжению быть. В прошлый раз мы остановились на вступительной теме по бизнес планированию, где обсуждали особенности идей, как они возникают и сколько они стоят. Также я предложил вам задаться вопросами (если вы только планируете начать свое дело), и подумать.
Хочу выделить следующие важные моменты, касающиеся бизнес плана в целом:
• Бизнес-план – это не только попытка проанализировать ваш бизнес и его шансы, но и ваше руководство к действию в ближайшем будущем после запуска бизнеса.
• Лучший способ писать бизнес-план, особенно на начальных стадиях – с листком бумаги и карандашом. И подальше от раздражителей. И только потом упорядочивание и перенос на компьютер.
Сегодня мы продолжим уже более точечно рассматривать процесс бизнес планирования, но прежде я бы хотел ознакомить вас со списком тем, котрые обычно включаются в бизнес-план, и каждой теме я планирую посвятить по одной статье. Довольно амбициозная задача, так как обычно бизнес-план включает в себя около 15-20 разделов, и каждый важен по-своему. То есть, в идеале у нас с вами должно получиться около 20 статей.
Итак, список:
Хочу выделить следующие важные моменты, касающиеся бизнес плана в целом:
• Бизнес-план – это не только попытка проанализировать ваш бизнес и его шансы, но и ваше руководство к действию в ближайшем будущем после запуска бизнеса.
• Лучший способ писать бизнес-план, особенно на начальных стадиях – с листком бумаги и карандашом. И подальше от раздражителей. И только потом упорядочивание и перенос на компьютер.
Взгляд сверху
Сегодня мы продолжим уже более точечно рассматривать процесс бизнес планирования, но прежде я бы хотел ознакомить вас со списком тем, котрые обычно включаются в бизнес-план, и каждой теме я планирую посвятить по одной статье. Довольно амбициозная задача, так как обычно бизнес-план включает в себя около 15-20 разделов, и каждый важен по-своему. То есть, в идеале у нас с вами должно получиться около 20 статей.
Итак, список:
+52
Управление зависимостями в коде
1 min
5.7KЯ рассмотрел, как эволюционировал подход к управлению зависимостями в коде. Какие проблемы возникали на каждом этапе и как эти проблемы решались. Возможно на каком-то этапе вы узнаете свой проект и поймете куда двигаться дальше.
Основные темы:
Исходники проекта
Основные темы:
- Design for testability
- Принцип инверсии зависимости
- Пассивная и активная инжекции зависимостей
- Принцип работы IoC-контейнера
- Composition versus Inheritance
- Convention over Configuration
Исходники проекта
+30
Версионирование структуры БД в MySQL: MySQL Migration with PHP
3 min
13KКогда БД проекта вырастает за пределы трех-пяти таблиц, продолжая при этом постоянно изменяться, на свет рождаются неудобства обмена изменениями между разработчиками. Проблема стара как мир, но инструмента удовлетворяющего мои требования я в ноябре 2009го найти не сумел.
Мои требования к инструменту очень просты:
Мои требования к инструменту очень просты:
- Как бы я не издевался над структурой данных в приложении, инструмент должен уметь изменить структуру в другой инсталляции приложения так, чтобы она была идентична моей.
- System requirements: PHP и MySQL — не более того.
- Бесплатность.
- Открытость.
+29
Шпаргалка по паттернам проектирования из книги Gang of Four Design Patterns for .NET 2.0
1 min
17KПросто список примеров реализации паттернов на C#, более-менее хорошо сформатированных.
Делал для себя, но может быть кому-нибудь пригодится.

depositfiles.com/files/gl3ux6p07
2u.ifolder.ru/16126054
fileland.ru/file_id-248997
foldo.ru/38053i807d/Pattierny_kratko.doc.html
Делал для себя, но может быть кому-нибудь пригодится.

depositfiles.com/files/gl3ux6p07
2u.ifolder.ru/16126054
fileland.ru/file_id-248997
foldo.ru/38053i807d/Pattierny_kratko.doc.html
+19
Information
- Rating
- Does not participate
- Location
- Frankfurt am Main, Hessen, Германия
- Date of birth
- Registered
- Activity