Pull to refresh
28
0

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

Send message

Нельзя предполагать, что все используют UTF-8

Level of difficultyMedium
Reading time6 min
Views17K
Как вычислять кодировку при помощи статистики

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

По крайней мере, в таком положении вещей есть, кого винить: Бога. Ведь именно он вынудил человечество говорить на разных языках из-за древнего спора о строительстве объекта недвижимости.

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

И одна из самых больших проблем одновременно является самой простой: компьютеры не договорились о том, как записывать буквы двоичным кодом.
Читать дальше →
Total votes 63: ↑63 and ↓0+69
Comments92

Воспитай свой второй мозг. Увеличь продуктивность

Reading time9 min
Views72K

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

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

Звучит прекрасно, не так ли? Может, когда‑то и казалось сказками, однако не сейчас.

Хочу всё знать!
Total votes 70: ↑63 and ↓7+56
Comments111

Основы Интернета

Reading time7 min
Views47K

Есть такая интересная книга – «High Performance Browser Networking» Ильи Григорика, в которой описаны основы работы сетей и способы оптимизации передачи данных. В этой книге автор пишет про CDN следующее:

Сервисы по доставке контента (CDN) приносят много пользы, но основаны они на простом наблюдении, что, распределив контент по всему земному шару и доставляя его к пользователю из точки, которая как можно ближе к нему, можно значительно уменьшить время загрузки.

Если подумать, то наверное можно согласиться с тем фактом, что CDN улучшают UX, потому что ускоряют загрузку сайта. Но... минуточку. А как именно CDN это делает?

Вы можете сказать: «Ну, когда пользователь запрашивает файлы с CDN, они загружаются с ближайшего к пользователю сервера. Легко и просто». Да, но ведь эти данные загружаются всегда с одного домена. Как тогда запрос может приходить на разные сервера?

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

Начнём с проводов
Total votes 51: ↑47 and ↓4+43
Comments15

Как создать cloud-init шаблон ОС Astra Linux в Proxmox

Reading time3 min
Views17K

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

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

Невыжившие в IT

Reading time7 min
Views200K

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

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

Я опишу типичные ошибки тех, кто не выжил. И, соответственно, не вошёл в ИТ. Всё из опыта личных наблюдений.

Да, если «тут всё неправда», «а вот мой друг Коля успешно…» или «а у меня получилось» - прекрасно, текст не про вас и не для вас. Вы и ваш друг Коля – выжившие.

Читать далее
Total votes 362: ↑349 and ↓13+336
Comments447

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

Reading time9 min
Views86K

За последние 10 лет я поменял 3 работы, прособеседовался с 10+ компаний на позицию разработчика (software engineer) и вел переписку с HR/рекрутерами из нескольких десятков фирм. По ходу дела заметил, что вопросы, которые я задаю на собеседовании с менеджером/командой или с HR, повторяются, и решил их структурировать. Некоторые из них являются общими, и их может задать кандидат на почти любую вакансию; другие касаются только вакансий для программистов. В этой статье поделюсь с вами наиболее типичными и важными вопросами, которые, на мой взгляд, может задать соискатель потенциальному работодателю.

Читать далее
Total votes 90: ↑84 and ↓6+78
Comments70

Российское ПО или каково пить сладкий чай без сахара

Reading time7 min
Views56K
Этот велосипед формально на ходу, на нём можно приноровиться ездить. С потерями и ранами, но можно. А нужно?

Когда-то давно я решил пить чай и кофе без сахара. На первых порах было очень сложно и выручал дорогой сахарозаменитель в микротаблетках: 2 штуки и прямо сладко. Очень быстро я стал замечать, что вкус напитков испортился, появилась какая-то неприятная, неописуемая химозинка, которая потом долго держалась во рту и вызывала жажду. Попробовал другой — тот же эффект. В итоге после пары месяцев мучений, стевии и прочих сладких добавок я стал наслаждаться всеми видами чая без сахара, а кофе бросил и пью редко, но с обычным сахаром — вкусно! И если вы думаете, что статья про лишний вес или сахарный диабет, вы ошиблись. Статья про заменители. Точнее, про российское программное обеспечение. Как вы поняли, и сладко, и, похоже, но есть та самая химозинка. Из-за которой противно употреблять. Попробуем разгадать её формулу.

Я нашёл девять слагаемых этой формулы. И они меня, откровенно говоря, опечалили. Скажу сразу, я субъективен и не работал с ПО всех типов и не говорю, что все в чём-то нехороши — например, я видел удачные российские системы управления сервисом, ITSM, CRM, ERP, BPMS и т.д. Но и в эти добротные системы проникает особый дух отечественной разработки, отчасти связанный с пожеланиями пользователей. Впрочем, обо всём по порядку.
Читать дальше →
Total votes 125: ↑101 and ↓24+77
Comments117

