Pull to refresh
7
0
Максим @Max_JK

Джаваскриптизёр

Send message

Заблуждения программистов о тексте

Reading time11 min
Views19K


Возжелавший прильнуть к жанру вестернов обратится либо к десятой строчке топ-250 лучших фильмов по версии IMDb, либо уже будет обладать знанием, что начинать нужно с «Хороший, плохой, злой». Там он увидит жадных потных мужчин, которые заканчивают фильм напряжённым мексиканским противостоянием. Жалкая охота за золотом конфедератов разворачивается на фоне кровавых битв Гражданской войны между «Севером» и «Югом». Таким зритель запомнит вестерны как жанр.

В реальности «Хороший» — это не классика, а яркий представитель поджанра ревизионистских вестернов, снят в Европе и наоборот, критикует американскую идеологию направления. В нём нет ничего общего с картинами, где герой встаёт на защиту правильного и справедливого общества от злодеев или кровожадных индейцев. В пятидесятых и шестидесятых классический вестерн сошёл на нет, но в коллективном сознании критика быстро заместила критикуемый объект. Когда Марти Макфлай жалуется на анахронизм наряда, он сравнивает себя с антигероями Клинта Иствуда, а не бравыми ковбоями в исполнении Джона Уэйна.

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

Заблуждение 1. Любые символы, кроме управляющих, имеют предсказуемую ширину


В реальности ширина символов может отличаться даже в моноширных шрифтах.
Читать дальше →
Total votes 96: ↑96 and ↓0+96
Comments51

Игровой программный рендеринг в 2022-м году

Reading time28 min
Views25K


Программный рендеринг был широко распространён в играх на ПК до повсеместного распространения т. н. 3d-ускорителей (видеокарт). Каждая игра содержала свой собственный код рендеринга, каждая игра имела свои уникальные особенности в нём. Но с распространением видеокарт программный рендеринг в играх умер.


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

Читать дальше →
Total votes 196: ↑196 and ↓0+196
Comments57

Разбираемся в необычной проблеме с WiFi

Reading time4 min
Views35K

Что?


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


Из-за этого было невозможно пользоваться всем ПО для аудио-/видеозвонков и играть в большинство онлайн-игр.

Эта проблема возникла примерно во время моего переезда через всю страну из штата Вашингтон в Южную Каролину, поэтому было слишком много факторов, чтобы с лёгкостью выявить источник. Однако в основном проблема влияла только на игры и аудио-/видеозвонки, поэтому я особо не обращал на неё внимания.

На протяжении последней пары месяцев я постепенно пытался разобраться, что происходит, но до сегодняшнего дня мне этого сделать не удавалось.
Читать дальше →
Total votes 151: ↑149 and ↓2+147
Comments96

150+ хакерских поисковых систем и инструментов

Reading time11 min
Views77K

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

Пост состоит из 8 объемных разделов:

1. метапоисковики и поисковые комбайны;

2. инструменты для работы с дорками;

3. поиск по электронной почте и логинам;

4. поиск по номерам телефонов;

5. поиск в сети TOR;

6. поиск по интернету вещей, IP, доменам и поддоменам;

7. поиск данных об уязвимостях и индикаторов компрометации;

8. поиск по исходному коду.

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

Читать далее
Total votes 64: ↑61 and ↓3+58
Comments6

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

Reading time15 min
Views5.1K

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

Конечно же написать свою!

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

Читать далее
Total votes 20: ↑19 and ↓1+18
Comments10

Звуковой кейлоггер. Определяем нажатые клавиши по звуку

Reading time3 min
Views12K


Не секрет, что у каждой клавиши на клавиатуре — уникальное звучание, которое зависит от её расположения и других факторов. Теоретически, анализ спектрограммы позволяет отличить клавиши друг от друга, а по частотности нажатий определить, какому символу соответствует каждый звук. Задача распознавания звуков упрощается тем, что при наборе связного текста символы хорошо прогнозируются по словарю (а именно, по частотности n-грамм для текстов).
Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments20

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

Reading time7 min
Views12K

Каждая дипломная работа в Практикуме — самостоятельный проект. Здесь нет подробных вводных или подсказок — студенты сами ищут решения и пробуют разные подходы. И здесь нужны все знания, которые накопились за время прохождения курса, а может, даже чуть больше. Звучит серьёзно, но студентов трудности не останавливают. В этой статье расскажем, как команда выпускников курса «Мидл Python-разработчик» создала рекомендательную систему для онлайн-кинотеатра с нуля.

Читать далее
Total votes 14: ↑13 and ↓1+12
Comments4

Беспроводные технологии - это ловушка

Reading time8 min
Views51K

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

Например, большинство людей при торможении видеозвонков винят в этом провайдера Интернета. И это понятно, ведь большинство провайдеров — это олигополисты с дикими ценами, почти неработающим ПО и ужасной техподдержкой. Однако каждый раз, когда я помогал кому-то разобраться в источнике его проблем со связью, виновником оказывался его WiFi. И часто проще всего было решить проблему, проложив кабель.
Читать дальше →
Total votes 101: ↑99 and ↓2+97
Comments178

4k @ 144Hz: DP, HDMI, USB-C Alt-Mode & cables…

Reading time11 min
Views59K

Я недавно сделал себе небольшой апгрейд и у меня появился монитор 4k@144Hz. Разумеется, на 144Hz он не заработал. Потому что нюансы. Мне пришлось в это нырнуть глубже, чем хотелось бы...

Спойлеры: DP, USB-C Alt-mode, Thunderbolt, USB4 3x2, 40Gbps, HDMI.
Оглавление: кабели, протоколы, режимы.

