Каталог RSS-каналов
Статистика

RSS-каналов в каталоге: 3394

Добавлено сегодня: 0

Добавлено вчера: 0

Hi-Tech / Интернет

RMCreative.ru - Блог

Новости и идеи веб-разработки

Найдено 54 записи

Да, это случилось. Microsoft действительно купил GitHub: Пост GitHub. Пост Microsoft и ещё один. Заявленные планы Microsoft: Интеграция с Azure. Открытость платформы сохранится. GitHub остаётся отдельным проектом. Enterprise-версию будут продавать продажники Microsoft. Nat Friedman будет новым CEO и будет отчитываться перед Microsoft Cloud + AI Group Executive Vice President Scott Guthrie (тот самый, что создал ASP.NET). Chris Wanstrath (со-основатель GitHub) станет technical fellow в Microsoft и также будет в подчинении у Scott Guthrie. По крайней мере на словах всё неплохо. Покупка вполне выгодна Microsoft как в плане пиара, так и в плане продаж Azure. Команду подобрали действительно подходящую. Что из этого получится пока не ясно, но шансы на успех есть....

Довольно интересно сделаны конфиги в Craft CMS. Если вдруг о ней не слышали, это одна из лучших коммерческих на Yii. Выглядят они примерно так: return [ '*' => [ 'omitScriptNameInUrls' => true, ], 'example.test' => [ 'devMode' => true, ], 'example.com' => [ 'cooldownDuration' => 0, ] ); Соответственно, * применяется всегда, а специфичные для окружения уже мёржатся сверху. Имеет право на жизнь и работает предсказуемо. Если вдруг захотите такое в Yii без Craft, сделать довольно несложно: class Config { private $config; private $environment; public function __construct(array $config, $environment = null) { $this->config = $config; $this->environment = $environment; } public static function fromFile($filename, $environment = null) { if (!file_exists($filename))...

То есть описание стратегии и тактических приемов команды. Взяли и выложили на GitHub. Почитать, как устроена другая компания, всегда интересно, но стоит помнить, что применимое в одной компании может быть неприменимо в вашей. К тому же, как бы всё это круто ни звучало, информации на самом деле очень немного. По сути примерно такой объём можно собрать из вакансий и официального сайта практически любой компании. Что же там интересного для разработчика? Рабочие инструменты и железо. Slack, Jira, Trello, Confluence — обычный набор. Несколько удивляет использование Bitbucket, а не git. Интересно, почему так... Ссылка на Avito Tech Radars. А вот это уже занятно. Радар — списки технологий, которые используются или не используются в компании. Иногда с описаниями...

Facebook в очередной раз по-тихому поменял свои API. В этот раз ввели строгий режим соответствия URL для редиректа OAuth. Вылилось это в то, что работавшая ранее авторизация через yii2-authclient отвалилась: "Can't Load URL: The domain of this URL isn't included in the app's domains. To be able to load this URL, add all domains and subdomains of your app to the App Domains field in your app settings. Сообщение об ошибке не соответствует действительности и домены не виноват. Строгий режим означает то, что в URI для редиректа теперь необходимо указывать и GET-параметры. Исправляется просто, если знать, что от нас требуют. Идём в "Settings" -> "Facebook Login". Там в "Valid OAuth Redirect URIs" пишем примерно такой URL...

Да, именно так. Telegram решили заблокировать, но технически не смогли. Решили административно-технически надавить на всех подряд. Сначала Amazon, потом Google. Теперь вот до DigitalOcean добрались. Этот блог и многие мои проекты там, но перевозить принципиально не буду... Ощущение, что был указ блокировать любой ценой. Цена, причём, не такая и маленькая. Тот же Skyeng, где я сейчас работаю, потерял в первый день несколько миллионов. Делают очень больно провайдерам и бизнесу, пытаются добиться от них принципиального согласия выселять неугодные проекты по первому требованию. Если поддадутся — уже через месяц Интернет мы не узнаем. В общем, запасайтесь VPN или socks proxy, сохраняйте маны по shadow socks и DNS туннелям. Пригодится в ближайшее время :(

500-я страница YouTube

Поймал 500-ку на YouTube. Никто не застрахован, конечно, но дело не в этом. Она полезней, чем среднестатистическая страница с ошибкой и вот почему... Что её отличает от типичной страницы ошибки, так это кусок «информации». В продакшн-режиме показать что-либо полезное нельзя (хакерам станет в разы проще), но хочется... порой в логах найти нужную ошибку не просто. Так вот, блок текста на скриншоте — не что иное, как зашифрованная ключом информация. Скорее всего, у YouTube есть внутренний сервис с формой, в которую можно эти данные скопировать и получить расшифрованный полный стектрейс и остальную информацию. Очень умно. На Yii такое можно реализовать немного поправив обработчик ошибок для того, чтобы кодировать информацию при помощи Security::encryptByKey...

Несмотря на то, что в Let's Encrypt, проект раздающий бесплатно краткосрочные SSL-сертификаты, запустился в 2014-м, а в конце 2015-го уже появился certbot, автоматизирующий процесс их получения и продления, я прилично затянул с переводом всех своих проектов на https. Как обычно, "Almost done finishing it...", прямо как с новым сайтом yiiframework.ru. Мешал тот факт, что я ещё и на ОС на серверах подзабил и там была старая Ubuntu, поддержка которой давно закончилось. Но, руки всё-таки дошли. Хром начал совсем плохо ругаться на сайты без сертификата. Сегодня ночью засел. Пришлось обновить Ubuntu на две версии, что заняло какое-то время. Сама настройка certbot отточена до идеала и прошла очень быстро и безболезненно. Он сам даже конфиги nginx поправил. Делал...

Мне не очень нравятся инструменты с очень высоким порогом вхождения. Не потому, что я сам не могу с ними работать (могу), а потому как на какие-то мелочи команда тратит непомерно много времени. Я был наслышан про security bundle и то, как его не осиливают разработчики, но это было давно. За последние пару лет вышел Symfony 4, который представлялся как мега-простой и супер-быстрый, да и в самом security вроде изменений было много на тему упрощения. Но нет, оказывается, сильно лучше не стало. Задачка — закрыть URL на простую basic-аутентификацию с фиксированным логином-паролем. Никаких пользователей в проекте нет. Куда может быть проще? Начинаем искать, но попадаются только описания, как это сделать когда пользователи всё-таки есть плюс принятый ответ на...

27 января я побывал в Кемерово. Рассказал про безопасность на первом митапе RoboPHP. В общем всё прошло отлично. Совершенно без накладок добрался туда и обратно. Организаторы поселили в прекрасном отеле Томь, перемещали докладчиков в нужные места (что очень кстати, потому как зимой в Кемерово чрезвычайно холодно) и накормили вкусным ужином. Доклад Дениса Колесникова из Avito про Elm оказался неплохим обзором того, что вас ждёт при использовании функционального программирования. Так как ФП на практике применяется редко, очень хорошо, что Денис не вдавался в тонкости. Вопросов было не очень много, но, думаю, кругозор слушателей расширился. Денис Юрьев из Робофинанс рассказал про рефакторинг. Вышло довольно скомкано, но, в принципе, тоже полезно. По крайней...

Из комментариев к свежему посту на хабре: А на мой взгляд, пора уже этику хакерства дополнить требованием к владельцам сайтов: если на сайте не выложен контакт для связи по вопросам обнаруженных уязвимостей и гарантия отсутствия преследования при условии сообщения об уязвимости данному контакту за X дней до публичной публикации — значит владелец предпочитает об уязвимостях узнавать из СМИ. https://habrahabr.ru/post/347760/#comment_10641022 «Владелец предпочитает об уязвимостях узнавать из СМИ» — это, скорее надо читать как «не знать» потому как нашедший уязвимость просто не станет подставляться, но считаю, что завести такую страницу — хорошая идея. Да, проблема актуальна не только для РФ. Практически во всех странах исследование безопасности очень тонко...

27 Января с 12:00 в Кемерово по адресу пр. Октябрьский 2б (БЦ «Маяк»), состоится RoboPHP. Будет три докладчика: Денис Колесников из Avito (про Elm), Денис Юрьев из Робофинанс (про рефакторинг) и я. Я расскажу про безопасность. Будет похоже на то, что я рассказывал в 2016, но, конечно, с изменениями и с немного другой подачей. Вход бесплатный, регистрация обязательна

Неожиданный подарок сделал DigitalOcean. А именно, за 5$ теперь дают не 512 мегабайт, как раньше, а в два раза больше — гигабайт. Старые дроплеты можно отресайзить (5 минут даунтайма), что я и сделал со своими. Теперь этот блог и другие мои проекты будут работать несколько быстрее. Если вдруг захотите хоститься у DigitalOcean, регистрируйтесь по специальной ссылке. Вам дадут 10$ в подарок, а мне немного бесплатного периода.

Новый год стремительно приближается. Пора традиционно подвести итоги. Блог Блога стало два. Завёл, наконец, англоязычную версию. Самое интересное из написанного: Зло ли трейты. О видах плохого кода. Про работу и баланс. Moving Constants into Dictionaries. SMS Security. Yii Так и не запустили новый сайт :( 1.1.18, 1.1.19 — да, мы всё ещё заботимся о безопасности и совместимости с PHP 7 для старых проектов. 2.0.11, 2.0.12, 2.0.13. Релизы практически всех официальных расширений. Анонсировали фич-фриз ветки 2.0, будем работать в следующем году над 2.1 плотно. Дожали расширение для очередей. Одно из самых значимых событий в Yii. Спасибо Роману Журавлеву и всем, кто принимал участие, как в этой версии, так и в многочисленных прототипах и брейнштормах. Про PSR-3 и...

На днях обновился Chrome и начал редиректить мои локальные домены типа myproject.dev на https://. Оказывается, гугл купил .dev и теперь это валидный домен первого уровня. .local я перестал использовать уже давно потому как он зарезервирован в устройствах Apple и роутится там неожиданно. Остаётся .test. Тем более, он зарезервирован IETF также, как, например, домен для примеров, example.com.

Релизнули наработки по Yii за довольно долгое время. Долго не релизили потому как сразу затянули очень много в master и не очень просто было всё это вычистить и стабилизировать. В следующий раз попробуем быть осторожней. Релиз вышел добротным. Анонс на хабре На очереди новый сайт. Там тоже хотели сделать крутой серверный стек, но пришло осознание, что это затянулось уже очень сильно. Сделаем проще и быстрее.