Pull to refresh
70
0

Поедатель зефира в шоколаде

Send message

Чему люди научились у компьютеров

Level of difficultyEasy
Reading time6 min
Views8.4K

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

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

Вот некоторые примеры, как изменилась наша жизнь под влиянием компьютерных алгоритмов. Речь о чертах характера, моделях поведения и восприятии окружающего мира.
Читать дальше →
Total votes 51: ↑46 and ↓5+41
Comments15

Пианино в 24 строки на Javascript: если играть, то музыку

Reading time6 min
Views55K
Пока производители телефонов меряются, у кого тоньше, программисты продолжают меряться, у кого короче.

Я тоже решил принять участие в этой специальной спонтанной олимпиаде кодерского мастерства, и вспомнил фразу одной моей подруги-музыканта: «Если уж играть, то на пианино». И решил: да будет так. Вместо игры напишу пианино. И написал.

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

Итак, начнем.

Клавиатура классического фортепиано состоит из 88 клавиш, покрывающих диапазон от A0 (Ля суб-контр-октавы, частота звучания 27.5 Гц) до C8 (До пятой октавы, частота 4186 Гц). Каждая октава на клавиатуре состоит из двенадцати нот:
До, До-диез, Ре, Ре-диез, Ми, Фа, Фа-диез, Соль, Соль-диез, Ля, Ля-диез/Си-бемоль, Си. Жирным выделены клавиши верхнего ряда, они на клавиатуре обычно бывают черного цвета.

Собственно, вот так выглядит одна октава:

image

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

Nx = N1 × 2x-1, где:
  • N – название ноты;
  • x — номер октавы (от 0 до 8);
  • Nx, соответственно, частота звука, соответствующая ноте N октавы x;

В формуле фигурирует N1 вместо N0 лишь потому, что часть нот суб-контр-октавы (N0) имеет частоту звучания ниже порога слышимости человеческим ухом (< 20 Hz).

Чтобы ноты получались чистыми, нам нужны достаточно точные значения частот нот контроктавы, от которой мы начинаем считать. Собственно, вот они:
Читать дальше →
Total votes 119: ↑96 and ↓23+73
Comments54

Что не так с Raspberry Pi

Reading time8 min
Views192K


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

Постараюсь рассказать о некоторых вопросах, с которыми я столкнулся лично, а также о некоторых типичных проблемах, которые чаще всего появятся у людей, ничего не подозревающих об этом. И, наконец, почему я не рекомендую Pi для некоторых приложений, в частности, NAS-услуг, таких как NextCloudPi и Open Media Vault. Надеюсь, это сэкономит мне время, чтобы не повторять всё это на форумах.
Читать дальше →
Total votes 120: ↑115 and ↓5+110
Comments144

Простая программная генерация видео и картинок без стороннего API

Reading time5 min
Views7.5K

В этой статье я покажу простой способ генерации видео программами на Python и C/C++ без использования стороннего API. Вам так же потребуется ffmpeg, без него вы не сможете конвертировать файлы в читаемые форматы!

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

Приручение черного дракона. Этичный хакинг с Kali Linux. Часть 4. Сканирование и типы сканирования. Погружение в nmap

Reading time5 min
Views30K

Приветствую тебя, дорогой читатель, в четвертой части серии статей «Приручение черного дракона. Этичный хакинг с Kali Linux».

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

Как ты вероятно заметил, большая часть инструментов применяемых нами в прошлый раз, это различные сканеры, которые ищут определенную информацию об интересующем нас объекте используя различные подходы. Условно весь процесс сканирования можно разделить на несколько типов (методов):

1) Сканирование сети в целях построения ее карты и понимания того, какие устройства кроме нашего в нем присутствуют (например, как мы это делали утилитой arp-scan).

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

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

Изучаем троянскую повестку с мимикрией под XDSpy

Reading time8 min
Views8.3K

В ходе постоянного отслеживания угроз ИБ утром 3 октября в одном из Telegram-чатов мы заметили промелькнувший файл со злободневным названием Povestka_26-09-2022.wsf. Беглый осмотр содержимого привлек наше внимание, и мы решили разобрать его подробней. И, как оказалось, не зря.

Подробности под катом
Total votes 17: ↑17 and ↓0+17
Comments8

Кто-то притворяется мной

Reading time12 min
Views47K


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

Привет, Коннор!

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

