Как стать автором
Поиск
Написать публикацию
Обновить
24
0
Александр @Holden

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

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

Pagodabox — облачный хостинг PHP проектов

Время на прочтение2 мин
Количество просмотров3K
imagePagoda Box это новый PaaS для PHP проектов. Это значит что заполнив всего несколько полей в форме можно запустить свой проект на масштабируемой платформе, где первая доза бесплатно и кроме этого специально для читателей habra была выделена большая партия приглашений, чтобы получить один — напишите в приват (ваш email не требуется).

P. S.
Я не являюсь членом команды разрабатывающей описываемый сервис, но имею в наличии пакет приглашений.

image

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

«Облако» как альтернатива традиционному хостингу

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

На последнем РИФе я рассказывал об «облаке» как альтернативе традиционному хостингу (на примере Амазона).

С тех пор прошло несколько месяцев. За это время я многократно дискутировал как с ярыми противниками «облака», так и с не менее активными сторонниками.

Последний такой спор случился пару дней назад непосредственно с хостерами. И закончился (с их стороны) примерно таким выводом: «Сейчас облако в хостинге — маркетинговое зло, которое только путает людей».

Тема, как мне кажется, не просто популярная и интересная, но и очень важная. Поэтому я хотел бы обобщить свой собственный опыт (у меня есть несколько личных сайтов на виртуальном shared хостинге, периодически по знакомству присматриваю за одним дедиком, а все рабочие проекты размещены в «облаке» Амазона) и вместе с вами постараться разобраться во всех плюсах и минусах облачного хостинга по сравнению с традиционным.
Читать дальше →

Real-life unit tests

Время на прочтение1 мин
Количество просмотров6.7K
Часто мне приходилось слышать, что кто-то послушал лекцию или прочитал статью про юнит-тесты, вроде как всё понял; решил сам попробовать — и ничего не получилось.

Почему так получается?

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

В этом видео на живом примере показано, как писать юнит-тесты для кода с внешними зависимостями.

www.devclub.eu/2011/06/06/asolntsev-real-life-unit-tests

Слайды и пояснения:

Сертификация PHP 5.3 от Zend

Время на прочтение3 мин
Количество просмотров25K
Ну про Zend сертификацию PHP 5.3 никто еще не писал, попробую написать я, надеюсь, будет интересно.

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

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

ВКонтакте стало доступным удаление страницы

Время на прочтение1 мин
Количество просмотров90K
Как и заявлял Дуров, удаление страницы теперь доступно.
Сделать это можно по адресу: vk.com/settings?act=deactivate
Да только вот почему есть галочка «рассказать друзьям»? :)
P.S. Попробуйте ставить отметки на разных пунктах.

Быстрая разработка приложений с использованием библиотеки Greendroid

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


