Pull to refresh
0
Дмитрий@deeman313read⁠-⁠only

Пользователь

Send message

Bash-скрипты, часть 8: язык обработки данных awk

Reading time14 min
Reach and readers384K

Работаем в консоли быстро и эффективно

Reading time9 min
Reach and readers131K

В сети можно встретить много советов по эффективной работе в консоли. В большинстве таких статей авторы рассказывают про банальности типа "выучите горячие клавиши" или "sudo !! запустит последнюю команду под sudo". Я же расскажу о том, что делать, когда вы уже выучили горячие клавиши и знаете про sudo !!.

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

Сравнение React и Vue на практическом примере

Reading time11 min
Reach and readers68K
Автор материала, перевод которого мы публикуем сегодня, говорит, что на работе ему приходится использовать Vue и он хорошо изучил этот фреймворк. Однако, ему всегда было любопытно узнать, как обстоят дела в других мирах, а именно, во вселенной React.

Он почитал документацию, посмотрел несколько учебных видео, и, хотя всё это показалось ему весьма полезным, ему хотелось по-настоящему понять, в чём заключается разница между React и Vue. Для него поиск различий между фреймворками заключался не в выяснении того, поддерживают ли они виртуальную объектную модель документа, или того, как именно они рендерят страницы. Ему хотелось, чтобы кто-нибудь объяснил бы ему особенности кода, показал бы, что в нём происходит. Он надеялся найти статью, которая посвящена раскрытию именно таких различий, прочтя которую тот, кто знал раньше лишь Vue или React (или совершенно новый в веб-разработке человек), мог бы лучше понять различия между этими фреймворками.



Однако такой статьи ему найти не удалось. Этот факт привёл его к пониманию того, что ему самому надо взять и такую статью написать, попутно разобравшись в сходствах и отличиях React и Vue. Собственно говоря, перед вами описание его эксперимента по сравнению этих двух фреймворков.
Читать дальше →

Открытый урок «Пишем свою библиотеку для работы с xlsx файлами»

Reading time1 min
Reach and readers6.3K
И снова здравствуйте! Небольшой открытый урок в рамках курса «Web-разработчик на Python», на котором преподаватель курса Илья Лебедев рассказывал как устроен формат xlsx, как с ним работать без специализированных библиотек, вроде openpyxl и показал как разработать свою библиотеку для работы с этим форматом с нужным набором функций.



Если есть вопросы\комментарии, то их можно задать здесь или зайти к Илье на день открытых дверей.

Bash-скрипты, часть 2: циклы

Reading time8 min
Reach and readers951K
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

В прошлый раз мы рассказали об основах программирования для bash. Даже то немногое, что уже разобрано, позволяет всем желающим приступить к автоматизации работы в Linux. В этом материале продолжим рассказ о bash-скриптах, поговорим об управляющих конструкциях, которые позволяют выполнять повторяющиеся действия. Речь идёт о циклах for и while, о методах работы с ними и о практических примерах их применения.

image

Внимание: в посте спрятана выгода!
Читать дальше →

Ansible: настраиваем zsh терминал с antigen, autosuggestions, fzf и красивым prompt одной командой

Reading time6 min
Reach and readers52K

Я провожу в терминале много времени, поэтому хочется, чтобы все было красиво, быстро и удобно. Из этого рождается постоянное желание его настраивать, пробовать разные плагины. Шеллом я выбрал для себя zsh лет 5 назад, пару лет назад нашел oh-my-zsh для его удобной настройки.


Со временем к этому конфигу добавились некоторые сбоку торчащие части в виде powerline и percol.


Недавно я решил пересобрать все так, чтобы избавиться от ненужных плагинов, добавить нужные, сделать легкую установку и обновление. В итоге появилась роль ansible-role-zsh, которая полностью настраивает терминалы на локалке и на моих серверах.


Особенности:


  • устанавливается одной командой (кроме шрифта и темы вашего терминального клиента)
  • быстро загружается, быстро работает
  • полностью настраивается через ansible, ~/.zshrc
  • полностью локальная (в систему ничего не ставится, все хранится в ~/.oh-my-zsh)
  • оставляет возможность юзеру вносить свои настройки через ~/.zshrc.local
  • одинаково работает на macOS, старом Debian, Ubuntu, CentOS
  • нормально выглядит на разных цветовых схемах (но лучше всего на Solarized Dark)
  • встроенная подсветка синтаксиса (помогает реже ошибаться и лучше читать длинные команды)
  • автодополнение по истории команд (помогает реже нажимать Ctrl+R)
  • отображение времени для долго выполняемых команд (помогает реже использовать time)

Демонстрация фич за 1 минуту:


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

Как вернуться в кодеры, когда за сорок

Reading time3 min
Reach and readers44K

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

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

Шпаргалка по SOLID-принципам с примерами на PHP

