Search
Write a publication
Pull to refresh
Ворч Ун @sav1812read⁠-⁠only

Разработчик

Send message

Давайте уже разберемся в DNS

Reading time8 min
Views453K

image
Внимательный читатель найдет на этой картинке IPv6


Люди часто озадачены доменами. Почему мой сайт не работает? Почему эта хрень поломана, ничего не помогает, я просто хочу, чтобы это работало! Обычно, вопрошающий или не знает про DNS, или не понимает фундаментальных идей. Для многих DNS — страшная и непонятная штука. Эта статья — попытка развеять такой страх. DNS — это просто, если понять несколько базовых концепций.


Что такое DNS


DNS расшифровывается как Domain Name System. Это глобальное распределенное хранилище ключей и значений. Сервера по всему миру могут предоставить вам значение по ключу, а если им неизвестен ключ, то они попросят помощи у другого сервера.


Вот и все. Правда. Вы или ваш браузер запрашивает значение для ключа www.example.com, и получает в ответ 1.2.3.4.

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

Ценность многошрифтового дизайна

Reading time15 min
Views19K


Я заметила, что одна из особенностей моего дизайнерского стиля — это готовность использовать, на первый взгляд, слишком большое количество разных гарнитур шрифтов. Я видела неисчислимое множество статей о сочетаниях и системах использования шрифтов, и почти везде рекомендуется использовать меньше шрифтов в любом дизайне. Я и к своей работе получала такие комментарии – дескать, работы приятные, несмотря на количество используемых шрифтов.
«Очень нравится сайт, потому что он не боится нарушать одно из первых правил шрифта – не использовать слишком много разных гарнитур. Используется четыре шрифта, два из семейства sans-serif и два из serif — Galaxie Copernicus, Interstate, Harriet и Nimbus Sans. Основной момент такого дизайна – последовательность, и сайт Бетани Хек последовательно использует каждый из шрифтов для своей цели.»
— Джеремия Шоаф, Typewolf


Расцениваю это, как вызов. Спасибо, Джеремия!

Хочу поспорить и рассказать о ценности эклектичных систем, и о том, как создать структуру проекта, чтобы эффективно использовать совместно несколько шрифтов.



Так почему же у нас есть правила насчёт количества используемых гарнитур?
Реально много больших картинок.

«Чо те в имени моем?» или как спалиться, делая все правильно

Reading time3 min
Views7.5K


В фейсбучке у приятеля разгорелась волшебная дискуссия. Он процитировал какого-то своего регионального френда, что к нему пришла боевая бумажка от владельца торговой марки «Муж на час». Мол либо убирайте нафиг с сайта и рекламы сие выражение, либо приходите договариваться, мы не жадные, много не возьмем.

А, если вы попробуете погуглить, то таких клиентов у вовремя подсуетившегося хитреца — прямо море. И по судам у него отличные шансы понагибать здоровенную кучу народа. А «муж на час» — это прямо мегаустоявшееся клише, отказаться от него будет сложновато.
Читать дальше →

Договор Делимобиля. Абстрагируемся и разделим

Reading time6 min
Views19K


По Делимобилю уже славно потоптались все кому не лень. Особо наивные граждане даже восхитились тем, что компания предложила ограничить ответственность фиксированной суммой. Пока историй с разборками по новым правилам не было, что там будет получаться в итоге — не вполне понятно. Но надо понимать, что договор-то никуда не делся. А значит смотреть и читать его стоит внимательно, что, собственно, все вокруг и говорят. Мол, читайте договор и потом не удивляйтесь. ОК. Давайте читать. Инструкция по чтению такая: я буду писать по-русски, но в скобках давать более точные формулировки. Если вам жалко мозг — скобки не читайте :-)

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

Запомним это важное словосочетание «Договор Присоединения». Это довольно сильный козырь.
Читать дальше →

Панорамы: быстро или качественно? И то и другое!

Reading time7 min
Views29K

Всем привет!


Статья будет для любителей фотопанорам. Поснимать и посклеивать панорамы — это мое хобби, занятие непыльное, увлекательное и что немаловажно — с эффектным результатом. Я имею ввиду что когда я демонстрирую готовые панорамы своим знакомым (неспециалистам) то равнодушных не остается.
Читать дальше →

Безопасная авторизация с PHPixie 3

Reading time6 min
Views9.2K
image
Сегодня вышел самый долгожданный компонент PHPixie 3 — Auth для авторизации пользователей. Авторизация это наиболее критическая часть любого приложения, сделать ее правильно трудно, а ошибки могут скомпрометировать множество пользователей, особенно если речь идет об оупенсорсе. Использование устарелых hash-функций, криптографически небезопасных генераторов случайных чисел, неправильная работа с кукисами встречаются слишком часто. Я уже когда-то писал о старой уязвимости в Laravel, которую кстати полностью так не исправили. Поэтому в PHPixie Auth я очень внимательно отнёсся к аутентификации, особенно к долгим сессиям и кукисам.