И вот что он, как выяснилось, делает: находит вакансии с работой по контракту, притворяется кем-нибудь из настоящих разработчиков с опытом, соответствующим требованиям в вакансии, и хочет, чтобы я проходил собеседования от лица этого разработчика. В данном случае он нашел вакансию разработчика, владеющего Laravel/React, поискал кандидатуры и решил стать тобой. Он еще и создал фальшивую почту, похожую на твою (найдешь в прикрепленном файле), для общения с клиентами.

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

Удачи,
Эндрю.

Читать дальше →
Total votes 127: ↑124 and ↓3+121
Comments65

Написание ОС с нуля: Глава 2, Часть 3 — Терминал

Reading time4 min
Views5.6K

В предыдущей статье мы написали простейший загрузчик, печатающий на экран "Hello, World!" и завершающийся по нажанию клавиши. Сегодня напишем терминал, у которого будет несколько комманд, обновим библиотеку и сделаем ещё пару вещей.

Читать
Total votes 16: ↑16 and ↓0+16
Comments11

Самый по-человечески написанный учебник компьютерной архитектуры наконец-то выходит на русском языке и для RISC-V

Reading time9 min
Views74K

В 2015 году скачивания первого русского издания учебника Харрис & Харрис завалили сайт британской компании Imagination Technologies. Книгу стали использовать в МФТИ, ВШЭ МИЭМ, МГУ, МИЭТ, ИТМО и других вузах. С тех пор вышло еще два издания - для ARM и для MIPS, и вот в январе 2022 года выходит новое - для RISC-V и оно уже доступно для предзаказа.

"Цифровая схемотехника и архитектура компьютера: RISC-V" вероятно станет стандартным учебником в российских вузах, как и источником информации для тех, кто хочет попроектировать процессоры на ПЛИС. Ничего лучшего на рынке нет. Паттерсон-Хеннесси не привязан к курсам по языкам описания аппаратуры и не обсуждает тайминг цифровой логики, а Таненбаум устарел.

Кроме этого, архитектура RISC-V становится билетом в будущее для российских процессорных компаний - Ядро купило Syntacore, Байкал Электроникс инвестировал в CloudBear, Миландр выпустил микроконтроллер с архитектурой RISC-V.

Если же вы не хотите работать в российских компаниях, а хотите пройти интервью на проектировщика чипа в Apple, Intel, NVidia, то и в таком случае учебник Харрисов - это самый эффективный способ начать этот путь.

О Харрисах, содержание и почему RISC-V
Total votes 48: ↑42 and ↓6+36
Comments41

Модифицируем процесс загрузки с помощью утилиты make-initrd

Reading time18 min
Views26K

В этой статье мы хотим помочь глубже разобраться, как устроен процесс загрузки Linux, дать советы по реализации сложных сценариев загрузки Linux, а также познакомить с удобным и быстрым генератором initramfs образов - make-initrd.

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

Анализ теней: 5 примеров использования SunCalc для OSINT расследований

Reading time3 min
Views14K
image

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

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

Есть два проекта: SunCalc.org и SunCalc.net. Последний на досуге разработал хабраюзер Mourner в 2010 году и написал пост на Хабре, а через год выложил библиотеку в открытый доступ (а какой-то ушлый немец без упоминания автора её форкнул).

Под катом несколько примеров, как по теням на кадрах видео и фото можно вычислить недостающую информацию: местоположение или время.
Читать дальше →
Total votes 48: ↑42 and ↓6+36
Comments5

Полярная звезда

Reading time6 min
Views46K

Она указывает путь. Но лишь временно


image

Наверное это самая популярная звезда среди людей. Причем, ее популярность начала расти еще в те давние времена, когда Солнце за звезду не считали. Но если быть справедливым, то её “звездный час” наступил по историческим меркам относительно недавно, и по ним же — довольно скоротечен.

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

Чем же так знаменита Полярная звезда?

Читать дальше →
Total votes 128: ↑126 and ↓2+124
Comments37

