понедельник, 3 августа 2020 г.

HTML5. 10 полезных тегов и атрибутов, которые Вы должны знать!

Структурная разметка HTML5

В HTML5 появилось несколько новых тегов, которые призваны заменить уже прижившиеся блоки div (не все конечно :) ). Внешне, так сказать, ничего не изменилось, но в сущности новые теги несут в себе смысловую (семантическую) нагрузку, и строго определяют для каждого блока его место и роль:
Семантические теги HTML5
  • <header> </header> — Определяет область «шапки» сайта с логотипом, первичной навигацией и тд.;
  • <footer> </footer> — Определяет «подвал», колонтитул веб страницы сайта или раздела, в котом обычно размещается дополнительная информация;
  • <section> </section> — Определяет блок, который служит для группировки однотипных объектов, или для разделения текста на разделы;
  • <article> </article> — Определяет автономную часть страницы, это может быть сообщение форума, журнала или газетную статью, запись в блоге и тд.;
  • <nav> </nav> — Определяет область навигации, как правило список ссылок;

Форма

Новые типы input полей

HTML5 введены новые типы input полей. Они позволяют писать более семантически правильный код, адаптированный для мобильных устройствах. Например при использовании типа email происходит автоматическая валидация введенного текста, на предмет идентичности адресу электронной почты и тд.
<input type="url"> <!-- поле для ввода URL адреса -->
<input type="email"> <!-- поле для ввода адреса электронной почты -->
<input type="color"> <!-- поле для выбора цвета -->
<input type="date"> <!-- поле для выбора даты -->
<input type="datetime"> <!-- поле для выбора даты и времени (с часовым поясом) -->
<input type="datetime-local"> <!-- поле для выбора даты и времени (без часового пояса) -->
<input type="month"> <!-- поле для выбора месяца и года -->
<input type="number"> <!-- поле для ввода числового значения -->
<input type="range"> <!-- бегунок для выбора числа из диапазона -->
<input type="search"> <!-- тип поискового поля -->
<input type="tel"> <!-- поле для ввода номера телефона -->
<input type="time"> <!-- поле для ввода времени -->
<input type="week"> <!-- поле для выбора недели и года -->

Регулярные выражения для валидации

До появления HTML5, при использовании формы на вашем сайте, вы должны были пропускать введенный текст через JavaScript для проверки. Теперь с HTML5 и атрибутом pattern, вы можете определить шаблон регулярного выражения для проверки данных.
<!-- для проверки адресов электронной почты -->
<input type="text" title="электронный адрес" required pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}" />
<!-- для паролей -->
<input type="text" title="по крайней мере восемь символов, содержащих хотя бы одну цифру, один символ нижнего и верхнего регистра" required pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" />
<!-- для проверки телефонного номера -->
<input type="text" required pattern="(\+?\d[- .]*){7,13}" title="интернациональный, национальный или местный номер телефона"/>
HTML5 атрибут pattern

Автозаполнение с HTML5 datalist

Использование dataList элемента HTML5, позволяет создавать список данных для автозаполнения полей ввода. Супер полезно!
<input name="frameworks" list="frameworks" />

<datalist id="frameworks">
   <option value="MooTools">
   <option value="Moobile">
   <option value="Dojo Toolkit">
   <option value="jQuery">
   <option value="YUI">
</datalist>
HTML5 autocomplete

Автофокус полей формы

Атрибут autofocus позволит вам установить фокус на любой элемент формы (в том числе кнопку).
<input type="text" autofocus="autofocus" />

Замещающий текст поля

Это тот самый (серенький) текст который находится к примеру в поле поиска и призывает ввести искомое слово и нажать Enter. В HTML5 замещающий текст реализуется вот-так:
<input type="search" placeholder="Поиск на сайте" />
Замещающий текст поля

Скрытые элементы с помощью HTML5

В HTML5 введен атрибут hidden, который позволяет скрыть определенный элемент, на подобии того как это применяется в CSS с использованием dispaly: none
<p hidden>Здесь находится текст, который скрыт с помощью HTML5!</p>

HTML5 prefetching — предварительная загрузка

С помощью этого механизма можно заранее кэшировать указанный ресурс (картинку, страницу или файл), например сразу подгрузить стили которые будут использованы на сайте:
<link rel="prefetch" href="style_dark.css">

HTML5 <details> и <summary> теги

C помощью этих тегов пользователь может манипулировать отображением (раскрывать и скрывать снова), какой либо дополнительной информации.
<details>
   <summary>Заголовок 1</summary>
      <p>Pellentesque habitant morbi tristique senectus et netus ....</p>
</details>
<details>
   <summary>Заголовок 2</summary>
      <p>Pellentesque habitant morbi tristique senectus et netus et malesuada ...</p>
</details>
Теги Details и Summary
Создаем аккордеон для сайта — http://xozblog.ru/2012/06/accordions/

Атрибут download

В HTML5 появился новый атрибут для ссылок. Теперь чтобы указать браузеру, что ссылку надо загружать, а не открывать достаточно использовать данный атрибут.
<!-- имя в диалоге будет muzika.mp3-->
<a href="sound.mp3" download="muzika">Скачать песню</a>
Чтобы оставаться в курсе свежих статей и уроков следите за нашим блогом или добавляйте в ищбранное. Не забывайте оставлять комментарии к статьям и урокам. Спасибо!

источник - http://xozblog.ru/2013/03/html5-tags-attributes/

среда, 18 декабря 2019 г.

проблемы с кэшем в Битрикс. не кэшируется компонент каталог

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

статистика и отладка показывали долгую загрузку страницы и 0 байт в кэше. композитных хитов не было в модуле скорость сайта.

Поставили в настройках кэширования - memcached

Решение - нужно проверить вручную все файлы настроек в папке 
битрикс - php_interface

Особенно файл - settings.PHP

понедельник, 10 июня 2019 г.

Как узнать версию пакета в Линукс?

Чтобы узнать версию пакета в Линукс нужно ввести в терминале:

apt-cache show package_name


package_name - вместо этого подставьте название пакета, например exim4

Дебиан, Убунту, CentOs

Как узнать версию Линукс дистрибутива?

Чтобы узнать версию дистрибутива Линукс нужно ввести в терминале:

