Search
Write a publication
Pull to refresh
2
0
Send message

Полное понимание асинхронности в браузере

Reading time24 min
Views138K
Про асинхронность JavaScript написано много статей, документации и книг. Но вся информация сильно распределена по интернету, поэтому сложно быстро и полностью разобраться, что к чему, и составить цельную картину в голове. Не хватает одного исчерпывающего гайда. Именно эту потребность я и хочу закрыть своей статьёй.

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

Как работает Docker Desktop Networking

Reading time7 min
Views16K

Современные приложения активно используют сети. Обычное дело, когда во время сборки apt-get/dnf/yum/apk install устанавливает пакет из репозитория пакетов дистрибутива Linux. При выполнении команды приложение может захотеть подключиться к внутренней базе данных postgres или mysql, чтобы сохранить определённое состояние при вызове listen() и accept(). При этом разработчик должен иметь возможность работать отовсюду — из дома или офиса, с мобильного устройства или через VPN. Docker Desktop помогает сделать так, чтобы сеть «просто работала» в каждом из сценариев. В статье разбираем инструменты и методы, которые обеспечивают это, начиная с всеми любимого набора протоколов: TCP/IP.

Читать далее

17 вопросов по Kubernetes, которые может услышать разработчик на собеседовании

Level of difficultyEasy
Reading time10 min
Views41K
image

Kubernetes прочно вошел в технологический стек разработки cloud-native-приложений, став мейнстримовой технологией.

Разработчику, конечно же, не нужно быть экспертом по Kubernetes, чтобы запустить в нем свое приложение. Но понимание азов даст лучшее представление о том, как приложение живет и работает в Kubernetes.

Мы собрали список вопросов про Kubernetes, с которыми может столкнуться разработчик на собеседовании, подготовили короткие ответы и ссылки на более подробную информацию в документации и не только.

Если есть свободные 20 минут, приглашаем устроить внеплановую ревизию своих знаний.

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

Солнечный парк Дубая

Level of difficultyEasy
Reading time3 min
Views5.2K

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

Читать далее

Как выбрать для своего конвейера данных максимально эффективную архитектуру

Level of difficultyMedium
Reading time9 min
Views5.8K

Привет! Меня зовут Михаил Благов, я руководитель департамента «Чаптер инженеров данных и разработчиков» в beeline tech. В этом посте я хочу поделиться способом, с помощью которого можно выбрать подходящую архитектуру для конвейера данных в зависимости от требований к нему. В частности, обсудим паттерн CDC (change data capture, aka «захват изменений»), основная идея которого — быстрая репликация какого-то источника в аналитическое хранилище. 

Под катом мы:

- познакомимся с вариантами архитектуры конвейеров данных: из каких компонентов и как его можно собирать,

- рассмотрим и сравним четыре разные архитектуры конвейеров.

Disclaimer: серебряной пули не будет, в этой статье я поделюсь опытом выбора архитектуры для решения конкретной задачи. Аналогичный выбор для других случаев потребует дополнительных исследований и замеров производительности.

Начнем с матчасти

Читать далее

30 фактов о доменных именах, которые вас могут слегка удивить

Level of difficultyMedium
Reading time5 min
Views3.8K

Привет! Меня зовут Максим Кульгин, я основатель xmldatafeed.com и clickfraud.ru. Мы занимаемся парсингом сайтов и защитой от скликивания. Сейчас работаем с заказчиками в России, но мечтаем выйти и на глобальный рынок. И для таких мечтателей как мы, подготовил довольно интересные факты по доменным именам...

Какие самые популярные доменные расширения? Какова наиболее распространенная длина доменного имени? Надеюсь, ответы на эти вопросы будут полезны тем, кто думает открыть свой бизнес в Интернете и задумался о домене. Из опыта всем советую рассматривать расширение.com, но не всегда это возможно по причинам, изложенным далее (посмотрите еще зону.dev как альтернативу).

Итак...

1. Зарегистрировано ~220 миллионов доменных имен.

Интернет растет, о чем свидетельствует тот факт, что количество доменных имен увеличилось на 13,2 миллиона или 3,9% по сравнению с прошлым годом.

Читать далее

Как я на психотерапию ходил. И этот опыт помог мне найти жену

Level of difficultyEasy
Reading time7 min
Views35K

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

Читать далее

Пожалуйста, остановите игрострой

Level of difficultyEasy
Reading time8 min
Views66K

Я играл в компьютерные игры с 1995 года. И хотя в детстве я не раз засиживался за Civilization или TTD, я не могу считать себя заядлым геймером. За последние десять лет большую часть редкого игрового времени я потратил на Factorio. Более того, я закончил несколько франшиз, чисто для галочки.

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

Читать далее

Озон и мошенники

Reading time6 min
Views76K

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

Обо всем по порядку. Ситуация классическая — мне нужны были наушники AirPods, которые я пошел выбирать на Озон, т.к. последнее время часто там что‑нибудь покупаю. При первом же поиске обнаруживаю, что разброс предложений по цене слишком неприличный — от 3000р. до 23 000р. Ну не могут же AirPods Pro 2 стоит 3000р.? Не могут. А сколько могут? Ну беру золотую середину и начинаю искать адекватное предложение от известного магазина с хорошим рейтингом и положительными отзывами на товар. Нахожу предложение от Технопарк за 11 700р. с припиской, что скидка 43%. Чего это они столько скинули? Да бог их знает, им виднее. Это ж Технопарк — крупная сеть, подделку уж точно продавать не будут. «Лох классический», скажете вы, и наверное доля правды в этом есть. Но и на старуху бывает проруха. Мошенники бы не ели свой хлеб, если бы периодически каждый из нас не оказывался в ситуации, когда его бдительность притупляется.