Микросервисы и неизбежная боль?

Reading time20 min
Views31K

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

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

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

Рекомендации по созданию RSS-фидов

Reading time11 min
Views8.6K

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

Форматы


Люди обычно называют фиды «RSS-фидами», но часто они не имеют в виду конкретно RSS. RSS — это не единственный и даже не самый лучший формат. Использование стандартизованного формата очень важно для того, чтобы ваш фид понимало максимальное количество ридеров и поисковых движков.

Вам нужно использовать RSS 2 или Atom. Эти форматы имеют очень широкую поддержку. Среди других популярных форматов более старые стандарты RSS и JSON Feed или Microformats h-feed. Я буду избегать использовать их или менее популярные форматы, потому что их поддержка не так широка.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments1

Быть тим-лидом: ожидания и реальность

Reading time7 min
Views17K

Выводы о том, какого тим-лида ценит и команда, и клиент. Баланс качества и сроков, прогноз рисков и список задач, который поможет вам не стать мелким тираном <3

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

TalkPython: лучшие пакеты Python по итогам 2021 года

Reading time14 min
Views23K

На КДПВ в гостях у TalkPython вы видите Гвидо ван Россума — создателя Python, Марка Шеннона, план ускорения Python в 5 раз за 4 года и, конечно, автора подкаста. А мы делимся подборкой пакетов Python, о которых шла речь в выпусках за уходящий год.

Читать далее
Total votes 23: ↑22 and ↓1+21
Comments8

Как мы лажали, открывая очередное юрлицо — на этот раз в США

Reading time11 min
Views18K


Я тут открывал юрлицо в США и сделал всё по инструкции «как не облажаться», но облажался. Уже в новых местах, не предусмотренных инструкцией.

Главная инструкция вот тут, она написана не юристом, но сами юристы подтверждают, что получилась хорошая и на неё же ссылаются, когда нужно быстро ввести в курс дела новичка. Список того, где уже облажались русские участники УКомбината — вот.

Проект внезапно созрел и нужно было пустить инвесторов. Команда немного размазана по планете, поэтому всем было примерно всё равно, где регистрироваться. Есть вообще типовой стартаперский набор: Кипр, прибалты, США, Сингапур, Люксембург. Но не пофиг было российскому стратегу, одному из инвесторов, он хотел на родине. При этом американское корпоративное правило наиболее гибкое + накоплена большая база прецедентов, то есть оно ещё и предсказуемое. А в штате Делавер наиболее квалифицированный суд, и его решения — просто золотой стандарт отрасли. То есть если у вас есть иностранные инвесторы, стоит выбор между Европой, Кипром и США. Из Латвии и Эстонии тяжело выскакивать при росте компании (и за сладкий старт придётся платить условиями дальше), Кипр хорош, но венчурные инвесторы часто ассоциируют его с «русские что-то там мутят», поэтому Делавер.

Поскольку у нас ИТ-бизнес в России, и мы знаем правила ведения ИТ-бизнеса в России, план был такой:

  1. Уговаривать стратега на любую зарубежную юрисдикцию (а для них бы это был первый опыт инвестиций в зарубежный проект);
  2. Как только они дадут добро, за недельку зарегистрироваться, например в Делавере, и принять деньги.

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

Но нет. Переходим к мякотке.
Читать дальше →
Total votes 83: ↑81 and ↓2+79
Comments11

3D моделирование в Python

Reading time21 min
Views77K

Допустим, вам потребовалось на языке программирования python, построить трёхмерную модель некоторого объекта, затем визуализировать его, или подготовить файл для печати на 3D принтере. Существует несколько библиотек, помогающих в решении этих задач. Поговорим о том, как строить трёхмерные модели из точек, граней и примитивов в python. Как выполнять элементарные приемы 3D моделирования: перемещение, поворот, объединение, вычитание и другие.

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

Продвинутое компьютерное зрение. Введение в Прямое визуальное отслеживание

Reading time9 min
Views12K

Задача отслеживания объектов на изображении - одна из самых горячих и востребованных областей ML. Однако уже сейчас мы имеем огромное разнообразие различных техник и инструментов. Данная статья поможет начать Ваш путь в мир компьютерного зрения!

Сперва, мы представим некоторые типы методов визуального отслеживания. После, мы объясним как классифицировать их. Мы также поговорим о фундаментальных аспектах прямого визуального отслеживания, уделяя особое внимание методам, основанным на регионах, и методам основанным на градиентах. В будущих статьях мы представим подробный математический вывод алгоритма Лукаса-Канаде с акцентом на выравнивание изображений. И наконец, мы представим, как реализовать эти методы в Python. Давайте начнем!

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