cat /etc/*-release


Дебиан, Убунту, CentOs


среда, 9 января 2019 г.

Как переместить игру Steam на другой диск, самый простой способ

Steam предлагает несколько папок с библиотеками, и вы можете выбрать, где вы хотите установить игры, когда вы их загрузите. И, благодаря недавнему обновлению, вы можете легко перемещать игру после того, как вы ее загрузили, без повторной загрузки всего.
Этот процесс может спасти вас от загрузки десятков или даже сотен гигабайт игровых данных снова и снова, только потому, что вы получили новый SSD и хотите переместить несколько игр. Это отличается от перемещения всей папки библиотеки Steam, в которой находится одна игра-следующий процесс позволит вам переместить только несколько игр, а не всю библиотеку.

How to Move a Steam Game to Another Drive, The Easy Way

Steam offers multiple library folders, and you can choose where you want to install games when you download them. And, thanks to a recent update, you can easily move a game after you’ve downloaded it without re-downloading the entire thing.
This process can save you from downloading tens or even hundreds of gigabytes of game data all over again, just because you got a new SSD and want to move a few games. It’s different from moving an entire Steam library folder, which movesevery single game inside it—the following process will let you move only a few games rather than the whole library.

понедельник, 12 ноября 2018 г.

Что я узнал на личном опыте за годы фриланса






Первоначально опубликовано в /r/freelance на Reddit, но выкладываю здесь для потомков.

Я занимаюсь фрилансом довольно долго и могу поделиться крупицами знаний, которые я услышал или узнал сам, зачастую нелегким путём.

Типичный штатный сотрудник обходится компании в 2-3 раза дороже его номинальной зарплаты


Используй это в качестве основы для расчёта своих тарифов. $90 в час может показаться дорогой альтернативой сотруднику, который получает зарплату $30 в час, но в реальности это эквивалент $90, и расходы прекращаются сразу по окончании проекта.

Если клиент просит 6+ часов в день, ты потратишь 8 часов


Ты не сделаешь ничего полезного (читай: оплачиваемого) в оставшиеся два часа. Они отняли у тебя целый день, но заплатили только за 75%. В таких ситуациях взимай дневную ставку.

Оставляй время для простоя
Выгорание реально, и это отстой. Если сгоришь, то потеряешь недели (даже месяцы) работы, поэтому лучше планировать свободное время. Попробуй включить «ежегодный отпуск» в тарифы.

Ты бизнес, а не работник


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

Необоснованные запросы заслуживают необоснованных ставок


Для меня «срочная», «немедленная», «неотложная» работа сразу добавляет 30% к тарифу с минимальной оплатой двух часов. Если я должен бросить текущий проект, чтобы «срочно» добавить строчку кода на ваш сайт, то вы платите мне минимум за два часа потери производительности и задержку другого проекта. Я считаю, что если это действительно чрезвычайная ситуация, то клиент с радостью заплатит, а если нет, то предпочтёт запланировать задачу, как все остальные.

Установи рабочие часы и придерживайся их


Я работаю довольно нерегулярно в течение дня и вечером, но для клиентов моё рабочее время с 9 до 17, со вторника по пятницу. Любые запросы в нерабочее время означают увеличение ставки на 30%. Обратите внимание, что это складывается с тарифом за срочность (решение чрезвычайной ситуации в полночь обойдётся минимум в два часа с тарифом 160%, даже если займёт у меня 15 минут). Если я сам решу работать в нерабочее время, то буду взимать стандартную ставку, но явные запросы на такую работу ведут к повышению тарифа.

Будь открытым, честным и искренним


Самое худшее для клиента — услышать о проблемах за день до (или после) сдачи. Если у тебя возникли проблемы, заранее поговори с ним и согласуй ожидания. Может та фича, на которой ты застрял, на самом деле не настолько важна, чтобы задержать проект, а может задержка — просто проблемы с общением. В любом случае, всегда лучше поговорить с клиентом раньше, чем позже. Часто они понимают и одобряют небольшую корректировку плана работ.

Голод не означает отчаяние


Не утруждай себя гонкой за контрактами, которые выглядят проблематично. Ты лишь потратишь ценное время на боль и разочарование. Не имеет значения, что у тебя закончились деньги (и они не должны закончиться, если ты выставляешь правильные тарифы, но всё же). Отсутствие клиента лучше, чем плохой клиент, потому что плохой клиент обходится дороже, чем просто ничего не делать.

Если ты не можешь справиться, пусть это сделает другой


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

Твой проект бесконечно важнее для тебя, чем для клиента


Для истинного понимания этого нужно немного погрузиться в тему, но в конечном счёте каждый владелец бизнеса в первую очередь сосредоточен на управлении своим бизнесом в данный момент. Для тебя бизнесом является данный проект, поэтому ты сосредоточен на нём. У клиента же бизнесом является продажа виджетов или бронирование лам, или обучение кальмаров языку жестов. Каким бы ни был его бизнес, ваш проект точно к нему не относится. Вот почему клиенты иногда кажутся незаинтересованными или отвечают лишь через две недели на то, что по-твоему мнению требует срочного внимания. Клиент занят своим бизнесом, а ты — лишь рискованная статья расходов. Единственное, когда проект начнёт волновать клиента больше, чем тебя, это когда клиент станет терять деньги из-за проблем с проектом.

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