Reading time10 min
Reach and readers466K
Тема SOLID-принципов и в целом чистоты кода не раз поднималась на Хабре и, возможно, уже порядком изъезженная. Но тем не менее, не так давно мне приходилось проходить собеседования в одну интересную IT-компанию, где меня попросили рассказать о принципах SOLID с примерами и ситуациями, когда я не соблюл эти принципы и к чему это привело. И в тот момент я понял, что на каком-то подсознательном уровне я понимаю эти принципы и даже могут назвать их все, но привести лаконичные и понятные примеры для меня стало проблемой. Поэтому я и решил для себя самого и для сообщества обобщить информацию по SOLID-принципам для ещё лучшего её понимания. Статья должна быть полезной, для людей только знакомящихся с SOLID-принципами, также, как и для людей «съевших собаку» на SOLID-принципах.

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

Визуальный генератор регулярных выражений

Reading time6 min
Reach and readers250K
Все разработчики рано или поздно сталкиваются с регулярными выражениями. Практически в 100% случаев нам совершенно не нравится их составлять, считая это побочной работой, не связанной с программированием.

Большинство из нас, впервые столкнувшись с данной проблемой, начинают забивать в поисковых системах что-то типа: «regexp online generator» и к своему великому сожалению осознают что гугл сломался все результаты в поиске являются сервисами для проверки корректности уже составленного регулярного выражения (или я плохо гуглил).

А как же составить это самое регулярное выражение?


image

До недавнего времени существовало 2 ответа на этот вопрос:

  1. Изучить документацию по регулярным выражениям и составить регулярку самому
  2. Попросить кого-то более опытного сделать это за вас

Теперь, после нескольких месяцев разработки, рад представить и 3-й ответ:

» Генератор регулярных выражений

История


Давным давно, в одном проекте пришел довольно интересный и сложный запрос от внутренних пользователей. Персоналу технической поддержки нужно было самим задавать правила валидации для определенных полей, разным пользователям. Правила должны были часто и очень оперативно изменяться.
Читать дальше →

Что нам стоит сервис email-маркетинга построить? Взгляд изнутри, часть первая

Reading time5 min
Reach and readers18K
Насколько сложно построить полноценный сервис email-маркетинга? Что для этого нужно предусмотреть? Какие подводные камни могут встретиться на пути пытливых умов разработчиков?



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

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

Обзор базовых возможностей ES6

Reading time9 min
Reach and readers128K

JavaScript сильно изменился за последние годы. Вот 12 новых возможностей, которые можно начать использовать уже сегодня!


История


Новые добавления в язык называются ECMAScript 6. Или ES6 или ES2015+.


С момента появления в 1995, JavaScript развивался медленно. Новые возможности добавлялись каждые несколько лет. ECMAScript появился в 1997, его целью было направить развитие JavaScript в нужное русло. Выходили новые версии – ES3, ES5, ES6 и так далее.



Как видите, между версиями ES3, ES5 и ES6 есть пропуски длиной в 10 и 6 лет. Новая модель – делать маленькие изменения каждый год. Вместо того, чтобы накопить огромное количество изменений и выпустить их все за раз, как это было с ES6.

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

Что нужно знать, уметь и понимать, чтобы не иметь проблем с поиском работы питонистом

Reading time10 min
Reach and readers183K
Язык — лишь малая часть того, что вам нужно знать. Может быть около 5%, а то и меньше.

Эта статья повторяет и дополняет содержание моего выступления «Что отличает джуниора от сеньора или как питонисту не иметь проблем с поиском работы» на последнем MoscowPython Meetup 39. Многие обращались ко мне после выступления с вопросами и я обещал опубликовать статью на Хабре и обсудить в комментариях.

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

no problem

Таки что же?!

Установка принтеров Canon серии LBP в Ubuntu

Reading time2 min
Reach and readers66K
Здравствуйте. После выхода в свет Ubuntu 12.04 в состав ее сборки вошли пакеты драйверов для принтеров Canon серии LBP. Но, все же при установке принтера в системе, драйвер отказывается работать корректно.

Всем заинтересованным данной проблемой прошу ознакомиться с инструкцией, в ходе выполнения которой все же удалось заставить фунционировать принтер модели Canon LBP 3010.

Инструкция так же будет справедлива и для других принтеров Canon следующих моделей:

LBP-1120, LBP-1210, LBP2900, LBP3000, LBP3050/LBP3018/LBP3010, LBP3150/LBP3108/LBP3100, LBP3200, LBP3210, LBP3250, LBP3300, LBP3310, LBP3500, LBP5000, LBP5050, LBP5100, LBP5300, LBP6018/LBP6000, LBP6300dn, LBP7200C, LBP9100Cdn.
Читать дальше →

Дешевые авиабилеты… Или сеть мошеннических сайтов, ворующих деньги с карт. Мое расследование

Reading time20 min
Reach and readers188K
В этой публикации речь пойдет о целой сети мошеннических сайтов, которые на протяжении долгого времени работают с единственной целью — похитить данные банковских карт и увести все доступные денежные средства с этих карт. В этой схеме используются на разных этапах сервисы известных компаний и банков. Таких как Яндекс (Поиск, Директ, YandexMoney, Карты), Промсвязьбанк, Банк Тинькофф и, вероятно, других.



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

