Курилка закрывается. Неайтишные статьи уходят на новый сайт

сентябрь 4 , 2019

Я люблю писать на разные темы. Но слишком увлекся: статьи о путешествиях и размышлениях в блоге о веб-разработке лишние. Поэтому все посторонние темы переезжают на новый сайт ashestakov.ru

Это личный блог. Весь его смысл - научиться писать интересно и на разные темы. Там я буду писать обо всем, что не влезает в формат технического блога. Первый пост уже готов - впечатления о поездке в Черногорию. Дальше будут еще путешествия, хобби, отзывы о книгах и еще несколько тем. Размышления об айти там тоже будут, но немного другого формата.

Если вы подписались на webdevkin.ru только из-за технических статей, то для вас ничего не изменится. Только вскоре я уберу подальше статьи Курилки из общей выдачи, и они не будут мозолить вам глаза. Останутся только полезные (надеюсь) технические статьи.

Если же вам интересно, как я пишу не только об айти, переходите на ashestakov.ru. Там нет email-подписки, но уже есть rss-лента. Или следите за обновлениями в контакте. Посты на новом сайте будут выходить чаще, чем на webdevkin-е. Все-таки писать без кода гораздо быстрее и легче :-)

Всем удачи.

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

Сочи. Город, в который хочется вернуться

август 18 , 2019

Есть в этом что-то прекрасное - ехать к морю. Я задумывал романтику и хотел поехать на мотоцикле, но не удалось. За 2 недели нужно было побывать в трех удаленных друг от друга точках.

карта

На этой карте Питер - Сочи - Ульяновск. В километрах получается 2300 + 1800 + 1700 = 5800. Маршрут меня не пугал, но проводить весь отпуск на колесах не хотелось, поэтому поступил как обычный офисный турист. Утро, такси, Пулково, 4 сотни китайцев в очереди на регистрацию, самолет, сырок с паштетом и 3 с половиной часа полета. Пока все по плану.

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

Git fork. Зачем нужны форки и как с ними работать

август 16 , 2019

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

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

Начнем с примера.

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

Админка магазина на vue.js. Урок 10. Добавляем и удаляем бренды

август 1 , 2019

Продолжаем разбираться с vue.js. Мы на первом же уроке научились считывать и отображать данные из базы, пора разобраться, как ими управлять. Сегодня мы будем работать с брендами и посмотрим, как их добавлять и удалять. REST API под это давно написан, сегодня исключительно фронтенд и vue.

Почему мы начинаем с брендов, а не с самого интересного, с товаров? Бренды и категории это самые простые сущности нашей админки. Обе состоят состоят из двух полей, id и название title. Поэтому разобраться с ними проще, чем сразу с товарами. Давайте сначала сделаем самое простое, а до товаров доберемся уже подготовленными. Сегодня реализуем добавление и удаление брендов, а редактированием займемся чуть позже. Для категорий код напишем по аналогии, а потом приступим к вещам поинтереснее, к товарам.

Итак, начнем.

Метки:
Читать дальше

Как научиться плавать за один час

июль 25 , 2019

Этот рассказ был частью большого поста о Сочи. Но я подумал, что тема забавная, и может быть, моя история кому-то поможет преодолеть страхи и тоже научиться плавать. Или хотя бы просто поржать. Возможно, вы даже не помните, с каких лет плаваете. А возможно, как и я, дожили до тридцатника, не умеете и не любите в этом признаваться. Ничего страшного. Просто помните, что когда-то каждый из нас не умел ходить и какать ровно в горшок. Итак, вот моя история.

Я всю жизнь не умею плавать. Как-то не сложилось. Вырос в таких местах, где особой воды не было. Была речка, но такая, что ее кошки вброд переходили, а собаки перепрыгивали.

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

Базовая аутентификация в nginx. Закрываем админку магазина

июль 23 , 2019

На страницах блога мы уже не первый месяц работаем с админками. Сделали простую админку на файлах и пилим админку интернет-магазина на vue.js. И все у нас хорошо, кроме того, что наши админки доступны всему интернету. Для тестового магазина в бложике это гордость, а для реального проекта - наоборот.

Это проблема авторизации в веб-приложениях и рано или поздно программисты с ней сталкиваются. Каждый решает это по-разному. В золотые времена фриланса я уверенно закрывал страницы через body { display: none } и это работало. Сейчас так просто уже не получится, приходится читать гуглы и делать технологии.

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

Одиночное мотопутешествие или 3500 км за 4 дня

июнь 5 , 2019

Идея отправиться в одиночное мотопутешествие пришла мне в голову в конце 2017-го, еще до покупки мотоцикла. Я живу в Питере, но родился и вырос в Ульяновской области. Я знал, что рано или поздно рвану на малую родину на своих колесах, это лишь вопрос времени.

1700 километров в одну сторону - таки вызов для первого раза. В 2018-м так далеко ехать я не рисковал и катался только в окрестностях Питера. В сумме за сезон накатал всего 5 тысяч км и решил, что теперь-то готов. И в 2019-м забил отпуск на вторые майские, чтобы аккурат 9 мая отправиться в путь.

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

Сложные динамические фильтры в интернет-магазинах. Опрос

апрель 30 , 2019

Ребят, нужно ваше мнение.

Я обычно не провожу опросы на тему "какую статью написать", но сегодня другой случай. На webdevkin-е есть серия статей про фильтры в интернет-магазинах. Если не читали, то вот демо-страница с фильтрами. Иногда вы присылаете мне вопросы и пожеления на их доработку. Уже несколько раз была просьба показать, как делать сложные динамические фильтры. Что это значит?

В упомянутой серии уроков фильтры были, так сказать, фиксированные. Категории, бренды, цены и что-то еще. У каждого товара есть такие характеристики. Но что если у нас большой магазин с кучей товаров разного плана? Например, мы продаем ноутбуки, телефоны и видеокамеры. У ноутбуков есть параметры: процессор, объем памяти, тип и объем жесткого диска, диагональ экрана. У телефонов форм-фактор, ОС, объем памяти и цвет. У видеокамер что-то свое. Каждой категории товаров присущи свои наборы фильтров и значений, причем они могут хитро пересекаться. Например, диагональ экрана есть у ноутбуков и телефонов, но если у ноутбуков это значения 11, 13, 14 и 15 дюймов, то у телефонов скорее 4, 5, 5.5 и так далее.

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

Пирамида Маслоу. Триумф банальностей

апрель 27 , 2019

Жизнь странная штука. Любой набор банальностей и простейших наблюдений способен вылиться в теорию, обсуждаемую десятилетиями. Например, пирамида Маслоу, которую упоминают везде - от психологии до менеджмента.

Сам Маслоу без сомнения очень грамотный товарищ. Но была у него хитрость: слишком качественно подбирал подопытных для своих наблюдений. Вы же знаете, на кого он ориентировался? Альберт Эйнштейн, отцы-основатели США и другие образцово-показательные люди.

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

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

Админка магазина на vue.js. Урок 9. Перерабатываем фильтры

апрель 23 , 2019

Мы уже поработали и с vuex, и с компонентами vue. А сегодня затронем обе темы и займемся небольшим рефакторингом. Возможно, вы спросите зачем?

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

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

Итак, поехали.

Метки:
Читать дальше