Как стать автором
Обновить
7
0
Максим @Max_JK

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

Отправить сообщение

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

Время на прочтение 11 мин
Количество просмотров 19K


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

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

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

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


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

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

Время на прочтение 28 мин
Количество просмотров 25K


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


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

Читать дальше →
Всего голосов 196: ↑196 и ↓0 +196
Комментарии 57

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

Время на прочтение 4 мин
Количество просмотров 35K

Что?


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


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

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

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

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

Время на прочтение 11 мин
Количество просмотров 76K

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

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

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 64: ↑61 и ↓3 +58
Комментарии 6

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

Время на прочтение 15 мин
Количество просмотров 5.1K

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

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

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

Читать далее
Всего голосов 20: ↑19 и ↓1 +18
Комментарии 10

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

Время на прочтение 3 мин
Количество просмотров 12K


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

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

Время на прочтение 7 мин
Количество просмотров 12K

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

Читать далее
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 4

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

Время на прочтение 8 мин
Количество просмотров 50K

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

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

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

Время на прочтение 11 мин
Количество просмотров 59K

Я недавно сделал себе небольшой апгрейд и у меня появился монитор 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.

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

Читать далее
Всего голосов 143: ↑143 и ↓0 +143
Комментарии 135

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

Время на прочтение 8 мин
Количество просмотров 59K

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

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

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

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

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

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

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

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

Время на прочтение 6 мин
Количество просмотров 11K

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

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

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

Время на прочтение 10 мин
Количество просмотров 27K

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

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

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

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

Поехали!
Всего голосов 37: ↑37 и ↓0 +37
Комментарии 13

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

Время на прочтение 3 мин
Количество просмотров 171K

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

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

Читать далее
Всего голосов 26: ↑24 и ↓2 +22
Комментарии 18

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

Время на прочтение 3 мин
Количество просмотров 39K

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

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

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

Читать далее
Всего голосов 58: ↑20 и ↓38 -18
Комментарии 71

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

Время на прочтение 6 мин
Количество просмотров 13K

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

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

Читать далее
Всего голосов 76: ↑72 и ↓4 +68
Комментарии 149

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

Время на прочтение 6 мин
Количество просмотров 13K

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

Читать далее
Всего голосов 26: ↑26 и ↓0 +26
Комментарии 32

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

Время на прочтение 5 мин
Количество просмотров 23K

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

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

Читать далее
Всего голосов 14: ↑12 и ↓2 +10
Комментарии 2

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

Время на прочтение 5 мин
Количество просмотров 12K

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

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

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

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

Размышления простого админа
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 9

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

Время на прочтение 5 мин
Количество просмотров 16K

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

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 11

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

Время на прочтение 8 мин
Количество просмотров 9.4K

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

Читать далее
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 38
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность