На Хабре нередко встречаются статьи о том, как запустить веб-сервер на старом смартфоне. В принципе, здесь ничего сложного, тем более что современные телефоны — это мощнейшие компьютеры с многоядерными CPU и гигабайтами оперативной памяти. Даже на самом стареньком смартфоне больше памяти (встроенная флэш-память), чем на промышленном сервере 20-летней давности, который ставили на профессиональный хостинг. На любой современный (даже старенький) смартфон можно поставить веб-сервер, если продел…
Хабр - не жалобная книга, я знаю. Но тут история про код, с примерами, разбором антипаттернов и всё такое, поэтому я рискну.Всё началось, когда я узнал про конкурс красоты кода от Сбера. Я как раз хотел поучаствовать в каком-нибудь эпичном конкурсе, а тут он мне и подвернулся, тем более что я - тот человек, которому есть что рассказать про красивый код. Я даже целую статью запилил о том, как писать красивый и понятный код. Так что я решил, что в данном случае мои шансы на победу - в отличие от…
На Хабре регулярно публикуются зарплатные исследования сервисов для поиска работы. Данные одних основываются на зарплатах, которую предлагают работодатели в вакансиях. Другие же анализируют зарплаты, которые указали в анкетах сами IT-специалисты. Эти исследования учитывают зарплаты только внутри России, но с февраля 2022 года сотни тысяч айтишников России (и не только) уехали в другие страны. Многие из них нашли работу в новых странах, но кто-то продолжил работать на компанию из родной страны.…
Алгоритмы важны. Но реализовать их можно очень по-разному. При одном и том же алгоритме, оптимизированная библиотека будет в тысячу раз быстрее наивной. Любите оптимизации, специализированные структуры данных и трюки с битами? Тогда скорее под кат! Интро Алгоритмы на сегодня: A-star и greedy BFS. Оба отлично разобраны в статье Introduction to the A* Algorithm. Поиск пути мне понадобился в игре Roboden. Написана она на Go с использованием движка Ebitengine, соответственно и библиотеку я искал …
Что же такое Алгебраические Типы Данных(Algebraic Data Types(ADT))? Обычно определение состоит из терминов теории типов и обязательно с примером на Haskell. Но на практике всё не так сложно.Типы данныхСначала разберемся с типами данных в общем случае.Тип данных - это допустимое множество всех значений именнованой абстракции.НапримерСамый простой тип данных bit. Его значения: {0, 1}.Тип bool = {true, false}.Тип byte = {0,1,..,255} или {-128, -127,…, 127} или {ASCII Table}Обычно на уровне языка …
Ручные изменения в кластере доставляют одну лишь головную боль. А чтобы от них избавиться, используются операторы, в частности K8s. Что это такое? И самое главное, как его написать?Меня зовут Дмитрий Самохвалов, я архитектор в компании КРОК. Пробовал себя в разработке, инфраструктуре и тимлидерстве. Расскажу про архитектуру и внутреннее устройство оператора и покажу как создать свой оператор на Go. Все остальные вопросы можно задать мне в Телеграм.Что такое облачный сервис-провайдер?Один из пр…
Привет, Хаброжители! Лучший способ улучшить код — понять и исправить ошибки, сделанные при его написании. В этой уникальной книге проанализированы 100 типичных ошибок и неэффективных приемов в Go-приложениях. Вы научитесь писать идиоматичный и выразительный код на Go, разберете десятки интересных примеров и сценариев и поймете, как обнаружить ошибки и потенциальные ошибки в своих приложениях. Чтобы вам было удобнее работать с книгой, автор разделил методы предотвращения ошибок на несколько …
Хочу рассказать о небольшом кейсе, связанном с работой реактивности во Vue 3. Кейс касается взаимосвязи ref/reactive, v-for/v-if, :class, функций и того, что у нас находится в <template>. Сразу оговорюсь, что под капотом не смотрел, поэтому детальных объяснений не ждите. Наоборот, хотелось бы услышать ваши мнения, сталкивались ли вы с подобными сайд эффектами.Представим что у нас есть реактивная переменная, внутри которой находится пустой массив.const arr = ref([]);В этот массив по клику…
Всем привет!Поделюсь с Вами моим первым опытом в создании двумерных браузерных игр. В деле этом я новичок, поэтому прошу не судить строго. Статья рассчитана в основном на изучающих JavaScript, а также тех, кто, как и я, делает первые шаги в мир игровой индустрии.Статья представляет собой перевод одного англоязычного видеоурока. Если Вы хорошо владеете английским и Вам больше нравится видеоформат подачи материала — можете посмотреть видео. В статье же я буду вставлять участки кода и стараться т…