Итак, что же случилось?

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

Черный ящик для дома: собираем NAS своими руками, часть 2 – великолепный NAS4Free

Reading time10 min
Reach and readers165K
Публикация рассчитана на людей, далеких от системного администрирования. В этом посте демонстрируются базовые возможности замечательной операционной системы NAS4Free, позволяющей развернуть домашний NAS даже на маломощном железе, при полном отсутствии знаний FreeBSD и командной строки. Первая часть публикации расположена тут.
Читать дальше →

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

Reading time8 min
Reach and readers68K
От автора: я разработал и провёл десятки собеседований по программированию. Здесь я расскажу, как меня обыграть



Будем честными, большинство программистов не любят писать код на собеседовании. Некоторые даже угрожают уйти из профессии по этой причине. Но в ближайшее время ничего не изменится. Так что если вы действительно хотите получить работу, то придётся понять, как можно добиться успеха на этих собеседованиях. Я помогу вам. Мы изучим процесс, и я объясню, что именно я хочу добиться от собеседования, так что у вас сложится довольно чёткое представление, как его пройти.
Читать дальше →

FileChangesWatcher

Reading time2 min
Reach and readers11K
Написал на днях одну утилиту и мне она показалась достойной вашего внимания. Захотел поделиться. https://sourceforge.net/projects/filechangeswatcher/
Update 2016.06.28:
исходники: https://sourceforge.net/projects/filechangeswatcher/code, https://github.com/satabol/FileChangesWatcher
бинарники: https://github.com/satabol/FileChangesWatcher/releases/tag/1.0.10.32 (дада, на github можно выкладывать бинарные релизы)

Программа на лету мониторит список файлов, подвергшихся изменению и последние несколько файлов, которые попали в поле зрения программы, хранит в контекстном меню:

image

… чтобы затем пользователь мог открыть месторасположение файла в проводнике Windows:
Читать дальше →

Power Query: стероиды для MS Excel и Power BI

Reading time7 min
Reach and readers235K
image

В данной статье я хочу рассказать о некоторых возможностях бесплатной и крайне полезной, но пока еще мало известной надстройки над MS Excel под названием Power Query.

Power Query позволяет забирать данные из самых разных источников (таких как csv, xls, json, текстовых файлов, папок с этими файлами, самых разных баз данных, различных api вроде Facebook opengraph, Google Analytics, Яндекс.Метрика, CallTouch и много чего еще), создавать повторяемые последовательности обработки этих данных и загружать их внутрь таблиц Excel или самого data model.

И вот под катом вы можете найти подробности всего этого великолепия возможностей.
Читать дальше →

Масштабирование Wix до 100 миллионов пользователей. Начало

Reading time3 min
Reach and readers11K
Привет! Сегодня мы начинаем серию постов от наших инженеров о масштабировании Wix. Наша аудитория росла динамично: конструктор сайтов Wix был создан в 2006-м году, в 2009-м году аудитория нашего сервиса составила 1 миллион пользователей, а сегодня эта цифра достигла уже 80 миллионов. О нашей архитектуре на каждом этапе разработки расскажет в серии постов о масштабированиии главный архитектор программного обеспечения Wix Йоав Абрахами.


Когда мы в 2006 году запускали Wix, не было четкого понимания, какая именно реализация конструктора Flash-сайтов окажется рабочей, и что на самом деле означает сделать WYSIWYG конструктор сайтов. Мы были заняты разработкой двух Flash-приложений: одно для редактирования сайтов (оно создавало представление сайта в виде XML-документа) и другое для отображения сайтов (на основе XML-документа). Большая часть разработки велась на Flash. Помимо этого, нам также был необходим сервер для хранения и обработки XML-файлов на основе шаблона URL или домена сайта. Наш первый бэкенд-инженер построил этот сервер на Tomcat, Hibernate, Ehcache и MySQL. Кроме того, в основе нашего сервера был его собственный фреймворк, который генерировал файлы-сущности Java из HBM-файлов Hibernate, что делало возможным добавление нового кода путем наследования из сгенерированных классов.
Читать дальше →

Введение в PHP 7: Что добавлено, что убрано

Reading time12 min
Reach and readers306K
Одним из самых значительных событий, произошедших в мире PHP в 2015 году, стал выпуск PHP 7. Целых 10 лет отделяют его от выпуска первого релиза PHP с номером 5. С увеличением первой цифры в номере версии, в PHP 7 появилась масса новшеств, увеличилась и скорость работы.
Однако в седьмой версии была убрана устаревшая функциональность, что привело к некоторым проблемам с обратной совместимостью, затруднив перевод старых приложений на новую версию. Эта статья может послужить вам кратким руководством, если вы планируете написание новых или перевод своих существующих приложений на PHP 7.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity