Search
Write a publication
Pull to refresh
2
0
Send message

Fitter —  сшиватель API/Website's, часть личного проекта которую хотел опенсорснуть

Level of difficultyEasy
Reading time4 min
Views3.1K

Добрый вечер всем!

Возможно выбрал не лучшее время для охвата аудитории, но тем не менее главное чтоб продукт был хороший, а не статья о нем. Последние несколько недель я пишу приложение в рамках которого надо собирать огромное количество информации из сети(запросы к API/парсинг HTML кода) и под конец 4-ой интеграции я подумал что надо бы это максимально облегчить(не дело это пересобирать приложение под каждый чих интеграции), возможно это не лучшая преамбула, но хотя бы была реальная проблема решение к которой хотелось показать и заопенсорнуть.

Итак Fitter = сшиватель достаточно жаргонный перевод, но мне он кажется что лучше всего подходит. Я делал эту штуки исходя из следующих предположений:

Читать далее

Простой лайфхак для ввода символа "#" в русской раскладке клавиатуры под Linux

Level of difficultyEasy
Reading time2 min
Views35K

знак решетки


Давно полюбил формат Markdown за простоту и легкость его использования при документировании исходного кода и за возможность его применения при оформлении статей для Хабра. Потом добавился Obsidian для ведения заметок. И формат Markdown стал по сути основным способом форматирования набираемого текста.


Единственной, но весьма большой ложкой дегтя, оставалась проблема ввода символа решетки «#» при использовании русской клавиатуры. А так как знак решётки (октото́рп, хеш, знак номера, дие́з, sharp), в русской раскладке клавиатуры отсутствует, то каждый раз переключаться на английскую раскладку, меня немного утомляло. И «немного утомляло» еще мягко сказано, так как символ решетки, кроме указания заголовков в Markdown и тегов в Obsidian, еще часто используется как начало комментария до конца строки (в Bash, Python, NewLang).


А так как предлагаемые на просторах интернета способы ввода символа решетки в русской раскладке клавиатуры меня совсем не вдохновляли (и если Alt+35 на Numpad под виндой еще сойдет, но этот способ не работает под Linux, а занимать буфер обмена ради вставки одного символа, вообще не вариант), то пришлось потратить некоторое время на эксперименты, результатами которых я и хочу поделиться.

Простой лайфак ввода # в русской раскладке под Linux

Python модули и пакеты

Level of difficultyEasy
Reading time4 min
Views54K

Данная статья написана для новичков, которые изучают язык программирования Python.

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

Читать далее

Как сократить time2market с помощью coding kata?

Level of difficultyMedium
Reading time31 min
Views2.8K

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

За время проекта два раза поменяли команду и заказчика.

Аудит процесса производства с точки зрения time2market показал, что: долго вносятся изменения в код, долго выполняется ручное тестирование и часто после тестирования код возвращается на доработку

Первопричиной низкого time2market являлось то, что команда не владела практикой coding kata, о которой я подробно расскажу в данной статье на примере задачи "Позолоченная роза".

После применения приемов, описанных в этой статье, оставшиеся 95% проекта команда реализовала и сдала за 6 месяцев вместо прогнозируемых 48 лет, что эквивалентно сокращению time2market в 96 раз.

Читать далее

[Студентам] Советы изучающим git

Level of difficultyEasy
Reading time4 min
Views50K

Периодически от студентов приходят вопросы о работе системы контроля версий Git. Частая причина возникновения этих вопросов — непонимание разницы между репозиторием и обычной папкой.

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

Читать далее

Почему лучше нанимать кандидатов, которые соответствуют только 70% требований?

Level of difficultyEasy
Reading time4 min
Views6.1K

Моя гипотеза состоит в том, что кандидат, который соответствует 70% требований (или даже 50%), может быть лучшим кандидатом, чем тот, кто соответствует 100%.

На первый взгляд, это интуитивный подход, но он имеет свои преимущества, как при подборе на популярные, так и нишевые позиции, где кандидатов можно пересчитать по пальцам одной руки. Например, подбор IT персонала, которым наша команда кадрового агентства занимается уже 9+ лет.

Читать далее

