Programming

A collection of 40 posts

JavaScript

Получить номер дня недели в ISO формате

Tips & tricks. Полезняхи в JS/ES #8Получить номер дня недели в ISO форматеМетод getDay() объекта Date возвращает Вс с индексом 0. Мы в СНГ привыкли, что неделя начинается с Пн. Поэтому, чтобы получить день недели, где 0 — это Пн мы можем использовать такой

Js

JS: Rename function name

Мутируем иммутабельное, переписываем именаМногие, кто работает с JS, знают, что все есть объект в JS, а что не объект, то с этим можно работать как с объектом. Поэтому мы можем в JS вытворять такие штуки: 30..toString(16) // = 1e "abc".length // = 3и так далее.

Python

Python Switch operator

Полный гайд по реализации switch-case в питонеВ Python нет привычного оператора Switch как в других языках и после Java, JavaScript или PHP переходя на Python бывает непривычно писать логику без switch-case инструкций. Даже в Bash есть case оператор. Но выход есть и не один!

Bash

Простой интерактивный текстовый редактор на Bash

На случай если даже нет Vim'аБывало ли у вас такое, что заходите на сервер, а там вообще нет ничего для редактирования текстов? От слова совсем, кроме дефолтных команд. На такой случай накатал небольшой текстовый редактор, который поддерживает интерактивный режим. #!/usr/bin/env bash ${1:

PHP

Optional Chaining in PHP

Есть ли возможность?В JS есть такая штука как Optional Chaining. Про эту фичу есть в заметке JS/ES2020: Optional Chaining and Nullish CoalescingНа дворе 2020 год, а в ES2020 уже есть 2 долгожданные фичи, которые облегчат работу. Но самое интересное, что эти фичи

Python

Используем фичи Python 3.9 в Python 3.8 - пишем полифил

Разбираемся как расширить built-in классыВ Python 3.9 заявлена новая фича: новый синтаксис мерджа двух и более словарей. Если раньше мы писали: # 1. Basic merge: merged = d1.copy() merged.update(d2) # 2. Unpacking merge: merged = {**d1, **d2}То в Python 3.9 можно будет

JavaScript

Serverless статистика для Ghost блога на примере Cloudflare workers + KV за 5 минут

Делаем простую статистику и лайки за 5 минут, используя воркеры Cloudflare с применеием Key Value хранилища от них же. Задача: После перезда с medium.com на свой собственный блог (в качестве движка которого я использую Ghos 3й версии, так как он мне очень нравится)

PHP

Управление потоком выполнения в PHP

В этой заметке мы не будем рассуждать на тему правильного и чистого кода, что он должен быть коротким, и тд и тп... Суть вопроса вот в чем. Есть линейное выполнение нескольких IF блоков, SWITCH блоков и все это в рамках одной функции или скрипта.

Programming

Fun Python#8: Невероятный пайтон

WTF Python? Задачки с собеседованийЧасто ругают JavaScript за непонятную магию, не менее чаще ругают PHP, но вот Python сейчас переживает пик популярности и его все любят несмотря ни на что. Расскажу свой небольшой опыт, что у меня вызвало удивление в виде вопросов с собеседования.

Bash

IDN — Punycode