Покажу Greendroid в работе на примере последнего разрабатываемого мной приложения (клиент для чтения сайта, кстати он недавно пиарился на хабре.

Многие из вас наверно видели паттерны Google по разработке интерфейса аndroid приложений. Greendroid это библиотека которая реализует в себе паттерн ActionBar и много других виджетов интерфейса. Она позволяет сосредоточится на логики приложения, не думаю о создании и верстки ActionBar'ов, элементов списка и тд.

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

Pull request'ы на GitHub или Как мне внести изменения в чужой проект

Время на прочтение6 мин
Количество просмотров523K
По просьбе tulskiy делаю вольный перевод частей официальной документации GitHub'а Fork A Repo и Send pull requests.

Итак, что же такое «запрос на включение (сделанных вами изменений)» (именно так я перевёл pull request)? В официальной документации гитхаба говорится следующее:
Pull request'ы позволяют вам рассказать другим о тех изменениях, которые вы разместили в своём GitHub-репозитории. Как только pull request отправлен, заинтересованные стороны рассматривают ваши изменения, обсуждают возможные правки или даже добавляют дополняющие коммиты, если нужно.

Говоря своим языком: Посылая pull request, вы говорите автору изначального репозитория (и всем заинтересованным лицам): «Смотрите, что я сделал, не хотите ли принять мои изменения и влить их в проект?»
Читать дальше, но теперь уже обо всём по порядку

Preloaders.net — теперь с поддержкой APNG

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


Раннее мы уже писали про наш сервис для создания «прелоадеров» (анимированные изображения — индикаторы для подгрузки данных) Preloaders.net. В новой версии мы решили добавить сразу несколько новых возможностей, главная из которых — создание прелоадеров в формате APNG (Animated PNG).
Читать далее

PHP — получение суммы прописью

Время на прочтение2 мин
Количество просмотров57K
Здравствуйте!

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

Пример использования:
num2str(878867.15); // восемьсот семьдесят восемь тысяч восемьсот шестьдесят семь рублей 15 копеек

Далее сам код…
Читать дальше →

PhoneGap 1.0 позволяет писать приложения для семи платформ

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


До сих пор разработчики мобильных приложений следовали довольно предсказуемому modus operandi: сначала разработать приложение для iOS, потом — для Android, а потом для других платформ.

В прошлом же году компания Nitobi начала разработку открытого проекта PhoneGap, позволяющего, используя HTML, CSS и JavaScript, легко создавать приложения сразу для Android, Bada, BlackBerry, iOS, Symbian, webOS и Windows Phone 7.

Кроме Nitobi, в разработке участвуют сотни отдельных разработчиков и команда старших инженеров-программистов IBM. Проект быстро набирает обороты, у него уже около 40 000 загрузок в месяц — в общей сложности 600 тысяч — и постоянный поток пожертвований.

Сейчас же вышла версия PhoneGap 1.0, в которой сделан акцент на доступ к нативным API устройств. Другие улучшения включают в себя общую стабильность API и «подключаемую» архитектуру, совместимость API с W3C DAP, API контактов и средства удалённой отладки. Более того, новый интерфейс делает добавление платформ и расширений платформ проще, наряду с упрощением процесса разработки плагинов.

via Engadget, The Next Web

Как сделать один сайт для всех устройств (Responsive Web Design)

Время на прочтение3 мин
Количество просмотров292K
Вчера была опубликована хорошая статья «Веб-дизайн. Каждому устройству свое представление». Несмотря на неплохие размышления, к сожалению, вывод в ней довольно глупый. А именно:

«Нужно определить, какими устройствами могут пользоваться ваши посетители, проработать и создать для этих устройств представление вашего сайта, определить устройство посредством проверки заголовков браузеров, и отправить наиболее подходящее представление

Почему это глупо


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



Это скриншот из презентации «Beyond the mobile web by yiibu» (очень рекомендую).

Во-вторых, если вы не facebook или yandex, скорее всего, вы не потянете создание и поддержку разных версий сайта для каждого устройства. Да и это не имеет особого смысла. Потому что ситуация становится похожа на реалии пятнадцатилетней давности. Тогда делали сайт «под браузер», а сейчас автор предлагает делать сайт «под устройство».

Как сделать один сайт для всех устройств

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

Runkit + PHPUnit = 100% покрытие тестами

Время на прочтение7 мин
Количество просмотров3.7K
Здравствуйте, уважаемые коллеги.

Одним из косвенных показателей качества кода считается code coverage — степень покрытия его тестами (как правило, имеются в виду модульные тесты). В большинстве случаев за coverage принимается соотношение количеству строк кода, в котрое попадает управление во время прогона тестов, к общему числу значимых (не являющихся комментарием, пустой строкой, или, например одной фигурной скобкой, обозначающей начало или конец блока) строк кода модуля.

Другим же условием хороших тестов является отсутствие сторонних эффектов (side effects), как например создание/удаление файлов, установка сетевых соединений, запись в порты и т.д.

Однако, когда дело касается модуля, взаимодествующего с внешним миром, эти два требования вступают в противоречие. И ладно, если речь идет о файловых операциях, когда на помощь приходит vfsStream. Но что делать, когда надо тестировать, скажем, прямую работу с сокетами или код, использующий функции curl_*?

Под катом вы найдете мое решение и, в качестве бонуса, еще одну ОПП-обертку к курлу, полностью покрытую тестами.
Читать дальше →

Chosen: сделай выпадающие списки более дружественными

Время на прочтение1 мин
Количество просмотров55K
Плагин Chosen создан для оформления красивых и удобных выпадающих списков с помощью jQuery и Prototype. Для установки плагина достаточно просто скачать файлы и прописать одну строчку:

$(".chzn-select").chosen()
(версия для jQuery)

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

Поскольку Chosen заменяет стандартный элемент HTML, то не нужно беспокоиться, как он работает с браузерами без поддержки JavaScript. Также не нужно ничего менять в бэкенде: формы сабмиттятся как обычно, изменения только в пользовательском интерфейсе.

Некоторые форки:
Chosen для MooTools
Модуль Chosen для Drupal 7

Решение проблемы часовых поясов в веб-приложении

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


Запуская наш проект в регионе, где часовой пояс был отличен от московского, мы столкнулись с проблемой разницы местного времени и времени сервера (московский часовой пояс). Надо сказать, что логика работы проекта сильно привязана к датам и времени и оставлять дату в московском времени было нельзя. Практически все даты у нас хранились в MySQL базе в формате DATETIME, что, как в последствии оказалось, не лучшим образом подходит для организации работы приложения в нескольких часовых поясах.
Читать дальше →

Каждому хостингу по аудиоплееру

Время на прочтение2 мин
Количество просмотров6.1K
Хорошие художники копируют, великие художники воруют.
Стив Джобс
Пабло Пикассо

Open Player
Наверное все слушают музыку в интернете, большинство для этих целей используют вконтакте, или сервисы на основе его музыкальной базы. Все существующие бесплатные сервисы имеют разные недостатки, которых небыло в ныне платном простоплеере. И возникла у меня идея создать не просто очередной простоплеер с базой из вконтакте, а такой который каждый сможет поставить себе на хостинг.
Читать дальше →

Основы работы с Wine для начинающих

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

Введение


Статья посвящена Wine и всем аспектам его использования. В сети находится очень
много информации, есть различные руководства по настройке и многое другое. Я
постараюсь объединить все для того чтобы любой человек смог достичь
максимального успеха, в пределах своих способностей и конечно возможности
программы. Итак — начнем.

Wine — это отдельная реализация Windows API, а не эмулятор, как большинство
думают. Не единожды повторялось, но и здесь будет уместно. Это и делает проект
уникальным и интересным для пользователей различных систем, открывает различные
пути для реализации своих идей. Уникальность заключается в том, что с помощью
этой программы можно запускать Windows приложения в Ubuntu и в других
Linux системах, а также во FreeBSD и в Mac OS X. Правда и тут есть
свои «подводные камни». Некоторые думают что будет легко перейти с одной
системы на другую, в данном случае мы рассматриваем Windows и Linux.

Заблуждение заключается в том что люди думают что у них получиться запустить из
под Wine различный софт, к которому они привыкли и им удобно в нем работать.
Как не крути просто так ничего не бывает. Чтобы заработал наш любимый софт под
Wine нужно попотеть, перечитать кучу руководств и взвесить этот объём
информация. Конечно не совсем софтом придется «пыжиться», но готовым надо быть ко всему. Проект Wine развивается очень быстро, но до стабильной работы ему
очень далеко. Но думаю что в скором будущем весь основной софт, а также игры
будут работать на нем стабильно.

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

Создание одностраничного ajax-приложения с поддержкой History API (и без нее)

Время на прочтение4 мин
Количество просмотров52K
Судя по комментариям в этой статье, создание веб-приложений с возможностью аякс-навигации является интересной для сообщества темой и пока еще немногие сталкивались с подобной задачей. Я расскажу о ее решении с помощью небольшой библиотеки под названием jQuery-Pjax (либо моего форка ее).

Моя мотивация: в проекте нужно было реализовать mp3-плеер, играющий независимо от навигации на сайте. Далее потребовалось добавить поддержку браузеров без pushState — и я сделал форк библиотеки.

Основные особенности

  • навигация по сайту и обработка форм без полной перезагрузки страниц
  • чистые url, доступные для прямого доступа
  • поддержка #!/hash для устаревших браузеров (добавлено в моей версии)
  • работа с кнопками «назад» и вперед» для современных браузеров
  • а теперь и для старых — благодаря benalman.com/projects/jquery-hashchange-plugin
  • похоже, есть проблемы с ИЕ7 (спасибо Nc_Soft) (тем более, большое спасибо за участие Nc_Soft) и, возможно, opera 11.5 (пока не могу подтвердить, но нахожу крайне удивительным из-за dev.opera.com/articles/view/introducing-the-html5-history-api) — сообщение artishok — проверено и работает на сборке 1074 (not_ice)
  • imsamurai (https://github.com/imsamurai) предложил улучшения библиотеки (и я радостью слил изменения): встроенная функция для отправки форм, улучшения работы с хешами и более развитая система триггеров. (у imsamurai, к сожалению, нет аккаунта на хабре — будем рады помощи)

Ссылки


Принцип работы Pjax

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

Почтовые рассылки на базе DIVной верстки: это возможно!

Время на прочтение4 мин
Количество просмотров4.3K
Тема почтовых рассылок на хабре поднималась буквально недавно, но там не освещался один важдый момент: как обеспечить редактируемость контента этой рассылки после красивой и аккуратной верстки.

Ведь если сверстано на таблицах, с пустыми gif'ами для отступов — результат «монолитный», но не дай бог такое редактировать контент-менеджеру. Моментально всё поедет, да и не умеют нормально визивиги работать с таким ужасом.

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

Масштабируемые JavaScript приложения

Время на прочтение22 мин
Количество просмотров40K
Более месяца назад в статье FAQ по JavaScript: задавайте вопросы был задан вопрос «Подскажите примеры хорошего подхода организации JS кода к сайту на достаточно высоком уровне. Как можно узнать подробнее практики реализации например gmail?».

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

Эта статья о том, как сделать крупное веб-приложение расширяемым и поддерживаемым: архитектура, подходы, правила.
Читать дальше →

IPO for dummies. Часть VIII: о мотивации

Время на прочтение10 мин
Количество просмотров3.8K
Начало и оглавление см. в первой части.

Акции у основателей компании и первых инвесторов — это очевидно. А как акции попадают к сотрудникам?

Ещё в самом начале развития стартапа основатель (особенно если он не имеет готовой команды) ищет первых сотрудников/коллег/соучастников, которые зачастую могут стать сооснователями. Станут или нет — зависит от многих факторов: сможет ли основатель обеспечить им зарплату «на уровне», от их commitment-а (помните байку про курицу и свинью, затеявших стартап в виде ресторанчика “Ham and eggs” и заспоривших, кто из них будет involved, а кто committed?), от их требований, наконец… Логично ожидать, что первые коллеги основателя, которые делят с ним в какой-то степени риск (а не просто ходят в офис отрабатывать зарплату), становятся, явно или неявно, сооснователями проекта. И в качестве компенсации за риск, в награду за приверженность делу, или как хороший стимул для красноглазенья без выходных, основатель делится с ними своей долей.
Читать дальше →

Информация

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