Pull to refresh
1
0
Александр @Funcraft

User

Send message

Наследование шаблонов в PHP без использования сторонних библиотек

Reading time5 min
Views8K
При разработке Web-приложений мы обязательно сталкиваемся с проблемами рендеринга HTML-страниц. Обычно эти проблемы решает шаблонизатор — собственно PHP или какой-нибудь парсер шаблонов. Если приложение большое и страницы содержат множество блоков, то сложность шаблонов может резко возрасти, а у разработчиков появляется желание упростить работу с ними. В ход идут разные техники, но обычно это выделение в шаблонах повторяющихся блоков и правильная их декомпозиция — включая наследование шаблонов.
Что это такое, и как это сделать на PHP читайте далее.

Тестирование программ в сложных «погодных условиях»

Reading time4 min
Views3K

Здравствуй, уважаемый Хабр! Я являюсь участником разработки автоматизированных систем управления высокой надежности, которые применяются на электростанциях, космодромах, сложных производствах и т.п. Однажды передо мной встала задача придумать метод проверки работоспособности программ в условиях загруженности всяких железяк, а именно:
  1. Загруженность процессора
  2. Загруженность сети отправкой/приемом
  3. Нехватка оперативной памяти
  4. Загруженность жесткого диска запросами чтения/записи
а также придумать способ оценки, на сколько та или иная программа может создавать задержки/помехи, для работы других программ. На мой взгляд, наиболее интересный из этих четырех — первый пункт, поэтому речь пойдет именно о нем.
Под катом описываются две утилитки, которые у меня получились и принцип их работы, а так же парочка скриншотов и видео.
Читать дальше →

Внутри извращенного ума специалиста по безопасности

Reading time4 min
Views3.7K
Компания «Дядя Милтон» с 1956 года продавала муравьиные фирмы детям. Пару лет назад я вспомнил, как я с другом вскрывал одну из них. В коробке не было самих муравьев. Вместо них в ней была карточка, в которую нужно было вписать свой адрес, а фирма бы отправила вам немного муравьем. Мой друг удивился тому, что можно получить муравьев в посылке.

Я ответил: «Что тут действительно интересно, так то, что эти люди отправят трубку с муравьями любому, кто их об этом попросит.»

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

Разгони свой сайт – автоматическая СКЛЕЙКА + GZIP

Reading time9 min
Views16K
Разгонись

Есть куча советов как убыстрить отдачу сайта – это и статика через nginx и кластеризация и куча еще всяческих хитрых технологий. Однако во всех книжках, советующих как можно повысить загрузку сайтов можно найти две постоянно повторяющиеся темы – «склеивание CSS/JS» и «включение сжатия».
Читать дальше →

Высшее образование как важный этап формирования личности, или тестирование под нагрузкой

Reading time5 min
Views36K
Для начала простой пример из жизни. Детство и глубокая юность, когда любая мотивация выражается только лишь словом «хочу». Она еще не подкреплена знаниями и возможностями для достижения нужной цели, которые из-за этого кажутся недостижимыми. Взрослая жизнь, когда воплотить почти любую юношескую мечту (в разумных пределах) так же легко, как просто щелкнуть пальцами. Теперь когда «те» цели уже достигнуты, они не кажутся такими недостижимыми, но теперешние цели как раз наоборот, запредельны. Но как только мы покоряем новую вершину, то начинаем теряться в недоумении: «Ну почему я раньше думал что это, если не невозможно, то уж слишком трудно и сложно, чтобы я(!) смог это осилить?»

Интересно? Велкам под «кат».
Читать дальше →

Excel Mashup — сервис от Microsoft для внедрения возможностей Excel в веб

Reading time1 min
Views2.7K
На этой неделе Microsoft представила свой новый сервис Excel Mashup, который предназначен для внедрения возможностей табличного процессора Excel в HTML-страницу, причем все вычислительные и графические возможности Excel сохраняются, а управление объектом возможно при помощи JavaScript-библиотеки.

С сервисом предлагается работать следующим образом:
  • Web-разработчик, располагая некими данными и/или графиками в книге Excel, загружает её на облачный сервис SkyDrive (необходима регистрация) и настраивает права доступа к ней.
  • Затем получает от сервиса HTML-код для установки на страницу. Этот код и будет, по сути, «web-версией» обычной «десктопной» книги Excel.
  • Если внедренным объектом необходимо управлять, то программист может использовать по своему усмотрению возможности JavaScript-библиотеки Excel Services.