Лыдыбр: Моя старая видеокарта на компьютере сумела завести его на 4k @ 60Hz с помощью Display Port. (Либо 2k @ 144Hz). Это её техническое ограничение, больше она не может. Дальше я попытался воткнуть в монитор ноутбук (все 5 шт, какие нашлись у меня и знакомых) и обнаружил, что всё настолько сложно, что мне потребовалось несколько заходов чтения спецификации, пока я "это завёл". Выписываю свои наблюдения и эксперименты. Актуальность - первая половина 2022 года. Монитор under study - Gigabyte M32U, хотя, в принципе, это не существенно для обсуждаемого вопроса. У монитора разъёмы HDMI, DP, USB-C.

Разбирать проблему я буду слоями. Начём с физики.

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

Миллион одновременных соединений

Reading time8 min
Views59K

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

Адрес TCP/IP поддерживает только 65000 подключений, поэтому придётся назначить этому серверу примерно 30000 IP-адресов.

Существует 65535 номеров TCP-портов, значит ли это, что к TCP-серверу может подключиться не более 65535 клиентов? Можно решить, что это накладывает строгое ограничение на количество клиентов, которые может поддерживать один компьютер/приложение.

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

Поэтому я написал эту статью, чтобы развеять данный миф с трёх сторон:

  1. Мессенджер WhatsApp и веб-фреймворк Phoenix, построенный на основе Elixir, уже продемонстрировали миллионы подключений, прослушивающих один порт.
  2. Теоретические возможности на основе протокола TCP/IP.
  3. Простой эксперимент с Java, который может провести на своей машине любой, если его всё ещё не убедили мои слова.

Если вы не хотите изучать подробности, то перейдите в раздел «Итоги» в конце статьи.
Читать дальше →
Total votes 103: ↑101 and ↓2+99
Comments27

Упрощаем мониторинг и управление контейнерами Docker при помощи инструментов CLI

Reading time6 min
Views11K

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

В этой статье мы сосредоточимся на некоторых простых и эффективных инструментах CLI, которые помогут вам контролировать и управлять контейнерами Docker.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments0

Пет-проекты, которые зашли слишком далеко

Reading time10 min
Views27K

Обычно пет-проект — это что-то такое для души, на несколько вечеров в свободное от работы время. Зачастую никому, кроме его создателя, не нужное. Но бывают случаи, когда всё заходит куда дальше, неожиданно для самого разработчика. Подобные пет-проекты могут стать коммерчески успешными, а могут культовыми, но не приносящими денег. А еще они могут кардинально изменить жизнь своего автора.

Elasticsearch вырос из простого приложения для рецептов, которое сделал для своей жены Шей Бэнон. Сейчас это флагманский продукт всемирно известной компании. Когда в 1991-м году Линус Торвальдс известил мир о появлении Linux, то написал: «just a hobby, won't be big and professional». Что в итоге получилось, мы все знаем.

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

В этой подборке расскажем о самых разных пет-проектах — странных и полезных — и об их создателях. 

Поехали!
Total votes 37: ↑37 and ↓0+37
Comments13

Какие вопросы задать работодателю на собеседовании?

Reading time3 min
Views172K

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

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

Читать далее
Total votes 26: ↑24 and ↓2+22
Comments18

А что будет, если…? Какой софт используем

Reading time3 min
Views39K

Слово «кризис» для нас уже давно не звучит таким пугающим, как при первой с ним встрече.

Но ситуация в 2022 году оборачивается серьёзнее. На 6 марта 2022 года мало кто понимает, что будет дальше и что ожидать ИТ-компаниям. С рынка уже ушло множество зарубежных сервисов и платформ, и с каждым днем всё больше крупных зарубежных игроков ИТ-рынка приостанавливают свою работу в РФ.

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

Читать далее
Total votes 58: ↑20 and ↓38-18
Comments71

Невесомость и пустота

Reading time6 min
Views13K

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

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

Читать далее
Total votes 76: ↑72 and ↓4+68
Comments149

Выжимаем максимум с домашней СЭС. Трекеры, оптимизаторы, и прочее. Часть 2

Reading time6 min
Views13K

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

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

Как запустить Jupyter Notebook в браузере без бэкенда

Reading time5 min
Views23K

К старту нашего флагманского курса по Data Science представляем перевод обзора JupyterLite прямо из блога его разработчиков. JupyterLite — это перезагрузка множества попыток создать полный статический выполняемый в браузере дистрибутив Jupyter, чтобы не было необходимости запускать сервер Jupyter.

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

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

Nginx. О чем не хотелось писать

Reading time5 min
Views12K

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

Наследование директив в nginx - это классная штука. Именно наследование позволяет писать простые и понятные конфиги. При слиянии конфигураций значение директивы и её функциональность переходит из вышестоящего контекста в текущий. Логично, что наследование не происходит от параллельных контекстов, например от соседнего location или if.

Вроде бы всё хорошо. Пока не возникают исключения.

N.B.: Здесь и далее описывается работа с nginx версии 1.21.1 (если не указано иное). Всё сказанное основывается лишь на опыте и ошибках автора. Вместе с тем автор не является разработчиком nginx и даже его маститым сварщиком, поэтому не стоит принимать слова автора как догму, а, наоборот, подвергать сомнению и самостоятельному тестированию.

Размышления простого админа
Total votes 20: ↑20 and ↓0+20
Comments9

Адаптивные изображения. Что использовать: img или picture?

Reading time5 min
Views16K

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

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

Природа музыкальных ощущений. Родство звуков

Reading time8 min
Views9.4K

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

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

Information

Rating
Does not participate
Registered
Activity