Pull to refresh
4
0
Samuel @Pab10

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

Send message

Используем модель Stable Diffusion 3 в SD WebUI (он же Automatic1111)

Level of difficultyEasy
Reading time2 min
Views8.2K

Для Stable Diffusion WebUI (он же Automatic1111) уже несколько дней, как стала доступна модель генерации изображений Stable Diffusion 3. Мы в HOSTKEY попробовали модель и написали, как вам также это можно сделать.

Читать далее
Total votes 17: ↑16 and ↓1+22
Comments2

Решение задач Front End с интервью. Promise Pool

Level of difficultyEasy
Reading time3 min
Views1.8K

Разбираем задачу Promise Pool (Leetcode 2636)

Дан массив асинхронных функций functions и максимальный размер пула n. Необходимо написать асинхронную функцию promisePool. Она должна возвращать Promise, который разрешается, когда разрешаются все входные функции function.

Читать далее
Total votes 7: ↑5 and ↓2+6
Comments3

Мощь AST в действии, или как переписать код 10 летней давности на ES6-модули и ничего не сломать

Level of difficultyMedium
Reading time6 min
Views5.4K

Всем привет! Меня зовут Кирилл и я работаю фронтенд-разработчиком. Я расскажу о том, как мы перевели несколько тысяч файлов, написанных на JavaScript, с легаси кода, который использовал goog.module, на новые ES6-модули с помощью построения и преобразования абстрактного синтаксического дерева.

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

Читать далее
Total votes 23: ↑23 and ↓0+25
Comments4

Почти все, что вы хотели бы знать про Docker

Level of difficultyEasy
Reading time11 min
Views51K

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

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

Читать далее
Total votes 65: ↑60 and ↓5+65
Comments57

Как я стал разработчиком в Германии и чего мне это стоило (спойлер: ничего). Часть I

Level of difficultyEasy
Reading time7 min
Views6.9K

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

Читать далее
Total votes 15: ↑9 and ↓6+6
Comments17

Как я компьютер в Minecraft построил

Reading time11 min
Views17K

Решил я, значит, изучить, как работают компьютеры на самом низком уровне. Это тот уровень, где работают всякие железяки, транзисторы, логические элементы и так далее. Чтобы полностью закрепить материал, я решил построить простенькую ЭВМ на редстоуне в Minecraft. Эта статья о том, как работают ЭВМ на уровне логических элементов и о том, как я построил прототип такой ЭВМ в Minecraft. В конце я оставил ссылку на GitHub-репозиторий с проектом.

Читать далее
Total votes 67: ↑66 and ↓1+75
Comments28

Используем REM для адаптива: комфортная резиновая вёрстка для всех устройств

Level of difficultyEasy
Reading time3 min
Views12K

Все верстальщики рано или поздно сталкивались с болью, которая заключается в адаптиве сайта под различные устройства. Существуют разные технологии, упрощающие подгонку размеров под определённые устройства, например, clamp(). Эта функция удобна, так как позволяет минимизировать использование брейкпоинтов, но у неё есть свои недостатки:

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments8

Локальный HTTPS в dev-окружении — простая настройка

Reading time6 min
Views9.4K


Иногда в процессе веб-разработки требуется безопасное окружение в браузере, то есть HTTPS. Удобный способ сделать это — установить локальный УЦ и автоматизировать выдачу сертификатов на любые поддомены lcl.host и localhost. Это более функциональная и удобная альтернатива самоподписанным сертификатам.

Для установки локального УЦ есть инструменты lcl.host и mkcert, которые помогают быстро настроить и использовать HTTPS в dev-окружении.
Читать дальше →
Total votes 24: ↑18 and ↓6+17
Comments5

Попытка создать идеальный компонент формы

Level of difficultyMedium
Reading time12 min
Views6.5K

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

Читать далее
Total votes 10: ↑10 and ↓0+11
Comments3

Способы обхода GIL для повышения производительности

Level of difficultyEasy
Reading time5 min
Views6.7K

Привет, Хабр!

Global Interpreter Lock в Питоне предотвращающает одновременное выполнение нескольких потоков в одном процессе интерпретатора Python. Т.е даже на многоядерном процессоре многопоточные Python‑приложения будут выполняться только в одном потоке за раз. Это было введено для некой потокобезопасности при работе с объектами Python, упрощая тем самым разработку на уровне интерпретатора.

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

В этой статье рассмотрим способы обхода GIL и первый способ — использование многопроцессности вместо многопоточности.

Читать далее
Total votes 21: ↑11 and ↓10+5
Comments4

Система инвентаря на Godot. Костыль первый

Level of difficultyEasy
Reading time15 min
Views7.8K

Годот, немного костылей и прямые руки (по желанию).

Самый подробный гайд о создании системы инвентаря, без воды, по факту и с кодом!

Начать гайд
Total votes 19: ↑19 and ↓0+19
Comments9

Мемоизация в React: я почитал документацию вместо вас

Level of difficultyEasy
Reading time18 min
Views20K

В статье рассмотрены три инструмента мемоизации в React: useMemo, useCallback, memo. Главный источник информации: документация React. Не всем комфортно работать напрямую с документацией, так что если вы постоянно откладываете погружение в документацию React - я сделал это за вас, постарался выделить самое важное, и дать ссылки для углубленного погружения.  

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

Читать далее
Total votes 15: ↑14 and ↓1+15
Comments2

Неочевидные моменты TypeScript и способы их решения

Level of difficultyHard
Reading time7 min
Views15K