MikroTik`s scripts спешат на помощь

Reading time4 min
Views17K

В статье показан пример практического анализа работы DDNS клиента, интегрированного в прошивку домашнего роутера, и его интерпретация на оборудовании MikroTik. Возможности RouterOS позволяют без труда выполнить всю необходимую работу. Если кому-то придется столкнуться с такого рода задачей, то держите решение, оно позволит сберечь ваше время и нервы.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments14

Твиттер Илона Маска в телеграме и с переводом на русский

Reading time5 min
Views9.1K

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

под кат
Total votes 9: ↑8 and ↓1+7
Comments18

Et tu, Brute? Что хотят от нас брутфорсеры?

Reading time16 min
Views18K

Каждый владелец сервера с «белым» IP-адресом наблюдал в логах бесчисленные попытки подключиться к серверу по SSH с разных точек мира. Администраторы ставят средства противодействия, такие как fail2ban, переносят SSH на другие порты и всячески пытаются защититься от брутфорсеров. Но чего же хотят эти замечательные люди от наших серверов?

Поверхностный ответ, конечно, прост: наживы на бесплатных вычислительных ресурсах и полученных чувствительных данных. Но этот ответ недостаточно подробный. Давайте разложим виртуальные «приманки» и проследим, что происходит, когда автоматический брутфорс оказывается успешным.
Читать дальше →
Total votes 84: ↑84 and ↓0+84
Comments32

Тихие убийцы бизнеса: найти и обезвредить

Reading time8 min
Views7.3K

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

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

Так откуда берётся пробоина?

Читать далее
Total votes 24: ↑19 and ↓5+14
Comments18

Лучшие практики написания комментариев к коду

Reading time7 min
Views12K

Известный профессор МТИ Гарольд Абельсон сказал: «Программы нужно писать для того, чтобы их читали люди, и лишь случайно — чтобы их исполняли машины». Хотя он намеренно преуменьшил важность исполнения кода, однако подчёркивает, что у программ две важные аудитории. Компиляторы и интерпретаторы игнорируют комментарии и с одинаковой лёгкостью воспринимают все синтаксически корректные программы. У людей всё иначе. Одни программы нам воспринимать легче, чем другие, и мы ищем комментарии, которые помогут нам разобраться.

Есть множество источников информации, помогающих программистам писать более качественный код — книги, сайты, статические анализаторы. Но гораздо меньше источников посвящено повышению качества комментариев. Легко измерить их количество в программе, но качество оценить сложно, и два этих параметра не обязательно взаимосвязаны. Плохой комментарий хуже отсутствия комментария. Вот несколько правил, которые помогут вам найти золотую середину.
Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments6

Анализ вредоносных программ. Интересные трюки

Reading time6 min
Views15K

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

В качестве первой публикации решил выбрать одну из любимых находок, которая попалась мне в октябре 2016 года. Речь идет об одной из первых реализаций интересной техники закрепления с помощью WMI "Event Triggered Execution: Windows Management Instrumentation Event Subscription" (T1546.003).

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

Тайна прошивок

Reading time11 min
Views28K
Авторы: к.ф.-м.н. Чернов А.В. (monsieur_cher) и к.ф.-м.н. Трошина К.Н.

Как с помощью самых общих предположений, основанных на знании современных процессорных архитектур, можно восстановить структуру программы из бинарного образа неизвестной архитектуры, и дальше восстановить алгоритмы и многое другое?

В этой статье мы расскажем об одной интересной задаче, которая была поставлена перед нами несколько лет назад. Заказчик попросил разобраться с бинарной прошивкой устройства, которое выполняло управление неким физическим процессом. Ему требовался алгоритм управления в виде компилируемой С-программы, а также формулы с объяснением, как они устроены и почему именно так. По словам Заказчика, это было необходимо для обеспечения совместимости со «старым» оборудованием в новой системе. То, как мы в итоге разбирались с физикой, в рамках данного цикла статей мы опустим, а вот процесс восстановления алгоритма рассмотрим подробно.

Практически повсеместное использование в массовых устройствах программируемых микроконтроллеров (концепции интернета вещей IOT или умного дома SmartHome) требует обратить внимание на бинарный анализ встраиваемого кода, или, другими словами, бинарный анализ прошивок устройств.

Бинарный анализ прошивок устройств может иметь следующие цели:

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

Поставленная выше задача анализа бинарного кода может рассматриваться как частный случай задачи анализа бинарника для обеспечения совместимости устройств.
Читать дальше →
Total votes 85: ↑83 and ↓2+81
Comments96

Как без усталости кодить по восемь с лишним часов

Reading time6 min
Views86K


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

Я думал, что достаточно просто сесть за стол, открыть ноутбук, выбрать задачу из моего списка to-do и кодить, пока не устану.

Но на самом деле такой стиль работы убивал мой уровень продуктивности спустя 2–4 часа написания кода. Я ощущал себя таким уставшим, что мне не хотелось ничего, кроме как других задач, требующих низких затрат энергии (например, code review).

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

Что же изменилось?

Мой подход к работе.

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

В статье я расскажу, как этого достиг.
Читать дальше →
Total votes 107: ↑79 and ↓28+51
Comments150
1
23 ...

Information

Rating
Does not participate
Registered
Activity