Разговор о том, чем является контроллер в разных типах приложений. Контроллером зачастую называют разные вещи в разных фреймворках и типах приложений. Я попытался немного расставить точки на «и» в этом вопросе и рассказал свое понимание сути контроллера абстрактно — независимо от типа языка и среды. Понимание сути контроллера дает понимание того, какой код должен попадать в контроллер, а какой наоборот, должен попадать в другие части системы.
Архитектура веб приложений: интерьер (видео-лекция)
Рассказ о возможной внутренней архитектуре ориентированных на масштабируемость, обслуживаемость и расширяемость веб-приложений, разрабатываемых на PHP или подходящих для Веба языках программирования. Реализация компонентного подхода внутри приложения, фунционального разделения кода, введение уровней абстракции копонентов.
Читать далее Архитектура веб приложений: интерьер (видео-лекция)
Архитектура веб приложений: экстерьер (видео-лекция)
Рассказ о популярной универсальной архитектуре стека, в котором работает веб-приложение. Само приложение может быть написано на любом интерпретируемом языке с использованием любого фреймворка фреймворков. В данном случае это не важно, так как архитектура программной инфраструктуры — технологического стека, в котором оно работает, отличается мало.
Читать далее Архитектура веб приложений: экстерьер (видео-лекция)
Классификация знаний в области программирования
Меня иногда спрашивают, что нужно выучить, чтобы стать программистом. Вопрос несколько наивный, т.к. нормально ответить на него по-моему невозможно. Т.е. для начала нужно выяснить, каким программистом нужно стать. Да и вообще, программистом ли? Кроме того, на рынке востребованы как высококвалифицированные дорогие специалисты, так и “рабочая сила”. Пакет знаний и опыта первых и вторых отличается в значительной степени.
Читать далее Классификация знаний в области программирования
Nginx: пример конфига для сайта с плюшками
Просто готвый пример универсального конфига nginx с использованием php-fpm, и секциями для базовых инструментов (phpMyAdmin, RockMongo) и функционалом для закрытия сайта в режим обслуживания. Сервер одновременно слушает и HTTP, и HTTPS. Все запросы с www перекидываются на адрес «без-www».
Nginx: сайт в режиме обслуживания, кроме разработчиков
На днях стала задача: сделать средствами nginx возможность перевода сайта в режим обслуживания для всех пользователей, кроме разработчиков. Под режимом обслуживания понимается то, что все запросы к скриптам сайта должны выдавать одну и ту же страницу с сообщением о том, что сайт временно недоступен (плюс HTTP-ответ с кодом 503).
Читать далее Nginx: сайт в режиме обслуживания, кроме разработчиков
Решение насущных задач на ruby: объединить файлы логов по порядку в один
Дано: каталог с файлами xxx.access.log, xxx.access.log.1, …
Требуется: объединить файлы в один большой в порядке по суффиксам (1, 2, 3, …).
Особенность: сортировка по именам файлов дает неверный порядок (1, 10, 11, …, 2, 20, …)
Читать далее Решение насущных задач на ruby: объединить файлы логов по порядку в один
Рестарт Apache в случае недоступности сайта
Иногда нужны простые но эффективные средства решения насущных задач. Например, у меня сложилась ситуация, когда сайт периодически начинает выдавать ошибку 500, не отмечая ничего в логах. Похоже, падает расширение PHP (подозрения на APC, но не в этмо суть). Рестарт Apache лечит проблему. Так как разбираться в ее истоках сейчас времени нет, я решил применить временное простое, но эффективное решение:
Internet Explorer и стратегии Microsoft
В августе 1995 года вышла первая версия Internet Explorer. В те времена активно рос и развивался Интернет, и для решения базовой задачи пользователя Windows — выхода в Сеть — Microsoft нужен был хороший браузер. В 97 году была выпущена переработанная с нуля версия 4.0 — это и есть настоящий предок всех следующих версий (более ранние версии вовсе были разработаны за пределами Microsoft).
Гордиться нужно не результатами, а их достижением
В СССР ценились именно результаты — конкретные победы, а не процесс их достижения. Чем больше было достигнуто побед, тем больше поводов для гордости. Результаты со временем накапливались, а люди все больше расслаблялись — какие же мы молодцы, столько всего сделали — и переставали стремиться к чему-то новому. Особенно ярыми достижениями были победа в войне и последующее восстановление страны. Неимоверная гордость за эти события живет в умах даже нынешних поколений, хотя уже давно бы пора переключиться на что-то насущное. Только вот нет ничего насущного — не на что переключаться. Поэтому основа идеологии в Беларуси по-прежнему базируется на достижениях 60-летней давности.
Способствовал такому положению вещей социальный строй в Союзе. На западе ценились именно достижения. Сегодня ты первый, но если завтра останешься без движения, то послезавтра будешь последним. И не важно, что позавчера ты был героем. Таков капитализм — вечная борьба. В то время, когда в Союзе люди в конец обленились и перестали что-либо делать сами, на западе прогресс развивался лавинообразно — люди все больше и больше стремились к достижениями новых результатов (за все большие и большие деньги).
Сейчас весь прогресс там, на западе. Что-то изменить без вмешательства посторонних факторов, уже невозможно.
Какое будущее операционных систем?
Посмотрите на Windows 8. Ребята из Редмонда наконец-то пересилили себя и начали ломать классический интерфейс Windows. Новое рабочее пространство пользователя больше похоже на веб-сайт, чем на классический «Рабочий стол». Значительно расширилась интеграция с Сетью всего программного стека Microsoft. Даже учетная запись пользователя Windows теперь по умолчанию представлена учеткой Windows Live. Microsoft Office становится облачной платформой, появляется новый центральный сервис хранения данных — SkyDrive. Читать далее Какое будущее операционных систем?
Я.Субботник в Минске, 2 июня
Я.Субботник в Минске пройдет 2 июня по адресу: Минск, ул. Кирова 13, отель «Crowne Plaza», зал «King».
Регистрация на мероприятие начнется 16 мая. Количество мест ограничено.
Для тех, кто не попадёт в число участников или не сможет лично присутствовать на Я.Субботнике, будет организована онлайн-трансляция.
Подробную информацию о мероприятии читайте здесь.
Про Active Cloud (Active.by; отзыв)
Сегодня на CloudCamp послушал 10-минутный доклад о том, как поднимали свое облако Active.by (aka Active Cloud). Было услышано много восхищённых отзывов от технического директора Руслана Райкевича о том, что у них в итоге получилось.
С одной стороны их труд действительно достоин уважения. Они сделали относительно недорогое решение за короткий срок в условиях ограниченных финансовых возможностей. Причем, эту услугу они вывели на мертвый рынок Беларуси. С другой стороны фейлов в Active Cloud получилось немало. Как раз об этих фейлах я и хочу рассказать. Читать далее Про Active Cloud (Active.by; отзыв)
Бесплатный валидный (подписанный) SSL-сертификат через StartSSL
Итак, вы хотите получить бесплатный SSL-сертификат для своего сайта (для HTTPS). На сколько я знаю, единственный сервис, который выдает бесплатные валидные годовые сертификаты — это StartSSL. Израильская компания занимается цифровой сертификацией и является официальным Центром сертификации (CA) в PKI.
StartSSL раздает валидные годовые SSL-сертификаты бесплатно. Другие компании берут за это деньги начиная примерно от $20 в год. StartSSL зарабатывает на сертификатах более высоких классов, включая сертификат с расширенной валидацией, а базовый сертификат делает бесплатно. Их идея заключается в том, что они не берут деньги за сервис, в котором не используется труд людей (базовая валидация домена производится автоматически).
Читать далее Бесплатный валидный (подписанный) SSL-сертификат через StartSSL
Выдача файла из PHP через nginx (Accel-Redirect) + докачка + некоторые тонкости
Как контролировать скачивание больших файлов, проверяя права доступа или считая количество закачек? Как сделать, чтобы при проксировании на Apache работала докачка? Как вообще работает докачка, почему она не работает с nginx в IE 9 и как она работает в других браузерах? Читать далее Выдача файла из PHP через nginx (Accel-Redirect) + докачка + некоторые тонкости