Разрабатывая на TypeScript, можно столкнуться с ситуациями, в которых код будет работать не так, как ожидается. В статье разберем несколько таких моментов. Часть просто придется иметь ввиду, часть решается обновлением, а часть исправляется – обо всем по порядку.

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

Читать далее
Total votes 12: ↑10 and ↓2+12
Comments11

App Router и Pages Router: что изменилось в Next.js

Level of difficultyEasy
Reading time8 min
Views5.4K

Привет, Хабр!

Как могут заметить разработчики, фреймворк Next очень активно развивается. Так, некоторое время назад в 13 версии появилась новая парадигма (модель) для создания приложений — app router, которая должна прийти на смену старой pages router.

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

Читать далее
Total votes 3: ↑2 and ↓1+3
Comments0

Next.js: подробное руководство. Итерация первая

Reading time35 min
Views208K


Привет, друзья!


Хочу поделиться с вами заметками о Next.js (надеюсь, кому-нибудь пригодится).


Next.js — это основанный на React фреймворк, предназначенный для разработки веб-приложений, обладающих функционалом, выходящим за рамки SPA, т.е. так называемых одностраничных приложений.


Как известно, основным недостатком SPA являются проблемы с индексацией страниц таких приложений поисковыми роботами, что негативно влияет на SEO.


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


Кроме того, существуют специальные инструменты, такие как react-snap, позволяющие превратить React-SPA в многостраничник путем предварительного рендеринга приложения в статическую разметку. Метаинформацию же можно встраивать в head с помощью таких утилит, как react-helmet. Однако Next.js существенно упрощает процесс разработки многостраничных и гибридных приложений (последнего невозможно добиться с помощью того же react-snap). Он также предоставляет множество других интересных возможностей.



Обратите внимание: данная статья предполагает, что вы обладаете некоторым опытом работы с React. Также обратите внимание, что заметки не сделают вас специалистом по Next.js, но позволят получить о нем исчерпывающее представление.


Заметки состоят из 2 частей. Это часть номер раз.


Итерация вторая.

Читать дальше →
Total votes 12: ↑11 and ↓1+12
Comments3

Модульность в JavaScript: CommonJS, AMD, ES Modules

Level of difficultyEasy
Reading time6 min
Views6.9K

Привет, Хабр!

Начало истории в модульности в JavaScript положил хаос: глобальные переменные, конфликты имен и сложности с зависимостями. Со временем сообщество предложило несколько подходов для организации модулей, начиная от CommonJS, которое легло в основу Node.js, до AMD, предпочтительного для асинхронной загрузки кода в браузерах. И приближаясь к настоящему времени появился ES Modules стандартизированный и встроенный в язык механизма модулей, который стал частью ECMAScript в 2015 году.

В этой статье рассмотрим кратко про CommonJS, AMD, и наконец - как появился ES Modules.

Читать далее
Total votes 12: ↑8 and ↓4+6
Comments7

Как я обработал один миллиард строк в PHP

Level of difficultyMedium
Reading time12 min
Views20K

Вероятно, вы уже слышали о соревновании под названием "The One Billion Row Challenge" (1brc), если же нет, то предлагаю ознакомиться с репозиторием 1brc Гуннара Морлинга.

Моё участие в проекте было мотивировано присутствием в нём двух моих коллег, которые достигли лидирующих позиций.

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

Читать далее
Total votes 66: ↑64 and ↓2+72
Comments33

Как я склеил картон и продал на маркетплейсах на 50 млн в год

Level of difficultyEasy
Reading time8 min
Views292K

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

Читать далее
Total votes 240: ↑217 and ↓23+243
Comments295

Мульти-тенант в Django

Level of difficultyEasy
Reading time4 min
Views4K

Привет, Хабр!

Мульти-тенант (multi-tenancy) — это подход, который позволяет одному экземпляру приложения обслуживать множество клиентов или арендаторов (тенатов). Каждый арендатор изолирован от других, имея возможность кастомизации под свои нужды, при этом основной кодовой базой и инфраструктурой делится между всеми.

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

В Django мульти-тенант реализовывается довольно часто и для этого есть библиотека django-multitenant.

Читать далее
Total votes 9: ↑8 and ↓1+11
Comments2

«Мягкое внедрение», или Как работать с сопротивлением при внедрении изменений

Level of difficultyEasy
Reading time17 min
Views6.6K
image

Вы когда-нибудь видели аттракцион «Пьяный велосипед»? Принцип этого аттракциона — это управление наоборот. То есть, когда ты поворачиваешь руль налево - колесо поворачивается направо. 99% людей, которые впервые садятся на этот велосипед, не могут проехать и двух метров.

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

Итак, сопротивление - это когда подчиненная структура, либо вообще не реагирует на посылаемые в нее управленческие сигналы (задачи, приказы,…), либо реагирует с внесенными от себя правками, либо реагирует с серьезным опозданием.


3 вида сопротивления


1. Подчиненная структура не реагирует на ваше распоряжение


То есть, ваш приказ или поручение не исполняются вообще. Это редко имеет вид прямого саботажа и отказа от выполнения. Сотрудники же не совсем дураки, чтобы прямо «идти на танки». Конечно нет. Зачастую это происходит в более тонкой и замаскированной форме. Например, все соглашаются, что задание нужно выполнить и при этом, никто его не выполняет. На ваш вопрос «Почему?», появляется десяток аргументов и причин, по которым выполнение было нереальным. Все это проводится так, чтобы максимально показать себя «мучениками» и «заложниками ситуации». То есть, невиновными.
Читать дальше →
Total votes 12: ↑6 and ↓6+2
Comments7
1
23 ...

Information

Rating
Does not participate
Registered
Activity