Сервис хорошо документирован: есть интерактивные примеры сниппетов, выполнив код которых можно тут же увидеть как это выглядит, а также полноценное демо-приложение.

Эффектный пример с использованием Bing Maps также можно оценить здесь.

Для еще более глубокого использования также предлагается REST и SOAP API.

[ExcelMashup]

Практический эпизод борьбы с DDoS

Reading time4 min
Views9.2K
Один юноша очень любил ругаться на тематическом ресурсе. И за это его регулярно банили. А один раз взяли, да и не разбанили.

Обиделся юноша, и решил отомстить. Поднакопил денег, взял да и заказал DDoS ресурса. Благо это в РФ не уголовно, к сожалению, наказуемое деяние.

DDoS, на который юноше удалось накопить, заключался в отсылке армией ботов одинаковых HTTP-запросов.

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

Тем, кто (предпо)читает Хемингуэя в подлиннике, можно сразу отправляться сюда. Там и код тоже можно найти.

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

DocHub.io — удобный справочник HTML, CSS, Javascript

Reading time1 min
Views14K
Интернет наполнен огромным количеством документации для веб-разработчиков. Но, к сожалению, использование большей части документации довольно неудобное. Для примера, возьмем Mozilla Developer Network (MDN). Сайт Mozilla Developer Network предлагает большой объем документации по CSS, JavaScript, HTML, SVG и т.д., но навигация по нему утомительна — нет никакого глобального меню и поиск не столь удобный.

Это привело разработчика Рафаэль Гарсия создать instaCSS — быстрый способ просматривать документацию CSS от MDN. Благодаря хорошей функции поиска и чистому, простому дизайну с хорошим глобальным меню instaCSS стал хитом по мнению читателей Hacker News. В связи с большим спросом, Гарсия перевел проект на более широкий домен DocHub.io и расширил поиск по CSS, HTML, JavaScript и DOM.
Читать дальше →

Embedded Tweet. Теперь твиты можно вставлять на свой сайт

Reading time1 min
Views11K
Наряду с редизайном твиттера объявленным совсем недавно, twitter показал новый способ, позволяющий владельцам веб-сайтов вставлять твиты на свои сайты, которые дают посетителям возможность отвечать, ретвитать прямо со страницы.
Пользователи Twitter теперь могут разместить твиты на своем сайте просто с помощью одной строчки кода. Одним щелчком мыши можно следить(follow) за автором твита.

Как это выглядит на сайте:


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

QML — больше, чем просто GUI

Reading time10 min
Views19K
Этот пост участвует в конкурсе „Умные телефоны за умные посты“.

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

Этот пост не является очередным переводом или вольным изложением разнообразных QML Howto и Quick Start. Скорее, это описание подводных камней, с которыми можно столкнуться при написании реального приложения.

Игровое полеКогда Qt Quick/QML только было заявлено, от Нокии звучали слова, что «в перспективе не только пользовательский интерфейс будет писаться на Qt Quick, но и вся логика несложных приложений будет написана на яваскрипте, программистам не потребуется написать ни строчки кода на плюсах». Заявление было ещё более провокационное, чем мой заголовок, и сразу меня заинтересовало: я решил попробовать написать несложную игру без единой строчки кода на плюсах.

Чтобы подогреть интерес, добавлю, что:
  • обычно я код пишу как раз на плюсах
  • я достаточно слабо знаю JS
  • я не умею и ненавижу делать интерфейсы
  • когда-то я попытался сделать эту же игру на честном Qt, но сломался, не выдержав общения с QGraphicsScene и другими интересными классами
  • результат моих трудов можно не только скачать, но и сыграть в них по сети
  • все исходники можно скачать у меня из bazaar или тарболлом.


Об остальном мы узнаем под катом.
Повесть, как я яваскрипт побеждал

Видео с Web Standards Days в Минске

Reading time2 min
Views1.4K

Долгожданное видео


Обещанного, как водится, три года ждут. А мы управились всего чуть больше, чем за месяц: видео со встречи Web Standards Days, прошедшей 29 октября в Минске наконец-то опубликовано вместе с докладами.

Кто-то спросит: а как же Киев, он же был на неделю раньше? Киев тоже будет, но по остаточному принципу: только те видео, которые не прозвучали потом в Минске. Хотя бы потому, что качество минского видео получилось лучше. Но давайте от слов к делу:

Adobe Edge. Веб-анимация по стандартам



Презентация: webstandardsdays.ru/2011/10/29/pres/edge

И ещё восемь видео под катом

Карты и гелокационные данные на Windows Phone

Reading time7 min
Views3.9K

Знакомство начнём с элемента управления Map, который предоставляет интерфейс к картам на Windows Phone. Давайте создадим новый проект из шаблона Windows Phone Application и назовём его ExploreMapControl.
Продолжить чтение

Сон и продуктивная деятельность

Reading time8 min
Views106K

Вступление


Доброго времени суток, %habrauser%! Думаю, в этой статье я не открыл ничего нового. Просто меня самого заинтересовала тема продуктивного сна. Несколько последних лет я был приверженцем мнения, что сон – это бесполезная трата времени, к сожалению необходимая организму. И посему, я максимально старался сократить время сна. Но чем больше я это делал, тем больше я начинал походить на зомби. И тогда я стал искать альтернативу. И результатом обобщения всей найденной мной информацией и стала эта статья. Итак, поехали!
Читать дальше →

Как создать ТЗ для программиста

Reading time6 min
Views110K
Рекомендации геймдизайнеру от программиста (архитектора).


Вступление

Компьютерные игры — относительно молодая отрасль, которая в перспективе сменит киноиндустрию, так-же как кинофильмы заменили театр. Создание игры — это коллективное творчество, во многом напоминающее создание кинофильма. Кроме того, создание компьютерных игр — одна из самых сложных IT задач, поскольку она включает все себя практические все IT области.

Все слышали про pre poduction, но мало кто знает как именно это происходит. И если про стадию разработки написано много, а про стадию издания — еще больше, то про стадию планирования известно очень мало. В лучшем случае вам посчастливится ознакомится с результатами планирования. А вот как были достигнуты эти результаты? — загадка во тьме.

Этот документ является результатом «разбора полетов» после написания игры Звездная арена для социальных сетей. В этом документе я попытался упорядочить список проблем и решений к которым я и Александр пришли в процессе совместной работы над игрою. Кроме того этот документ является частью большой работы по выстраиванию рабочего процесса создания компьютерных игр.

Я намеренно оставил за кадром другие документы: концепцию, экономическое обоснование и ТЗ для других исполнителей. Это позволило сфокусироваться на одной теме и осветить ее и только ее достаточно подробно.

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

Почему я стремлюсь домой: манифест папы и разработчика

Reading time3 min
Views2.2K
Я люблю свою работу, люблю свою карьеру, люблю решать сложные задачи, люблю разрабатывать большие программы. Но не настолько, насколько я люблю свою дочь.

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

Проще лучше, чем лучше

Reading time5 min
Views4K
В своей книге Парадокс выбора («The Paradox of Choice» by Barry Schwartz) Барри Шварц приходит к интересному выводу относительно осуществления выбора человеком:

«Люди выбирают не на основе того, что важнее, а основываясь на том, что легче всего оценить.»

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

Лучшие вещи 2.0

Reading time2 min
Views799
Всем привет!

Как-то раз, мы на drebedengi.ru задались вопросом — как бы с пользой для дела употребить информацию о десятках тысяч расходов, которые скрупулёзно вводятся людьми ежедневно?

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

О некоторых интересных выводах из получившегося народного голосования и пойдёт речь.
Читать дальше →

Канал GTV: Документальный фильм про Стива Джобса и NEXT. 1986г. (русский перевод)

Reading time1 min
Views9.6K
Документальный фильм про Стива Джобса и его стартап, компанию NEXT, которую он основал после ухода из Apple. Фильм снят в 1986 году. Перевод на русский язык — канал GTV.

imageimageimageimage

Приятного всем просмотра!
Читать дальше →

Upgrade Viola Jones

Reading time12 min
Views18K
В моём предыдущем топике я старался показать, как метод Viola Jones работает, с помощью каких технологий и внутренних алгоритмов. В данном посте, дабы не прерывать цепочку, будет также много теории, будет показано за счет чего можно улучшить и до того прекрасный метод. Если здесь описать еще и программную реализацию, то будет огромное полотно, которое читать будет очень неудобно, и смотреться это никак не будет — решено разбить объем информации на два отдельных поста. Ниже — теория, мало картинок, но много полезного.
Заинтересованных прошу под кат

Information

Rating
Does not participate
Location
Казань, Татарстан, Россия
Date of birth
Registered
Activity