Делаем сервер из Android-телефона

Reading time8 min
Views118K

Некоторое время назад мне пришла в голову интересная идея — превратить свои старые телефоны (их скопилось немало за десять лет) в серверы, в качестве альтернативы покупке Raspberry Pi.


image


На то было несколько причин: во-первых, у телефонов есть батарея, что для сервера практически бесплатный мини-UPS, во-вторых, внутренняя память смартфона (UFS) работает быстрее и надёжнее, чем SD-карта. В-третьих, у телефонов имеется экран, по которому можно отслеживать состояние сервера.


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


TL;DR: в этом посте будут разобраны вопросы установки PostmarketOS на смартфон,
поднятия на нём в качестве примера Docker и веб-приложения в нём.

За длинной версией под кат
Total votes 130: ↑129 and ↓1+128
Comments97

Анти-Factorio

Reading time4 min
Views31K

Приветствую, хабровчане! Эх, чувствую, заминусуют меня сейчас некоторые добрые люди... Однако как говорится, истина дороже, а риск дело благородное. Поэтому рискну. Начну с того, что я ни разу не геймер, мне кодить интереснее (а ещё интереснее разбираться во всяких хитромудрых железяках). Изредка играл в Цезаря, до того в Цивилизацию. Но после прочтения вот этой статьи захотелось посмотреть, что же это за штука такая Factorio. И что-то основательно на неё залип, уже неделю отлипнуть не могу. Игра действительно очень качественная, мне угодить очень трудно. Но совершенно добил ютуб-канал одного доброго человека, где несчастных кусак и плевак жгут огнемётами в промышленных количествах и разносят в щепки гранатами деревья! Куда смотрит Гринпис! Где защитники прав насекомых ! Или они пока не добрались до других планет? И поскольку экологического звездолёта с Земли можно ждать ещё долго, придётся кусакам с плеваками самим позаботиться о защите себя и родной планеты.

Вы готовы сражаться ?
Total votes 50: ↑37 and ↓13+24
Comments63

Какие CSS-генераторы можно использовать в 2021 году

Reading time2 min
Views36K
image

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

Схема работы таких генераторов проста: достаточно ввести через простой визуальный интерфейс нужные вам параметры и на выходе получить готовые CSS-стили. Далее полученный код нужно скопировать и добавить в свой проект.

Известный full-stack разработчик Марко Денич предлагает свою подборку лучших CSS-генераторов. Возможно, о каких-то из них вы не знали, и, познакомившись с ними сейчас, начнёте использовать в работе.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments9

Google захватывает Python

Reading time3 min
Views45K

Google объявили себя идейным спонсором Питона. Visionary Sponsor как они это называют. Начали они с того, что вчера перечислили в фонд Питона 350 тысяч долларов. На картинке как они видят себя и экосистему Питона. Гугл уже 10 лет спонсируют Питон, ничего нового вроде бы, но кроме нового термина они поставили новые цели:

План зохвата:
Total votes 90: ↑70 and ↓20+50
Comments81

Поддержание аккуратной истории в Git с помощью интерактивного rebase

Reading time5 min
Views42K

Interactive rebase — один из самых универсальных инструментов Git'а. В этой статье от автора Git-клиента Tower рассказывается, как корректировать сообщения при коммитах и исправлять свои ошибки.

Читать далее
Total votes 55: ↑54 and ↓1+53
Comments44

Коллеги, вы меня огорчаете

Reading time12 min
Views171K
В июле и августе 2020 года я, с подачи Григория Петрова, проводил для компании Evrone технические интервью на позицию Senior Golang Backend developer. И, видимо, буду вынужден продолжать проводить, о чём ниже.

Задача формулировалась как «найти человека, который сможет задать и поддерживать высокий уровень профессионализма в применении языка Go». То есть, сформулирована она была по-человечески, перевод на канцелярит — мой. Под эту задачу я сформировал новый опросник вместо того, которым пользовался несколько лет — старый был с жестким закосом под DevOps. Методику, которой я пользуюсь для создания опросников и количественной оценки соответствия кандидатов, я излагал в своем докладе «Техническое интервью как инженерная задача» на конференции Saint TeamLead 2019.

И вот что я хочу сказать вам, коллеги: вы меня огорчаете.


Читать дальше →
Total votes 181: ↑137 and ↓44+93
Comments1152
1
23 ...

Information

Rating
Does not participate
Registered
Activity