Что еще можно творить с rest-spread. Небольшая зарисовка идей
https://medium.com/@frontman/2950d4a7e4b
https://medium.com/@frontman/2950d4a7e4b
Medium
Юзкейсы rest-spread операторов #2
Полезные трюки
Всем привет! Как вы знаете (а если еще не знаете, то знайте), что 27 и 28 мая в Москве пройдет РИТ++ 2019 (https://ritfest.ru/) – профессиональный фестиваль для тех, кто делает Интернет. РИТ - это целый ряд профессиональных узкотематических конференций: системное администрирование и эксплуатация, высоконагруженные системы и базы данных, серверное программирование, управление проектами и предпринимательство, качественная разработка IT-продуктов, а также фронтенд-разработка.
Мы решили расширить аудиторию фестиваля "Российские интернет-технологии" и предлагаем две новые возможности для участия:
Если вы студент, аспирант или преподаватель ВУЗа, то вы можете воспользоваться скидкой в 75% от стоимости билета - используйте скидочный код Academic{prowebit} при заказе билетов на сайте конференции. Имейте в виду, что при регистрации мы попросим вас показать любой документ, удостоверяющий ваш статус."
Если вы частное лицо и нет компании, которая компенсировала бы вам билет, то вы можете воспользоваться скидкой в 50% - используйте скидочный код Personal{prowebit}.
В обоих случаях оплата возможна только как оплата от частного лица через Яндекс.Кассу и вы можете заказать билет только для себя. Впрочем вы можете передать скидочный код вашему сокурснику или другу и он может сделать то же самое.
И да, билет позволяет посещать все секции, так что вы можете побывать на докладах начиная с девопс и хайлоад и заканчивая фронтендом и управлением.
Я уже не первый год в составе программного комитета FC и мы с каждым годом повышаем планку качества и интересность докладов. Поэтому я лично могу говорить за секцию Frontend - это будет супер. Взгляните на программу https://ritfest.ru/2019/abstracts/ , если еще сомневаетесь.
До встречи на конференции!
Мы решили расширить аудиторию фестиваля "Российские интернет-технологии" и предлагаем две новые возможности для участия:
Если вы студент, аспирант или преподаватель ВУЗа, то вы можете воспользоваться скидкой в 75% от стоимости билета - используйте скидочный код Academic{prowebit} при заказе билетов на сайте конференции. Имейте в виду, что при регистрации мы попросим вас показать любой документ, удостоверяющий ваш статус."
Если вы частное лицо и нет компании, которая компенсировала бы вам билет, то вы можете воспользоваться скидкой в 50% - используйте скидочный код Personal{prowebit}.
В обоих случаях оплата возможна только как оплата от частного лица через Яндекс.Кассу и вы можете заказать билет только для себя. Впрочем вы можете передать скидочный код вашему сокурснику или другу и он может сделать то же самое.
И да, билет позволяет посещать все секции, так что вы можете побывать на докладах начиная с девопс и хайлоад и заканчивая фронтендом и управлением.
Я уже не первый год в составе программного комитета FC и мы с каждым годом повышаем планку качества и интересность докладов. Поэтому я лично могу говорить за секцию Frontend - это будет супер. Взгляните на программу https://ritfest.ru/2019/abstracts/ , если еще сомневаетесь.
До встречи на конференции!
#Зарисовки буденй
Посчитать количество уникальных расширений из поддиректорий на bash
Если вдруг есть такая задачка, то она так же как и в JS решается 100500 способами, но я для себя выбрал один, который использую:
Посчитать количество уникальных расширений из поддиректорий на bash
Если вдруг есть такая задачка, то она так же как и в JS решается 100500 способами, но я для себя выбрал один, который использую:
$> ls -1 storage/**/*.* | cut -d"." -f2- | sort | uniq -c
2065 doc
2305 docx
10030 pdf
740 rtf
108 txt
Array.flat polyfill
С недавних пор в JS есть метод flat. Может быть очень полезен, например, при рекурсивных/вложенных обработках. Например нужно прочитать файлы из поддиректорий директорий, отсеить по условиям и вернуть 1 плоский массив полных путей. Но, если вы используете LTS версию Node.js то этого метода там еще нет. И тут по сути решение задачи, которое так же можно встретить на собеседованиях:
Заполифилить метод flat для массива.
Решение (одно из, без объяснений, вроде бы и так все понятно) :
С недавних пор в JS есть метод flat. Может быть очень полезен, например, при рекурсивных/вложенных обработках. Например нужно прочитать файлы из поддиректорий директорий, отсеить по условиям и вернуть 1 плоский массив полных путей. Но, если вы используете LTS версию Node.js то этого метода там еще нет. И тут по сути решение задачи, которое так же можно встретить на собеседованиях:
Заполифилить метод flat для массива.
Решение (одно из, без объяснений, вроде бы и так все понятно) :
if (!Array.prototype.flat) Array.prototype.flat = function () {
return (function f(arr) {
return arr.reduce(
(a, v) =>
Array.isArray(v)
? a.concat(f(v))
: a.concat( v )
, []
)
})(this)
};
// Usage
[1,2,3,[1,2,3,4, [2,3,4]]].flat()
// [1, 2, 3, 1, 2, 3, 4, 2, 3, 4]@rdvornov увидел пост выше и сделал врные замечания, что данный полфили можно упростить и он не соответствует спецификации. Так что сделал UPD c пояснениями и примерами от Романа: https://medium.com/@frontman/399c2cc7c653 🙂
Medium
Array.prototype.flat polyfill
Полифилим правильно
Кманда из New.HR в гостях у HTMLAcademy в онлайн трансляции: «Как найти работу, если ты джуниор»
https://htmlacademy.ru/events/ha-meetup-5
https://htmlacademy.ru/events/ha-meetup-5
HTML Academy
На митап! #5 Как найти работу фронтенд-разработчиком, если ты джуниор
Поговорили про трудоустройство c основательницей New.HR Кирой Кузьменко и Екатериной Ермолаевой — руководителем практики найма разработчиков.
А для тех, кто готовится на собеседование по фронтенду, а так же тем, кто хочет проверить свои знания по JS и лишний раз разобраться в «магии JS», рекомендую пройти эот лист с вопросами: https://github.com/lydiahallie/javanoscript-questions
GitHub
GitHub - lydiahallie/javanoscript-questions: A long list of (advanced) JavaScript questions, and their explanations
A long list of (advanced) JavaScript questions, and their explanations :sparkles: - GitHub - lydiahallie/javanoscript-questions: A long list of (advanced) JavaScript questions, and their explanations
Наткнулся на большой сборник вопросов с собеседований по разным технологиям и ЯП.
Можно как для себя поизучать, если готовитесь куда-то идти на интервью. А можно использовать как источник вдохновения для того, чтобы составить свои вопросы к собеседованию, если есть сложности с креативом и не знаете с чего начать 🙂
https://github.com/MaximAbramchuck/awesome-interview-questions
Можно как для себя поизучать, если готовитесь куда-то идти на интервью. А можно использовать как источник вдохновения для того, чтобы составить свои вопросы к собеседованию, если есть сложности с креативом и не знаете с чего начать 🙂
https://github.com/MaximAbramchuck/awesome-interview-questions
Не мог пройти мимо https://habr.com/ru/post/456344/, немного бомбануло 🙂
А подгорает от того, что в 2019 такие статьи уже в переводе публикуются на хабре (в переводе, Карл!), но при этом они набирают 100+ лайков. Это как вообще? Эти задачи изъезжены на собеседованиях сотнями тысяч раз. Это баянистые баяны которым сто лет в обед.
Годы проходят, а всем проще ругать JS , чем разобраться как он работает. Эту задачу заездили на собеседованиях и в статьях и я удивлен что ее в 2019 году кто-то решается опубликовать и искренне удивляться: да ладно, вы видели это? JS плохой, ай ой ёй!
Напомню, что знание хотя бы 3х правил уже убивает всю магию
https://medium.com/@frontman/9d6f1845ea96
и в догонку https://medium.com/@frontman/431726e72d38
А подгорает от того, что в 2019 такие статьи уже в переводе публикуются на хабре (в переводе, Карл!), но при этом они набирают 100+ лайков. Это как вообще? Эти задачи изъезжены на собеседованиях сотнями тысяч раз. Это баянистые баяны которым сто лет в обед.
Годы проходят, а всем проще ругать JS , чем разобраться как он работает. Эту задачу заездили на собеседованиях и в статьях и я удивлен что ее в 2019 году кто-то решается опубликовать и искренне удивляться: да ладно, вы видели это? JS плохой, ай ой ёй!
Напомню, что знание хотя бы 3х правил уже убивает всю магию
https://medium.com/@frontman/9d6f1845ea96
и в догонку https://medium.com/@frontman/431726e72d38
Я очень люблю контесты, особенно на тему AI. Всем интересующимся: не пропустите запуск 4го Mini AI Cup https://is.gd/9MKaVx
Что мне нравится в этом AI Cup - это список поддерживаемых языков, среди которых: Kotlin, Go, Python 3.6, PHP7, Node JS, Rust… Ну те раздолье полное (я молчу про классику в виде Java и C++).
18 июля в 19:00 стартует новый контест с новой игрой
Что мне нравится в этом AI Cup - это список поддерживаемых языков, среди которых: Kotlin, Go, Python 3.6, PHP7, Node JS, Rust… Ну те раздолье полное (я молчу про классику в виде Java и C++).
18 июля в 19:00 стартует новый контест с новой игрой
aicups.ru
Новая игра и контест Mini AI Cup #4
Всем привет!
Большинство из нас, специалистов в IT сфере, любит играть в игры — карточные, настольные, компьютерные и другие. Зачастую бывает, что игры пользы никакой не приносят, а хотело...
Большинство из нас, специалистов в IT сфере, любит играть в игры — карточные, настольные, компьютерные и другие. Зачастую бывает, что игры пользы никакой не приносят, а хотело...
Если вы можете с ходу ответить чему будут равны результаты этих примеров, то можете пропустить этот мессадж. Для остальных небольшая заметка про тернарный оператор:
https://medium.com/@frontman/2d912b7712b8
<?php declare(strict_types=1);
var_dump( true ? true : 1 ? 1 : 'false' ); // =?
var_dump( true ?: 1 ?: 'false' ); // =?
https://medium.com/@frontman/2d912b7712b8
Medium
Тернарный оператор в PHP
Шпаргалка
Мы очень любим истории, когда внутренний заказчик не спихивает ответственность за найм на рекрутера, а подключается как полноценный owner задачи и системно работает над HR брендом. Когда он вместе с рекрутером прорабатывает сложные возражения кандидатов и работает над созданием честного и конкурентного предложения. Такой подход, по нашему опыту, всегда приводит к нужному результату, даже на отечественном высококонкурентном рынке.
Мы коллекционируем таких руководителей, как редких и удивительных. Если знаете таких, напишите о них в личку или в комментарии, пожалуйста? Мы хотим сделать серию подкастов на тему "Нанимающий менеджер как owner рекрутинговой задачи" !
Это первое интервью из этой серии. Мы поговорили с Романом Ивлиевым, CTO проекта Mos.Ru, про особенности найма в окологосударственный проект. Как упаковывать проект, со всеми его особенностями. Как работать со страхами кандидатов.
Мы коллекционируем таких руководителей, как редких и удивительных. Если знаете таких, напишите о них в личку или в комментарии, пожалуйста? Мы хотим сделать серию подкастов на тему "Нанимающий менеджер как owner рекрутинговой задачи" !
Это первое интервью из этой серии. Мы поговорили с Романом Ивлиевым, CTO проекта Mos.Ru, про особенности найма в окологосударственный проект. Как упаковывать проект, со всеми его особенностями. Как работать со страхами кандидатов.
Как нанимать разработчиков в окологосударственный проект?
Роман Ивлев
В гостях Роман Ивлиев, CTO проекта Mos.Ru
Коллеги, приветствую! Мы в New.HR совместно с «Нормальные исследования» в июле запустили масштабное исследование, куда планируется привлечь 10 000 респондентов — разработчиков.
Мы уделили внимание не только заработной плате, но и вопросам мотивации и вовлеченности. Мы хотим посмотреть, какие языки программирования и технологии считаются наиболее перспективными и почему, а так же, получить данные о том, как много руководителей, которые продолжают писать код и отвечать за команду.
Все это мы разбили по языкам, фреймворкам, библиотекам, сферам компаний и технологиям.
Сейчас нам важно привлечение респондентов. И вы можете с этим помочь. Пройдя исследование сами и отправив своим коллегам, друзьям и знакомым, ссылку на подробности о нем: https://new.hr/3hk9
Для респондентов, принявших участие в опросе, есть бонусы. Все подробности по ссылке https://new.hr/3hk9
Мы уделили внимание не только заработной плате, но и вопросам мотивации и вовлеченности. Мы хотим посмотреть, какие языки программирования и технологии считаются наиболее перспективными и почему, а так же, получить данные о том, как много руководителей, которые продолжают писать код и отвечать за команду.
Все это мы разбили по языкам, фреймворкам, библиотекам, сферам компаний и технологиям.
Сейчас нам важно привлечение респондентов. И вы можете с этим помочь. Пройдя исследование сами и отправив своим коллегам, друзьям и знакомым, ссылку на подробности о нем: https://new.hr/3hk9
Для респондентов, принявших участие в опросе, есть бонусы. Все подробности по ссылке https://new.hr/3hk9
Нашел в сети гениальный рассказ: Фулл-стек матрос. Автор Dmitriy Kiriyenko. Текст на столько гениален, что захотелось перепостить:
Фулл-стек матрос.
— Почему вы хотите работать палубным матросом именно на "Мести рекрутера Веры"?
Я вытянулся в струнку и заученно (в каждом порту работодатель обязательно задаёт этот вопрос) ответил:
— У вас прекрасная команда и корабль собран по последнему слову техники, это возможность получить полезный опыт и навыки, и я хочу быть частью вашей миссии своевременной доставки пассажиров по всему миру.
— Кем вы видите себя через пять лет?
"Кормом для рыб", хотелось ответить мне на второй набивший оскомину вопрос, но, увы, пришлось сказать, что я прежде всего хочу стать очень профессиональным палубным матросом, и уже потом смотреть, куда приведёт меня карьера — может, вперёдсмотрящим, а, может, и боцманом.
— Что ж, кажется, мы можем взять вас с испытательным сроком в качестве фулл-стек разработчика.
— Кого? — переспросил непонятное слово я.
— Палубного матроса. Вы же на эту должность обращались? Что за странная потеря слуха?
— Извините, послышалось что-то другое.
***
Корабль был... монументален. Борт вздымался над причалом на три десятка человеческих ростов. Поднявшись на него, я увидел боцмана, который пробурчав что-то непонятное, кивнул на доску, закреплённую на одном из бортов, сказал:
— Я там кинул тебе в спринт пробные задачи, осваивайся. Если что-то непонятно, спрашивай.
"Спринт?"
Непонятного было много. Почему задачи написаны на доске, а не выкрикиваются боцманом, почему на такой огромный корабль только одна мачта, почему я продолжаю слышать какие-то непонятные слова...
***
Постепенно я разбирался. Научился самостоятельно отмечать на доске, что я взялся делать задачу. Понял, что это не корабль, а целая система кораблей, закреплённых концами в одно целое, несущих часть парусов на себе. Это, кстати, было очень странно поначалу, но я научился быстро и непринуждённо прыгать с борта на борт, выполняя разные задачи, менять схему соединения вспомогательных корабликов, а однажды вообще собрав из досок нечто неприглядное, спустил его на воду, сделал на нём высокую мачту и оборудовал там пост вперёдсмотрящего, и тот гордо перешёл с мачты главного корабля туда.
— А как мы будем держаться в шторм? — спросил я у боцмана как-то. — Ведь кораблики будут стукаться друг об друга, если там гибкое соединение, а жёсткое соединение вообще сломается. Схема, когда каждый гребец сидит в своей вынесенной за борт капсуле тоже не кажется мня такой уж надёжной.
— Не трусь, матрос! Мы постоянно проводим нагрузочное тестирование, и результаты обнадёживают.
Я уже привык к тому, что постоянно слышу какие-то непонятные слова, и не стал переспрашивать, догадываясь, что услышу, что они время от времени заводят наш корабль в специальный водоём, где за деньги тысяча индусов бьют по воде палками, имитируя шторм.
— Как там твоя задача по замене тросиков на двойные с автоматической проверкой, что трос привязан к нужному кораблю? Мы тут в следующем порту берём на борт первую группу пассажиров, пора бы доделать.
— Работаем!
— Обнови оценку в Джире, пожалуйста.
Это непонятное слово я уже точно ассоциировал с доской, где боцман и капитан записывали задачи.
***
Это была катастрофа.
Пользователи (тьфу, сам заговариваться начал, пассажиры) изменили осадку кораблей, и те совсем не так держались на воде. К тому же прыгать с корабля на корабль, когда палуба постоянно уходит из-под ног, оказалось очень сложно, а это приходилось делать постоянно, потому что столовая была вынесена на отдельную лодку, то же самое с туалетом, библиотекой (без которой многие пассажиры не мыслили дальнейшее плавание), и много ещё чем. А пассажиров было много...
Фулл-стек матрос.
— Почему вы хотите работать палубным матросом именно на "Мести рекрутера Веры"?
Я вытянулся в струнку и заученно (в каждом порту работодатель обязательно задаёт этот вопрос) ответил:
— У вас прекрасная команда и корабль собран по последнему слову техники, это возможность получить полезный опыт и навыки, и я хочу быть частью вашей миссии своевременной доставки пассажиров по всему миру.
— Кем вы видите себя через пять лет?
"Кормом для рыб", хотелось ответить мне на второй набивший оскомину вопрос, но, увы, пришлось сказать, что я прежде всего хочу стать очень профессиональным палубным матросом, и уже потом смотреть, куда приведёт меня карьера — может, вперёдсмотрящим, а, может, и боцманом.
— Что ж, кажется, мы можем взять вас с испытательным сроком в качестве фулл-стек разработчика.
— Кого? — переспросил непонятное слово я.
— Палубного матроса. Вы же на эту должность обращались? Что за странная потеря слуха?
— Извините, послышалось что-то другое.
***
Корабль был... монументален. Борт вздымался над причалом на три десятка человеческих ростов. Поднявшись на него, я увидел боцмана, который пробурчав что-то непонятное, кивнул на доску, закреплённую на одном из бортов, сказал:
— Я там кинул тебе в спринт пробные задачи, осваивайся. Если что-то непонятно, спрашивай.
"Спринт?"
Непонятного было много. Почему задачи написаны на доске, а не выкрикиваются боцманом, почему на такой огромный корабль только одна мачта, почему я продолжаю слышать какие-то непонятные слова...
***
Постепенно я разбирался. Научился самостоятельно отмечать на доске, что я взялся делать задачу. Понял, что это не корабль, а целая система кораблей, закреплённых концами в одно целое, несущих часть парусов на себе. Это, кстати, было очень странно поначалу, но я научился быстро и непринуждённо прыгать с борта на борт, выполняя разные задачи, менять схему соединения вспомогательных корабликов, а однажды вообще собрав из досок нечто неприглядное, спустил его на воду, сделал на нём высокую мачту и оборудовал там пост вперёдсмотрящего, и тот гордо перешёл с мачты главного корабля туда.
— А как мы будем держаться в шторм? — спросил я у боцмана как-то. — Ведь кораблики будут стукаться друг об друга, если там гибкое соединение, а жёсткое соединение вообще сломается. Схема, когда каждый гребец сидит в своей вынесенной за борт капсуле тоже не кажется мня такой уж надёжной.
— Не трусь, матрос! Мы постоянно проводим нагрузочное тестирование, и результаты обнадёживают.
Я уже привык к тому, что постоянно слышу какие-то непонятные слова, и не стал переспрашивать, догадываясь, что услышу, что они время от времени заводят наш корабль в специальный водоём, где за деньги тысяча индусов бьют по воде палками, имитируя шторм.
— Как там твоя задача по замене тросиков на двойные с автоматической проверкой, что трос привязан к нужному кораблю? Мы тут в следующем порту берём на борт первую группу пассажиров, пора бы доделать.
— Работаем!
— Обнови оценку в Джире, пожалуйста.
Это непонятное слово я уже точно ассоциировал с доской, где боцман и капитан записывали задачи.
***
Это была катастрофа.
Пользователи (тьфу, сам заговариваться начал, пассажиры) изменили осадку кораблей, и те совсем не так держались на воде. К тому же прыгать с корабля на корабль, когда палуба постоянно уходит из-под ног, оказалось очень сложно, а это приходилось делать постоянно, потому что столовая была вынесена на отдельную лодку, то же самое с туалетом, библиотекой (без которой многие пассажиры не мыслили дальнейшее плавание), и много ещё чем. А пассажиров было много...
Ветер дул беспощадно, море разыгралось не на шутку, многие жёсткие соединения треснули, а тросы угрожали разорваться. Вперёдсмотрящий не всегда мог докричаться до рулевого. Впервые за всю карьеру мне было страшно. Вместе с остальными джуниорами я затыкал пробоины в трюме. Капсулы с гребцами постоянно смывало за борт, капитан с криком "перезапустить сайдкик" дёргал рычаг, выпускались новые капсулы, гребцы прямо из воды забирались в них и начинали грести дальше.
Раздался страшный треск и выворотив пару досок на главном корабле упала мачта. С непонятной руганью про "настройки ДНС в Кубернетес" капитан поставил несколько механиков на плечи друг другу и сказал что-то вроде "девопсы, прописывайте айпи вручную, пока не разобрались", убежал в трюм грести лично. Мы полезли натягивать импровизированный парус из своих тельняшек на эту импровизированную мачту. Механики, которых капитан почему-то назвал "девопсами", старательно держались друг за друга и удерживали парус.
***
— Матрос, можешь откатить свою фичу с прода? — услышал я голос капитана из трюма.
Ситуация не располагала переспрашивать, и надо было соображать.
— Исполняю, капитан!
К тому моменту рядом с девопсами уже был поставлен вертикально выломанный борт, парус перенатянули на него, а девопсы-механики разбежались чинить рулевые плоскости.
На этот бортик я и закрепил место для вперёдсмотрящего, и попрыгал с корабля на корабль, разыскивая место, куда я вынес его два спринта назад. Там его почему-то не оказалось, и пришлось лезть по вантам на первую попавшуюся мачту, в надежде увидеть его. К счастью, он был всего лишь за два корабля отсюда, и мне удалось докричаться. Кивнув, он полез на старое место самостоятельно.
***
Над головой был белый потолок, вокруг — белые стенки, я был привязан, а за стеной кто-то обсуждал меня.
— Курс азалептина даёт неплохие результаты, и он уже начинает видеть реальный мир, — незнакомый голос продожил, — но всё же забирать его отсюда еще нельзя.
— Но он очень нужен в проекте! У нас не хватает рук, можно ли как-то ускорить выздоровление? — а вот этот голос я знал. Это был боцман.
Раздался страшный треск и выворотив пару досок на главном корабле упала мачта. С непонятной руганью про "настройки ДНС в Кубернетес" капитан поставил несколько механиков на плечи друг другу и сказал что-то вроде "девопсы, прописывайте айпи вручную, пока не разобрались", убежал в трюм грести лично. Мы полезли натягивать импровизированный парус из своих тельняшек на эту импровизированную мачту. Механики, которых капитан почему-то назвал "девопсами", старательно держались друг за друга и удерживали парус.
***
— Матрос, можешь откатить свою фичу с прода? — услышал я голос капитана из трюма.
Ситуация не располагала переспрашивать, и надо было соображать.
— Исполняю, капитан!
К тому моменту рядом с девопсами уже был поставлен вертикально выломанный борт, парус перенатянули на него, а девопсы-механики разбежались чинить рулевые плоскости.
На этот бортик я и закрепил место для вперёдсмотрящего, и попрыгал с корабля на корабль, разыскивая место, куда я вынес его два спринта назад. Там его почему-то не оказалось, и пришлось лезть по вантам на первую попавшуюся мачту, в надежде увидеть его. К счастью, он был всего лишь за два корабля отсюда, и мне удалось докричаться. Кивнув, он полез на старое место самостоятельно.
***
Над головой был белый потолок, вокруг — белые стенки, я был привязан, а за стеной кто-то обсуждал меня.
— Курс азалептина даёт неплохие результаты, и он уже начинает видеть реальный мир, — незнакомый голос продожил, — но всё же забирать его отсюда еще нельзя.
— Но он очень нужен в проекте! У нас не хватает рук, можно ли как-то ускорить выздоровление? — а вот этот голос я знал. Это был боцман.
Сегодня короткий пост про простую функцию replace в мире JS. Чтобы понять нужно ли вами читать этот пост, простой микро тест:
Смогли ответить и понимаете почему так? Значит вам не стоит читать текст далее. Для остальных — велком…
https://medium.com/@frontman/ed2507c14a60
’abc'.replace('a', '$$$') // = ???Смогли ответить и понимаете почему так? Значит вам не стоит читать текст далее. Для остальных — велком…
https://medium.com/@frontman/ed2507c14a60
Medium
String.prototype.replace
Регулярки, колбэки и… Шаблоны!
Всем привет! Короткий пост про небольшой Bash скрипт для вашего SEO
https://medium.com/@frontman/e6717d19ed01
https://medium.com/@frontman/e6717d19ed01
Medium
Sitemap.xml
На Bash за 5 минут, без регистрации и SMS