Руководство по реализации отзывчивого дизайна в 2023 году

Level of difficultyMedium
Reading time17 min
Views39K

Сегодня построение отзывчивых макетов уже не основывается на контрольных точках (breakpoints) с фиксированной шириной. Вместо этого современные макеты должны работать на устройствах практически любого размера. Однако, к своему удивлению, я всё ещё встречаю сайты, где используется паттерн отзывчивого дизайна – когда присутствует контейнер, получающий новое значение max-width в соответствии с шириной области просмотра.

Термин «отзывчивый» сегодня отражает уже очень многое. У нас есть медиа-запросы, которые проверяют пользовательские настройки, а также современные возможности CSS, которые помогают создавать отзывчивые макеты вообще без использования медиа-запросов. Отзывчивость нынче изменилась, и мы живём в поистине прекрасное время.
Читать дальше →

Создание модуля WebAssembly с помощью Emscripten, AssemblyScript и Rust

Level of difficultyMedium
Reading time57 min
Views6.5K

В этой небольшой заметке предлагается рассмотреть несколько способов компиляции модуля для WebAssembly, используя три разных подхода. Мы реализуем решение одной и той же задачки на трёх языках и скомпилируем полученный код в модуль WebAssembly. Будем использовать:

Emscripten для компиляции кода, написанного на С++

AssemblyScript для компиляции кода, написанного на, собственно, AssemblyScript

wasm-pack для компиляции кода, написанного на Rust

План такой:

Во введении мы обсудим постановку задачи и немножко поговорим о технологии WebAssembly

В программной части мы реализуем функциональность модуля на трёх языках: c++, AssemblyScript и Rust. Поговорим о том, какие при этом возникают сложности и как их можно обойти

Подведём небольшой итог. Станет видно, какая технология хорошая, а какая не очень

В конце планируется два бонуса. Первый бонус - это пример простого web-приложения, использующего один из скомпилированных нами модулей. Второй бонус - демонстрация того, как этот модуль можно использовать в программе на Python.

Читать далее

Ритмы нашего дыхания — и как они влияют на эмоции, память и ум

Reading time10 min
Views15K

Если вам посчастливится дожить до 80 лет, то за свою жизнь вы сделаете около миллиарда вдохов и выдохов, пропустив через себя столько воздуха, что им можно было бы наполнить примерно 50 больших дирижаблей. Мы делаем около 20 000 вдохов в день, всасывая кислород для питания наших клеток и избавляя организм от углекислого газа, который накапливается в ходе метаболизма.

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

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

Читать далее

Как искать первых заказчиков на фрилансе

Reading time7 min
Views9.8K

В начале хочу сделать важную ремарку. Статья, которую вы прочитаете ниже, — это глава из книги, читатели которой уже погружены в контекст. Контекст того, что автор — это проектировщик информационных систем, который предоставляет сложную, дорогую и растянутую во времени услугу. Не всем подойдёт такой способ ведения дел. А теперь поехали:

Если ты теперь фрилансер и готов к волне заказов,
Размышляя, что же делать, чтоб заказ тебя нашёл.
Ты уже и так прекрасен! О тебе и так узнают!
Сядь на стул и жди клиентов, пусть стучатся сами в дверь.

Вопрос «Где искать клиентов?» — самый популярный среди начинающих фрилансеров. Раньше я отвечал на него так: «Определитесь с тем, какие именно вам нужны клиенты, и станет понятно, где их искать». Так себе ответ, не правда ли? Ведь откуда начинающему знать, какие именно ему нужны клиенты? Ему бы хоть каких-нибудь найти. Поэтому я копнул глубже и стал отвечать по-другому.

Не нужно активно искать клиентов. Клиенты сами вкладывают много сил в поиск исполнителей. Лучше сделать так, чтобы во время поисков они пришли именно к нам. Как это сделать? Заявить о себе как можно громче в тех местах, с которых обычно начинает свой поиск среднестатистический клиент. Если он будет просить рекомендаций у своих знакомых — значит, кто-то из них должен знать о нашем существовании. А если воспользуется поиском в Интернете, то рядом с названием услуги должно появиться наше имя.

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

Читать далее

Градиентные тени на CSS

Level of difficultyMedium
Reading time11 min
Views11K

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


Но для начала… ещё одна статья о градиентных тенях? Серьёзно?

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

Математическая продлёнка. Про углы и тригонометрию

Level of difficultyMedium
Reading time17 min
Views23K

Продолжаю знакомить вас с наработками к занятиям математического кружка. В этой статье собраны два сюжета, связанные друг с другом одной темой: математика углов и тригонометрия. Каким образом обосновываются угловые меры? Какие из них для чего более пригодны? Почему значения тригонометрических функций от рациональных долей окружности почти все иррациональны и, наоборот, почему в рациональной тригонометрии только восемь рациональных углов и те, по большей части тривиальны? Материал рассчитан на школьников, но он приоткрывает двери в большую математику, поэтому здесь появятся элементы теории чисел, теории алгебраических полей и полиномы Чебышёва.

Читать далее

10 удивительно зрелищных простейших клеточных автоматов

Level of difficultyEasy
Reading time5 min
Views40K

Самое простое представление двумерного клеточного автомата основано на двух характеристиках: клетки имеют всего 2 состояния; правила изменения состояния зависят только от количества живых соседей из окрестности Мура первого порядка (8 окружающих).

Такая категория КА называется «Life-like», по названию самого известного автомата с такими характеристиками – «Conway's Game of Life». Игра «Жизнь» Конвея работает на правиле B3/S23, т.е. для рождения клетки требуется ровно 3 живых соседа, для выживания – 2 или 3. Во всех других случаях клетка умирает (или же остаётся пустой).

Всего в данной категории у нас существует 218 вариантов правил. Очень немногая часть из них получила в сообществе собственные названия, сверх обычного именования нотацией.

Сегодня взглянем на самых интересных представителей.

?

Минэкономразвития отменило требования к безопасности госсайтов

Level of difficultyMedium
Reading time5 min
Views3.8K
Как Минэкономразвития опубликовало фальшивый проект НПА, чтобы отменить требования к безопасности сайтов ФОИВ и доступности размещенной на них информации.


Минэкономразвития демонстрирует общественности проект НПА: легким движением руки 4 страницы превращаются… превращаются 4 страницы… всего в 2!
Читать дальше →

Своя альтернатива Google Maps: хостим сервер OpenStreetMap

Level of difficultyMedium
Reading time7 min
Views17K

Зачем? Это странно...


Нет, не странно! Google Maps — это, наверно, самый потрясающий сервис, который мы получаем бесплатно [в обмен на свои персональные данные].

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

Но что, если бы нам вообще не нужен был Google?

OpenStreetMap бесплатно предоставляет всему миру данные карт, собранные при помощи краудсорсинга. Но я не имею в виду, что можно просто воспользоваться OSM. Эта организация предоставляет данные, однако политика использования стимулирует пользователей не полагаться на её серверы при личном пользовании, а брать на себя ответственность за хостинг. И глядя на этот проект, я понимаю, почему. Его аппаратные требования не для слабонервных.
Читать дальше →

Навыки, которые пригодятся фрилансеру

Reading time8 min
Views6.2K

Когда я выходил на фриланс, то думал, что мне будет достаточно хорошего владения своей профессией, чтобы уверенно предоставлять услугу. И да, профессия всё ещё на первом месте в моём списке. Но оказалось, что есть ещё ряд вещей, без которых я бы не стал нормальным фрилансером.

Читать далее

ТОП горячих клавиш VS Code для начинающего джуна

Level of difficultyEasy
Reading time3 min
Views232K

«Поговорим не про Vim», олдам, сеньорам и тру-си-разработчикам на проверку: пользуетесь ли вы такими сочетаниями VS Code? Если же вы только начинаете программировать, влетаете в айти на реактивном самолете курсов по Питону, или просто не знаете ничего про хоткеи VS Code, возможно вам точно пригодится парочка сочетаний :)

Читать далее

Оценка количества простых циклов на графе

Level of difficultyMedium
Reading time4 min
Views9.2K

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

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

Читать далее

Information

Rating
6,345-th
Registered
Activity