В общем я зашел в карточку товара, там было довольно много отзывов, все положительные, везде написано, что наушники оригинальные и т. п. У самого продавца была пометка Premium, рейтинг 5 звезд и вроде бы все достаточно убедительно. Заказываю!

Через несколько дней заказ доставлен курьером на дом. В этот же вечер садимся с женой и проверяем, что там нам пришло. Серийный номер на коробке и на самих наушниках прошел проверку на сайте Apple. Сами наушники распознаны айфоном и ничего вроде бы не вызывает подозрений — ни качество изготовления, ни упаковка. Ну разве что почему‑то прозрачной пленки не было.

Читать далее

Эффект Рогатки: как взломать дофаминовую матрицу

Level of difficultyEasy
Reading time10 min
Views55K

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

Давайте честно признаем: наша способность добросовестно концентрироваться на делах давно вышла из чата. Когнитивные проблемы нашего времени — это быстрая потеря интереса ко всему (что не позволяет нам глубоко и приятно-долго исследовать новое), а также стресс, выгорание, тревожность, вечная усталость, отсутствие концентрации, brain fog и так далее. Информационный фон выжигает нашу нервную систему настолько, что нас буквально тошнит от любого рода познавательной деятельности — мы испытываем отравление новизной.

Проблемы эти, кстати, не новые и на тему написано множество книг, монографий, проведено множество ресерчей, но чем больше подобной информации, тем сложнее в ней найти что-то реально полезное и эффективное — чтобы вот прочитал немного, выписал себе алгоритм и стал счастливым.

Фишка в том, что даже если бы такой мануал был, он бы нас не спас. Не понимая сути источника проблемы, ни один человек (а он все же смыслосодержащий механизм, а не робот) не будет ему долго и упорно следовать. Как рассказывал David Horsager на Тэде, устойчивая мотивация держится на полной ясности смысла деятельности для конкретного человека.

Вам, конечно, может показаться, что я зря смешиваю потерю интереса к деятельности и стресс — ведь они, кажется, на разных краях стола. Но я проблему вижу так: находясь в вечном стрессе, мы жадно хватаемся за то, что дарит нам положительные эмоции. Пребывая в привычном блэкауте с черными кругами под глазами, мы встречаем человечка, да каааак начинаем им интересоваться и увлекаться, да так упорно, хватаясь за него как за спасительную соломинку, что… через какое-то время перегораем. Как говорят американцы, balls deep. Работает не только с человечками — по такой же гнусной схеме мы обычно набрасываемся на все, что нам внезапно понравилось, особенно на фоне рутинной серости, субъективного однообразия, всемирного сумасшествия и всей этой хтони. Мы постоянно бегаем по этому убивающему нас циклу — набрасываясь на то, что нас вроде как драйвит, быстро выжирая это без остатка, теряя интерес и снова погружаясь в плаванье в этом супе из кортизола.

Читать далее

Мой путь изучения иностранных языков: прошлое, настоящее и будущее

Level of difficultyEasy
Reading time30 min
Views13K

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

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

Про мои уровни владения языками: я свободно владею английским, в 2013 году достиг уровня В2 в немецком языке (но сейчас мой уровень снизился), в 2014 году достиг уровня примерно N3 в японском языке (но уровень тоже упал), и недавно достиг уровня В2 в испанском языке.

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

Читать далее

Как навсегда запомнить выученное — 2 самые эффективные техники запоминания

Reading time17 min
Views97K

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

Читать далее

Безграничные возможности FFmpeg на примерах

Level of difficultyEasy
Reading time12 min
Views72K

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

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

Это «движок» почти всех современных инструментов для обработки/сжатия/редактирования видео. Они просто предлагают графический интерфейс с кнопками, а ffmpeg делает реальную работу.
Читать дальше →

Пути и графы

Level of difficultyMedium
Reading time14 min
Views7K

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

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

Читать далее

Как при помощи Rust в 150 раз ускорить код на Python

Level of difficultyEasy
Reading time6 min
Views33K

Python — довольно простой в освоении язык, по сравнению с некоторыми другими языками код на нём пишется очень быстро. Но в жертву приносится скорость выполнения кода.


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


Обзор


Проблему решим в 6 шагов:


  1. Решим вопрос о том, почему функция медленная.
  2. Подготовим проект.
  3. Перепишем функцию в Rust.
  4. Скомпилируем код на Rust и разместим его в пакете Python.
  5. Импортируем пакет Python в проект.
  6. Выполним бенчмарк чистого Python и функции на Rust.

Пакет maturin скомпилирует Rust-код и преобразует его в готовый к работе пакет Python.


1. Решим вопрос о том, почему функция медленная


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

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

Три причины, почему ты не зарабатываешь больше

Level of difficultyEasy
Reading time4 min
Views66K
image

Сейчас модно писать эдакие мотивирующие тексты о том, почему классные ребята вроде тебя, Username, не зарабатывают достаточно денег. Чтобы купить новую Теслу, виноградник в Бургундии, футбольный клуб… Надо только начать заниматься не тем, что приносит деньги, а тем что тебе нравится! И всё делать с любовью!

Это, конечно, ложь. Но если слегка подумать, сразу станет очевидно, почему ты не зарабатываешь больше. Вообще говоря, от тебя лично мало что зависит.
Читать дальше →

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 раз.

Читать далее

Information

Rating
6,236-th
Registered
Activity