Работаем с кириллическими доменами Собственно речь пойдет о том, как работать с кирилическими (и не только) доменами в PHP, Node.js, Bash/Zsh и Python. Почему такой выбор языков? Это стек проекта GeekJob.ru, над которым я работаю. IDN (Internationalized Domain Names — интернационализованные доменные

Bash

Как скачать видеострим на Bash

Download and combine m3u *.ts to .mp4 Бывает такое: была запись в приватном канале (допустим семинар). Затем тебе же открывают доступ к прошедшему стриму (допустим это твое выступление). Хочется сохранить для истории для себя видео, но скачать никак не получится какими-то готовыми расширениями или

PHP

FunPHP 7.4: access to private and protected

Паблик Морозов на собеседованииЕсть у меня статья про то, как Паблик Морозов на собеседовании получал доступы к private и protected полям. С выходом PHP 7.4, который зарелизится 28 ноября 2019 года, можно переписать пару примеров. Один из таких примеров с использованием лямбд. Простая

Bugs

Unexpected server respose while doing caching_sha2 auth

PHP 7.2.8 Очередные заметки на полях, вдруг кому-то пригодится. Если вы столкнулись с ошибкой: Fatal error: Uncaught PDOException: PDO::__construct(): Unexpected server respose while doing caching_sha2 auth: 109 in … Кстати да, в самом тексте тоже ошибка, слово response написано без

DevOps

Recovery password MySQL 8.0

On Windows Server Reset MySQL 8.0 password on Windows Server Заметки на полях. Потерял пароль. Стал восстанавливать и столкнулся с тем, что много разных источников показывают разные варианты. Но у меня сработал только один. Возможно кому-то это пригодится (ну или я сам снова

Algorithms

Fun ES #6: перевернуть число

Задачки с собеседований. Сборник решений Задача про переворот строки вызвала интерес у многих читателей, как оказалось. И даже стали писать в личку. Например, Леонид Лебедев, верно подметил, что задачу на переворот числа можно решить без приведения к строке. Да, можно. Но я не стал

Algorithms

Fun ES #5: перевернуть строку

Задачки с собеседований. Сборник решений Давно я не писал ничего из серии разбора задачек. Краткий пост про задачку, которую уже просто замусолили. Я не считаю, что эта задача может показать крутость разработчика. Задачка может показать на сколько разработчик давно знаком с языком и на

Algorithms

ASP.NET membership password hashing reimplemented in PHP

Будни разработчика Сейчас у меня стадия активной переработки проекта анонимного поиска работы — GeekJob.ru Этот проект написан на ASP.NET еще в далеком 2012 году, крутится на Windows Server, хранит данные в MS SQL. И сейчас стоит задача его кардинально переработать и сделать супер

Cloudflare

NoOps или DevOps по хипстерски

Cloudflare архитектура Мысль: каждый синьор специалист уже отчасти является DevOps инженером. Прелюдия PAAS и SAAS системы, такие как Amazon, Heroku им им подобные уже давно прочно вошли в повседневную жизнь веб-разработчиков. В некоторых случаях они вполне могут составить конкуренцию целым отделам DevOps (или каких-то

Algorithms

Алтернатива switch case в JS/PHP

Switch-hash структуры и вопрос с php-собеседования У вас бывало такое, что нужно где-то получить данные из switch-case блока, при этом это нужно единожды и это где-то нужно здесь и сейчас. Например при инициализации массива? И не хочется куда-то выносить код, заводить отдельные переменные, которые

Ghost

Ghost Blog, Nginx, HTTPS и бесконечный редирект

Зарисовки DevOps Нашел противный баг в блоге Ghost, который я запускаю прямо из официального докер контейнера. На этом движке крутится наш корпоративный блог. Суть баги: в конфиге докер контейнера прописываете ссылку на блог с HTTPS (у нас же 2k18 и сейчас без https и

Algorithms

Пишем GCD функцию

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

Algorithms

Fun ES #4: задачки в ФП стиле

Реализуем map, reduce, filter С приходом моды на функциональное программирование в JS пришли и вопросы для собеседований по этой же теме. Логично, если назвался функциональщиком, не желая отвечать на вопросы по ООП, будь добр показать, что ты умеешь в FP. В свое время была

Debugging

Применение void в JS для дебага

Будничные заметки setTimeout(void function(){ ... }, 1000); Вот так вот легко и непринужденно можно отменить вызов функции. Это можно применять при отладке, когда блок кода большой и комментировать его неудобно. Чаще я использовал такой кейс: if (0) setTimeout(function(){ ... }, 1000); Этот кейс более универсальный и

Hacklang

Fun PHP #4

Задачка с собеседования В каждом языке есть свои примечательные особенности. Некоторые из них могут подпортить жизнь при отладке, другие могут позволить делать невозможное возможным. В PHP есть так же свои особенности и часто про эти особенности любят спрашивать на собеседованиях. Одна из таких задачек:

👍 ?
👓 ?