Кстати в конце статьи у меня для вас есть очень радостная новость (спойлер: PHPixie теперь член PHP-FIG)
Читать дальше →

HybridAuth — интеграция сайта с социальными сетями

Reading time7 min
Views38K

Введение


На своем сайте на php для авторизации пользователей я в последнее время пользовался сервисом Loginza. Все было очень круто и удобно, но в голове начала зарождаться идея отказа от этого замечательного сервиса и вот почему:

  1. Авторизация пользователей в случае закрытия Loginza или отказа от нее — в этом случае мы потеряем пользователей, в привязанных профилях которых не указан email;
  2. Дополнительная информация, например, ВКонтакте умеет отдавать фото пользователя в нескольких видах, в том числе квадратный аватар. С Логинзой получить эти данные не представляется возможным, сервис сам решает какие данные запрашивать и какие отдавать;
  3. С момента продажи Яндексу Логинза начала умирать: на запросы пользователей никто не отвечает, сервис не развивается, а находится в том виде, в котором был 1-2 года назад.

Встал вопрос замены и использовать альтернативные сервисы желания уже не возникало — никто не представлял возможности «общаться» с соц. сетью напрямую, а расширенные поля профиля обычно включались в платные услуги. Хотелось автономного решения с возможностью гибкой настройки запрашиваемых полей и в итоге я остановился на php библиотеке HybridAuth.
Подробнее о HybridAuth

PHPixie Social — простая интеграция с соцсетями

Reading time3 min
Views8.6K
image
Авторизация через соцсети это одна из самих частых задач с которыми сталкиваются разработчики развлекательных сайтов. Казалось бы там и делать нечего, ведь для каждого API существует PHP библиотека от самого вендора. Но что делать если надо подключить сразу несколько? Не хочется тянуть в проект кучу библиотек которые имплементируют один и тот же протокол OAuth, к тому же хотелось бы иметь какой-то единый интерфейс. PHPixie Social — маленькая библиотека с только одной зависимостью, которая позволяет легко работать сразу с Facebook, Twitter, Google и Вконтакте, а если вы используете PHPixie фреймворк то также сразу получаете авторизацию всего в несколько строчек кода.
Но сначала рассмотрим компонент сам по себе.

Демо проекта в конце

Веб-браузер Mozilla Firefox 48 beta получил возможность разделения процессов

Reading time2 min
Views15K
Авторы веб-браузера Mozilla Firefox выпустили в бету 48-ю версию веб-браузера (Windows), в которой пользователей ожидает важная особенность. Веб-браузер наконец-то получил возможность разделения процессов по умолчанию. Такое событие является весьма существенным для пользователей Firefox, поскольку, ранее веб-браузер выполнял всю свою работу в одном процессе. На этом фоне он выглядел довольно бледно по сравнению со своими конкурентами MS Edge, Google Chrome, а также MS IE11. Кроме этого, отсутствие данной функции ограничивало возможности создания полноценного sandbox, а также сказывалось на стабильности работы.



Правда, пока речь не идет о разделении процесс-на-вкладку, а подразумевается разделение работы веб-браузера на основе двух процессов. Первый отвечает за работу с пользовательским интерфейсом GUI, а второй за воспроизведение содержимого вкладок. Проект по разделению вкладок в Firefox называется Electrolysis (e10s), в документации к нему описаны особенности нового режима работы веб-браузера. Согласно изданию Ars Technica, Firefox может получить полное разделение процессов вкладок позднее в этом году.

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

Подготовка произвольного LTE модема для работы с сим-картой для модема Yota на примере Huawei E3272

Reading time3 min
Views150K
Главным мотиватором для создания этой статьи послужило то, что чтобы восстановить тот небольшой набор шагов, что будет приведен чуть ниже, я потратил много часов, пообщался с двумя представителями Йоты и перелопатил миллион форумов, блогов и подобных ресурсов (в т.ч. достаточно бесполезный пост на хабре по моему модему). Надеюсь, текст ниже сэкономит кому-то силы и время.

image


Сразу к главному. Несмотря на то, что в интернетах пишут, что всё должно работать само собой и сразу, для того, чтобы ваша сим-карта от модема (а не планшета и смартфона, там другая история!) йоты заработала внутри произвольного модема, вам надо проделать следующее:
  1. Разлочить модем, если он привязан к оператору (перепрошивка не требуется!).
  2. Вставить симку и добиться того, что б он подключился к базовой станции и зарегистрировался в сети Йота.
    • Для этого необходимо убедиться, что есть покрытие LTE от йоты (3G не подходит!), вот карта покрытия, но реальное покрытие больше, надо проверять на местности;
    • убедиться, что модем работает на йотовских частотах LTE: band-7;
    • и перевести модем в режим 4G.

  3. Установить соединение, используя правильные параметры.


Теперь по порядку.

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

Сущность фотографии: умение видеть и творить

Reading time8 min
Views33K
Здравствуйте, дорогие читатели!

Если кто-то пока не заметил, напоминаем: у нас вышла роскошная книга легендарного американского фотографа Брюса Бэрнбаума "Сущность фотографии: умение видеть и творить"



Под катом — перевод вдумчивой и слегка многословной статьи господина Бэрнбаума о секретах фотографического творчества. Мы бы сказали, тизер к книге.

Всем приятного чтения
Читать дальше →

Релиз CleverStyle Framework 4

Reading time6 min
Views6.6K
Как-то не получалось писать более одной статьи от начала новой ветки (часть 1, часть 2, часть 3), но вот опять есть чего интересного рассказать, ведь вышел первый релиз серии 4.х.

Вкратце обо всём


Первое что хотелось бы сказать — проект был переименован из CleverStyle CMS в CleverStyle Framework. Наконец-то! Больше не будет путаницы между названием и содержимым.

Если серия 2.х началась с существенных изменений на стороне сервера, а 3.х с сопоставимых изменений на клиенте, то 4.х приносит улучшения везде.

На сервере существенно увеличена скорость работы, при том что это full-stack фреймворк, используя HTTP сервер основанный на ReactPHP можно получить скорость генерации страницы НИЖЕ 1мс, быстрее стала генерация HTML в типичных сценариях.
Так же добавилась удобная поддержка вложенных структур в файлах переводов, добавилась поддержка SQLite, PostgreSQL, поддержка работы в качестве PSR7 Middleware (инициализация из PSR7-совместимого request объекта и выдача результата в PSR7-совместимый response объект) и связанные с этим удобные абстракции в самом ядре.

На фронтенде повсеместно используется RequireJS, ряд библиотек, безусловно загружающихся на фронтенде, теперь загружаются только когда непосредственно нужно, добавлены оптимизации для быстрой отрисовки первого кадра (first paint).

На стыке backend и frontend оптимизации построения кэша статики (CSS/JS/HTML), HTTP/2 Server push, Link: <preload> и много другого.

В целом система выглядит как хороший гибридный (не чисто микроядерный, но и не жирный такой) full-stack php фреймворк.

Как всегда, не обошлось без улучшения метрик кода, например, оценки Scrutinizer:)
Читать дальше →

Руководство по PHP7

Reading time16 min
Views73K

php7-tutorial.com


Цель этого сайта помочь вам обнаружить нововведения в PHP 7. Это руководство представляет из себя набор простых упражнений, в которых вам будет предложено что-либо решить, либо исправить ошибку. Каждое упражнение соответствует стандарту RFC (набор технической спецификации и стандартов) и сопровождается кратким пояснениями.

От переводчика


Всем привет, с вами Максим Иванов, и сегодня мы поговорим о нововведениях PHP 7, о которых более подробно поведает нам Гийом Девар (Guillaume Dievart) в своем руководстве, сделанном в форме упражнений. Но прежде чем начинать, я хочу отметить один момент. Я не буду приводить полное руководство по данному языку программирования в этом обзоре, просто оставлю здесь ссылку на самую свежую и достоверную информацию. Джош Локхарт (автор гайдлайна «PHP: правильный путь», разработчик Slim Framework), написал данную книгу с целью помочь новичкам, по его словам: «В последнее время существует много дискуссий о том, что PHP сообществу и, в целом, программистам не хватает достоверной информации по языку PHP, поэтому мое руководство призвано решить эту проблему». Чем именно? Вы знаете, что по интернету разбросано огромное количество материла по PHP, но многое уже устарело или не приводит к написанию качественного кода. В этой книге присутствуют основные актуальные сведения с ссылками на проверенные ресурсы. Если кому интересно, такое есть и по JavaScript. А теперь вернемся к упражнениям и приступим.
Читать дальше →

Создание арканоида на чистом JavaScript с нуля. CANVAS

Reading time1 min
Views21K
Началось все с небольших уроков на тему того, как сделать игровой цикл, как организовать отрисовку, как заставить работать клавиатуру и т.д. И на фоне этих небольших уроков пришла мысль сделать полноценную (почти) игру, так же, с нуля.
Желание воплотилось в виде 7 уроков, которые я бы и хотел представить ниже.
Читать дальше →

Готовим простой блог на микросервисах, пишем свой микрофреймворк на php и запускаем все на Docker с примерами

Reading time9 min
Views81K

А что если я скажу вам, что новый продукт можно сразу начинать писать на микросервисной архитектуре, а не заниматься распилом монолита? Это вообще нормально? Удобно? Хотите узнать ответ?


Задача: необходимо написать за выходные (время ограниченно 10-15 часами) сферический блог на микросервисах, на php, не используя никаких фреймворков. Можно пользоваться здравым смыслом. А еще забудем о том что такое фронтенд и вспомним что мы жить не можем без виртуализации. Выберем Docker. Интересно? Вперед под кат.


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

Гипоксия: почему жир полезнее кислородных коктейлей

Reading time5 min
Views89K
Привет всем в блоге компании Тион! Мы разрабатываем системы умного микроклимата, вентиляции и очистки воздуха. Один из наших врагов – духота. Из-за нее не получается нормально спать, учиться, работать. Усталость, апатия, невнимательность – все это симптомы нехватки кислорода.

Слово «гипоксия» на слуху. Но у многих в голове полная неразбериха по поводу кислородного голодания, его профилактики и лечения. Например, люди верят в пользу кислородных коктейлей, хотя оказывается, что намного больше пользы от жирной пищи.



Разберем по косточкам эти и другие популярные мифы и факты о гипоксии.
Поехали!

Фрилансер и предприниматель

Reading time3 min
Views26K

К какой категории вы себя относите? Вы уверены?


image
Лучший способ измениться в лучшую сторону состоит в том, чтобы определить — кем же вы хотите стать

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

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

Цель фрилансера состоит в том, чтобы иметь постоянную работу без начальника, чтобы работы было много, чтобы спрос постепенно рос и, соответственно, росла почасовая зарплата, как и качество заказов.
Читать дальше →

Инерциальные датчики: рецепты приготовления для систем позиционирования

Reading time5 min
Views22K

В этой заметке мы поговорим об инерциальных датчиках. О том, что они измеряют и о том, как эти физические величины можно использовать.


Большинство современных мобильных телефонов имеют на борту триады акселерометров, гироскопов и магнитометров, часто в дополнение к ним ставится и датчик атмосферного давления.


С последним датчиком все предельно ясно: почти у каждого из нас дома или на даче висит барометр и миллиметры его ртутного столба прочно связаны с дождем, непогодой и общим самочувствием любимой бабушки. А вот что измеряют акселерометр, гироскоп и магнитометр, и как использовать эту информацию для определения ориентации устройства в пространстве?

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

Asus автоматически обновляет BIOS/UEFI по HTTP без верификации

Reading time5 min
Views41K


Asus снова взялся за старое. Вы можете отправить любой исполняемый файл или даже прошивку BIOS на компьютер Asus под видом обновления — этот файл будет автоматически запущен на исполнение с максимальными привилегиями, а прошивка установлена, без каких-либо проверок. Ничего не нужно предпринимать — система взломает сама себя, автоматически.

Вкратце: компьютеры с материнскими платами Asus осуществляют запросы к удалённому серверу по HTTP на регулярной основе. Причиной является программное обеспечение LiveUpdate, которое предустанавливается на компьютеры Asus. Оно отвечает за скачивание новых прошивок BIOS/UEFI и исполняемых файлов. Обновления поступают в архивах ZIP по чистому HTTP, распаковываются во временную папку, а исполняемый файл запускается от имени пользователя. Не происходит никакой верификации файлов или аутентификации при их загрузке, что позволяет провести MiTM-атаку и банальную эскалацию привилегий до NT AUTHORITY\SYSTEM.
Читать дальше →

Неприступный почтовый сервер, или жизнь без спама

Reading time11 min
Views201K
Борьба со спамом — это головная боль всех ответственных администраторов почты. Чего только они не изобретают, чтобы любимым пользователям лучше жилось. Однако, как показала практика общения со многими системными администраторами, почему-то далеко не все представляют как правильно фильтровать спам.

Чаще всего встречается подход «добавим кучу RBL (DNSBL) и будем радоваться жизни». Подход не верный чуть более, чем полностью. Второй по популярности — контент-фильтры, зачастую купленные за бешеные деньги. Такой подход тоже в большинстве случаев совершенно неоправдан.

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

Кстати: эта статья конечно ориентирована в первую очередь на администраторов, желающих сделать качественный фильтр спама. Однако с другой стороны она содержит очень важные сведения для тех, кому приходится просто работать с почтой, но кто плохо разбирается во всех тонкостях процесса электронной пересылки корреспонденции.

Итак, если вы хотите обезопасить своих пользователей от спама или наоборот, хотите чтобы кто-то случайно не обезопасил пользователей от ваших писем — добро пожаловать под кат.

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

Information

Rating
Does not participate
Location
Россия
Registered
Activity