Pull to refresh
35
0

Разработчик

Send message

Я: экстремально композиционный язык программирования

Level of difficultyMedium
Reading time3 min
Views12K

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

Читать далее

Оптимизация SQL запросов

Level of difficultyMedium
Reading time6 min
Views26K

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

Читать про оптимизацию

Как типы делают сложные задачи простыми

Level of difficultyMedium
Reading time20 min
Views18K

Последнюю пару лет мой мозг программиста всё больше увлекался типами, принципами функционального программирования и Typescript. По большей мере на это повлияло огромное количество времени, потраченное мной на кодовую базу Heartbeat — фулстек-приложения из трёхсот тысяч строк на Typescript, включающего в себя веб-приложение React, мобильное приложение React Native и сервер Node.js. Мой опыт работы с этой кодовой базой показал мне, что чем больше я полагаюсь на систему типов, тем больше пользы из этого извлекаю.

Написание кода в кодовой базе, полностью сделавшей упор на типы, похоже на жульничество. Часто я могу реализовать 80% новой фичи, ни разу не запустив код. Я начинаю работать над крупным рефакторингом, требующим нарушить допущение, принятое во всём коде, но вскоре выясняю, что благодаря системе типов изменения оказываются тривиальными. Простые фичи практически кодируют себя сами, потому что опечатки мгновенно отлавливаются, а половина моего кода пишется автодополнением. На вопросы от команды техподдержки о тонкостях работы какой-то фичи можно ответить при помощи Ctrl+F в коде, даже если письменной документации почти нет. Целые категории багов, с которыми мне приходилось бороться, попросту исчезли.

Я начал называть стиль кодинга, позволяющий реализовать подобное, Type Driven Development. В статье я приведу разрозненные мысли и ссылки на ресурсы, сильно повлиявшие на то, как я понимаю type driven development.
Читать дальше →

Решаем проблему устаревания кэширующих серверов. Смотрим на телевизоре. Не VPN

Reading time3 min
Views98K

Не так давно всех потрясла новость об устаревании оборудования популярного видеохостинга, в результате чего сервис перестал нормально работать и началось замедление. Сначала в замедлении сервиса пытались обвинить Роскомнадзор, но до сих пор нет внятных нормативно-правовых актов (поправьте меня в комментариях, если я ошибаюсь), которые бы позволяли данному органу применять методы блокировки в отношении сервиса. Я не верю, что государственный орган может нарушать закон, поэтому будем исправлять проблему самостоятельно и поднимем свой «кэширующий» сервер.

В качестве нашего «кэширующего» сервера будем использовать дешевый одноплатный компьютер MangoPi MQ-Quad (или другой аналогичный), стоимостью не более $29.

Читать далее

«Модная болезнь»: как распознать и предотвратить профессиональное выгорание

Reading time16 min
Views7.2K

Меня зовут Анна Бабич, я психолог, ACT-терапевт, руководитель Школы самооценки и автор телеграм-канала «Жить навстречу себе». В этой статье поговорим о способах распознать профессиональное выгорание — проблему, о которой, кажется, все знают, но попадают в ловушку снова и снова. Я расскажу, как выгорание ощущается внутри и как проявляется во внешней жизни, как его самостоятельно продиагностировать; разберу причины выгорания — какие звоночки вы упорно пропускаете; помогу определить пути, как выбраться из выгорания, если вы в него угодили, и какой должна быть профилактика.

Читать далее

SOLID. Проблема новичка

Level of difficultyEasy
Reading time5 min
Views20K

Здравствуйте, друзья! Меня зовут Константин, я python backend developer из компании «Окенит». Сегодня я хочу рассказать свое видение проблемы новичка при ознакомлении с принципами SOLID, описанными в книге «Стерильная Архитектура» Робина Мартерта.

За свой десятилетний опыт я часто был свидетелем ситуации, когда молодые разработчики, желая сделать свой проект как можно более открытым для расширения и редактирования, превращали его в груду нечитаемого и неподдерживаемого кода при попытке использовать у себя все рекомендации Матушки Роба. Отсюда вопрос: «Почему, при следовании советам более опытного разработчика, код стал только хуже?».

Ответ на этот вопрос пришел ко мне очень быстро. Из‑за описания и без того абстрактных вещей чересчур абстрактными словами и примерами, Робин Мартерта вместо упорядочивания знаний, наводит хаос в умы читателей. Во избежание этой ситуации я решил написать данную статью, где коротко расскажу о наборе принципов SOLID, для чего они нужны и, главное, как применять эти принципы в жизни. Начнем по порядку, с буквы «S». И так, что же она значит?

Читать далее

Библиография киберпанка

Level of difficultyEasy
Reading time17 min
Views15K

Если вас всё ещё преследует вопрос о том, что бы почитать в жанрах протокиберпанк, киберпанк и посткиберпанк, гляньте одним глазком в мой библиографический обзор. Почти уверен, там есть книги, которые вы ещё не прочли. Не верите? Проверьте!

Читать далее

Анализируем простейший усилитель

Level of difficultyMedium
Reading time26 min
Views29K
В настоящей статье я хочу рассмотреть и проанализировать широко известную и подкупающую своей простотой минимальную схему усилителя на одном биполярном транзисторе:


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

Анализ задачи с собеседования в Google: конь и телефонные кнопки

Level of difficultyMedium
Reading time13 min
Views25K

Для начала я должен заявить: хотя собеседование кандидатов — это одна из моих профессиональных обязанностей, в этой статье представлены лишь личные наблюдения, истории и мнения. Они ни в коем случае не являются официальными заявлениями Google, Alphabet или любых других лиц или организаций.

Это была первая задача, которую я использовал в своей карьере собеседующего, она же первая утекла и была запрещена к использованию. Мне она нравится потому, что обладает очень приятными свойствами:

  • Её легко сформулировать и понять.
  • У неё есть множество решений, каждое из которых требует разной степени знаний алгоритмов и структур данных. Кроме того, здесь важны логические рассуждения.
  • Каждое решение можно реализовать в относительно малом объёме кода, поэтому она идеальна для ограниченных по времени собеседований.

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

История глазами араба XIV века

Reading time12 min
Views13K

Сегодня я предлагаю вам посмотреть на историю глазами Абу Зейда Абдуррахмана ибн Мухаммада аль-Хадрами, более известного под именем Ибн Хальдун.

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

· Именно он по поручению гранадского эмира вёл переговоры о мире с Педро Кастильским,

· Он занимал высокие посты при дворе султана Туниса,

· Был письмоводителем при дворе султана Феса,

· Вёл переговоры между египетским султаном и Тамерланом,

· Многократно занимал должность верховного кади (верховного судьи) маликитов.

Читать далее

Как отличить хорошего врача от посредственного

Reading time8 min
Views26K
image

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

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

Рейтинг и отзывы говорят либо о качестве врача, либо о том, как маркетологи их накручивают.

Сами по себе отзывы пациентов говорят о том, насколько хорошо врач умеет презентовать лечение, то есть, по сути, пускать пыль в глаза. Ну или это можно назвать софт-скилами.

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

Большие и чёрные (ящики): что мы знаем о том, как «думают» нейросети?

Level of difficultyMedium
Reading time30 min
Views64K

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

Узнать →

Как я собрал солнечную станцию своими руками: детальный обзор компонентов и процесса сборки

Level of difficultyMedium
Reading time7 min
Views15K

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

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

Читать далее

Подборка игр с низкоуровневым программированием

Level of difficultyEasy
Reading time5 min
Views37K

TL;DR

Игры от Zachtronics:

TIS-100, EXAPUNKS, SHENZHEN I/O

Про создание процессора от логических элементов и до написания кода на ассемблере: браузерная бесплатная nandgame.com, более продвинутая Turing complete.

Если Вам нравится какая-то игра из перечисленных - наверно, и остальные тоже подойдут. В каждую из них я наиграл по 30+ часов, получил кучу удовольствия и научился чему-то новому.

Подробности

Замедление YouTube с технической стороны: ограничение и обход

Reading time5 min
Views445K

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

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

Сразу скажу, что буду говорить обо всём, что известно на данный момент. Понятно, что с этим разбирался далеко не один я: огромное спасибо обывателям ntc party форума за проделанный ресёрч.

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

UPD 10.08.2024 Многие жалуются на недоступность ютуба в целом: не грузит домашнюю страницу. Переживать не стоит, оно обрабатывается всё тем же ТСПУ по всё той же стратегии, обходы должны работать.

Читать далее

Популярная задача на собеседовании: сотрудники с максимальной зарплатой в отделе

Level of difficultyMedium
Reading time8 min
Views107K

Кто ходил на собеседования по устройству на работу, тот знает, спрашивают там всякое и странное. Нередко можно встретить задачу SQL по нахождению сотрудников с максимальной зарплатой в отделе. Причем ваш потенциальный начальник считает, что у этой задачи есть только одно «правильное решение», то, про которое он прочитал в Интернете. Так ли это?

Любопытно...

Микросервисы в представлении среднего разработчика, и как всё на самом деле

Level of difficultyMedium
Reading time11 min
Views66K

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

Когда спрашиваю у людей на собесах, или когда в команде решаем, как клепать очередной проект, такое порой слышу, что становится страшновато. Мне кажется, лет через 5 все компании будут обитать в мультивселенной безумия из “микросервисов”, которую они себе радостно построили, уходя от этих ваших страшных “монолитов”.

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

погрузиться в микросервисы

Превращаем Android-смартфон в USB-клавиатуру, мышь и флешку

Level of difficultyHard
Reading time29 min
Views31K

Android-смартфон при подключении к компьютеру через USB может выглядеть как медиаустройство, модем или хранилище файлов. В этой статье мы научимся делать из него USB-клавиатуру, мышь и флешку.
Читать дальше →

Принципы SOLID, только понятно

Level of difficultyEasy
Reading time6 min
Views98K

Когда я только знакомился с принципами SOLID, я искал понятные статьи на Хабр. При этом пришлось прочитать не одну статью, и полное понимание пришло сильно позже. Хотелось бы, чтобы новички на более простых примерах смогли почувствовать, о чем эти принципы.

Изучить принципы

Энциклопедия контроллеров и обучающий проект (на Хабре)

Level of difficultyEasy
Reading time7 min
Views17K


Я давно занимаюсь микроконтроллерной тематикой и делюсь своими изысканиями (частью изысканий) в блоге на Хабре. Делаю я это довольно давно и количество статей уже перевалило за сотню, и, в полном соответствии с воззрениями (старины) Гегеля, количество явно переросло в качество.

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

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

Итак…
Читать дальше →
1
23 ...

Information

Rating
5,617-th
Location
Plovdiv, Plovdiv, Болгария
Registered
Activity