Как стать автором
Обновить
0
0

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

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

Открыть нельзя игнорировать

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


Моя работа связана с тем, что я вру людям и эксплуатирую их доверчивость, любопытство, жадность и так далее. Работу я свою люблю и стараюсь подходить к ней творчески. Специфика моей деятельности связана с проведением атак методом социальной инженерии. И в этом посте я бы хотела рассказать о вредоносных вложениях.
Читать дальше →
Всего голосов 57: ↑56 и ↓1+55
Комментарии32

Как правильно читать состав косметики

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


Ингредиенты перечисляются по понижению массовой доли: что ближе к началу, того больше по массе. Вещества, которых в составе менее 1% считаются равнозначными для этого списка, и их можно указывать после основных в любом порядке. В РФ по закону указывается всё без исключения (нет ситуации, когда при малом содержании можно пропускать вещество), и на практике это соблюдается. Почему — чуть ниже.

Нельзя писать «консервант» без указания, что это именно такое, нельзя писать «минеральный комплекс кислот» без детализации, что это такое, но можно писать коммерческие названия. То есть регистрируете свой минеральный комплекс кислот или консервант как товарный знак — и пишете уже его. Можно писать химические наименования или торговые, причём можно и латиницей, и на русском. В непонятных веществах, например, часто прячут то, что мнительные женщины не хотят увидеть на этикетке.
Читать дальше →
Всего голосов 84: ↑84 и ↓0+84
Комментарии115

10 лучших игр о хакинге, кодинге и вычислениях

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

Как все знают из новостных лент, мы живём в постоянно эволюционирующей киберпанковской антиутопии. Люди подключают туалеты к Интернету! Если этот гибсоновский мир кажется вам слишком РЕАЛЬНЫМ, то вы можете поиграть в десять лучших видеоигр о взломе, программировании и вычислениях, чтобы сбежать в мета-антиутопию. Которая, я уверен, является намного лучшим местом.


10. TIS-100


[официальный сайт]

Да-а-а, приготовьтесь к тому, что ваш мозг начнёт болеть. TIS-100 — это игра студии Zachtronics, разработчика игр-головоломок, выпустившей Infinifactory и SpaceChem. В маркетинге она позиционируется как «игра о программировании на языке ассемблера, о которой вы не просили», и хотя я обычно игнорирую маркетинговые слоганы, здесь не могу не согласиться.

Игрок получает в своё распоряжение таинственный компьютер из 70-х, найденный в вещах покойного дядюшки. Когда-то он игрался с ним, пытаясь разобраться. Теперь это ваша задача. Если вкратце, то вам нужно получить числа, чтобы провести машину из точки A в точку B, выполнив на каждом уровне «цели» (например, сначала вывести положительное число, а затем отрицательное). Для этого у вас есть список команд, изложенных в смутном руководстве пользователя. Игра советует вам распечатать это руководство в бумажном виде. В нём есть сделанные дядей примечания и пометки маркером, дающие подсказки о сущности этой машины.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии41

Как написать свой первый Linux device driver

Время на прочтение7 мин
Количество просмотров60K
Здравствуйте, дорогие хабрачитатели.

Цель данной статьи — показать принцип реализации драйверов устройств в системе Linux, на примере простого символьного драйвера.

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

Это моя первая статья, пожалуйста не судите строго!

P.S

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

Часть 1 — Введение, инициализация и очистка модуля ядра.
Часть 2 — Функции open, read, write и trim.
Часть 3 — Пишем Makefile и тестируем устройство.

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

Итак, начнем.
Читать дальше →
Всего голосов 59: ↑52 и ↓7+45
Комментарии41

Объясняем современный JavaScript динозавру

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


Если вы не изучали JavaScript с самого начала, то осваивать его современную версию сложно. Экосистема быстро растёт и меняется, так что трудно разобраться с проблемами, для решения которых придуманы разные инструменты. Я начал программировать в 1998-м, но начал понимать JavaScript только в 2014-м. Помню, как просматривал Browserify и смотрел на его слоган:


Browserify позволяет делать require («модули») в браузере, объединяя все ваши зависимости


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


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

Всего голосов 174: ↑171 и ↓3+168
Комментарии505

Создаём собственный физический 2D-движок. Часть 1: основы и разрешение импульсов силы

Время на прочтение14 мин
Количество просмотров69K
image


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

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

В этой части туториала мы рассмотрим следующие темы:

  • Простое распознавание коллизий
  • Генерирование простого многообразия
  • Разрешение импульсов силы
Всего голосов 42: ↑41 и ↓1+40
Комментарии21

Руководство по материалам электротехники для всех. Часть 3

Время на прочтение10 мин
Количество просмотров48K
Продолжение руководства по материалам электротехники. В этой части заканчиваем разбирать проводники: Углерод, Нихромы, термостабильные сплавы, припои — олово, прозрачные проводники.

image

Добро пожаловать под кат (ТРАФИК)
узнать о материалах
Всего голосов 54: ↑53 и ↓1+52
Комментарии81

Наглядное объяснение чисел с плавающей запятой

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

В начале 90-х создание трёхмерного игрового движка означало, что вы заставите машину выполнять почти не свойственные ей задачи. Персональные компьютеры того времени предназначались для запуска текстовых процессоров и электронных таблиц, а не для 3D-вычислений с частотой 70 кадров в секунду. Серьёзным препятствием стало то, что, несмотря на свою мощь, ЦП не имел аппаратного устройства для вычислений с плавающей запятой. У программистов было только АЛУ, перемалывающее целые числа.

При написании книги Game Engine Black Book: Wolfenstein 3D я хотел наглядно показать, насколько велики были проблемы при работе без плавающей запятой. Мои попытки разобраться в числах с плавающей запятой при помощи каноничных статей мозг воспринимал в штыки. Я начал искать другой способ. Что-нибудь, далёкое от $(-1)^S * 1.M * 2^{(E-127)}$ и их загадочных экспонент с мантиссами. Может быть, в виде рисунка, потому что их мой мозг воспринимает проще.

В результате я написал эту статью и решил добавить её в книгу. Не буду утверждать, что это моё изобретение, но пока мне не приходилось видеть такого объяснения чисел с плавающей запятой. Надеюсь, статья поможет тем, у кого, как и у меня, аллергия на математические обозначения.
Читать дальше →
Всего голосов 76: ↑73 и ↓3+70
Комментарии46

Профессиональное тестирование на проникновение: удел настоящих гиков-фанатов командной строки или уже нет?

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

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


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

Проектирование процессора Logisim

Время на прочтение4 мин
Количество просмотров68K
Часть I
Часть II
Часть III
Часть IV
Часть V

Одна из глав книги «Код» Чарльза Петцольда посвящена проектированию блоков CPU и в начале главы описывается устройство, позволяющие суммировать наборы чисел, хранящихся в памяти. Спроектируем похожую схему в Logisim. Возьмем набор восьмиразрядных чисел и подключим его к мультиплексору, переход от одного числа к другому будем осуществлять с помощью счетчика, подключенного к выбирающему входу мультиплексора, а к выходу мультиплексора подключим сумматор и аккумулятор. В качестве тактового генератора будем использовать кнопку. Данные будут загружаться в аккумулятор при отпускании кнопки. Это осуществляется с помощью элемента НЕ, подключенного к кнопке. Про реализацию этих функциональных блоков в виде отдельных микросхем далее в статье.

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

Игры для программистов, часть вторая

Время на прочтение5 мин
Количество просмотров82K
Прошло четыре с половиной года с тех пор, как я, пользуясь свежеполученным инвайтом, написал предыдущий хабрапост с подобным заголовком. Большой срок для игровой индустрии. Успело появиться много новых хороших игр, и недавно я ощутил настоятельную необходимость поделиться знанием о них с широкой общественностью.

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

Infinifactory


image
И что же это за майнкрафт такой?
Всего голосов 58: ↑57 и ↓1+56
Комментарии74

Скрытые послания в именах свойств JavaScript

Время на прочтение6 мин
Количество просмотров26K
Для тестирования код нужно выделить и скопировать прямо из твита. — прим. пер.

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

Вот тот сниппет:



Что бы вы ожидали от него?

Здесь используется цикл for in, который проходит через перечислимые свойства объекта. Поскольку указано только свойство A, можно предположить, что будет показано сообщение с буквой А. Ну… я ошибался. :D
Читать дальше →
Всего голосов 80: ↑76 и ↓4+72
Комментарии22

У нас длинные руки: 7 зарубежных площадок, на которых можно найти удалённую работу

Время на прочтение3 мин
Количество просмотров134K
Развитие телекоммуникационных технологий — это win-win для работодателей и работников: компании могут находить таланты по всему миру, а люди могут работать откуда угодно, лишь бы был Wi-Fi. И популярность удалённой работы лишь растёт. К примеру, согласно отчёту Gallup, в 2015 году 37% респондентов ответили, что работают удалённо частично или весь рабочий день. Это было на 7 процентных пунктов больше, чем в 2008. И нет причин считать, что эта тенденция сегодня изменилась.

Чем больше людей обращаются к подработке, фрилансу или удалённой работе на полную ставку, тем чаще возникает вопрос: где именно мне найти работу, которая позволит отказаться от поездок в офис? Предлагаем вашему вниманию семь зарубежных площадок, на которых можно найти удалённую работу.
Читать дальше →
Всего голосов 50: ↑49 и ↓1+48
Комментарии35

Мозг как компьютер: плохо справляется с математикой, и хорошо – со всем остальным

Время на прочтение11 мин
Количество просмотров40K
imageВсе мы помним со школы мучительные упражнения в арифметике. На то, чтобы перемножить числа вроде 3 752 и 6 901 при помощи карандаша и бумаги, уйдёт не меньше минуты. Конечно же, сегодня, когда под рукой у нас телефоны, мы быстро можем проверить, что результат нашего упражнения должен равняться 25 892 552. Процессоры современных телефонов могут выполнять более 100 млрд таких операций в секунду. Более того, эти чипы потребляют всего несколько ватт, что делает их гораздо эффективнее наших медленных мозгов, потребляющих 20 Вт и требующих гораздо большего времени на достижение того же результата.

Конечно же, мозг эволюционировал не для того, чтобы заниматься арифметикой. Поэтому у него это получается плохо. Но он прекрасно справляется с обработкой постоянного потока информации, идущего от нашего окружения. И он реагирует на неё – иногда быстрее, чем мы можем это осознать. И неважно, сколько энергии будет потреблять обычный компьютер – он с трудом будет справляться с тем, что легко даётся мозгу – например, с пониманием языка или с бегом по лестнице.
Читать дальше →
Всего голосов 30: ↑26 и ↓4+22
Комментарии30

30+ онлайн ресурсов для изучения программирования в 2022

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



Составить рейтинг ресурсов для изучения программирования, предлагаю пользователям хабра, исходя из личного опыта их использования. В конце статьи вы сможете проголосовать за любимый сайт для изучения программирования.
Читать дальше →
Всего голосов 45: ↑37 и ↓8+29
Комментарии44

Интересный этюд Factorio: симулятор завода

Время на прочтение5 мин
Количество просмотров86K
Эта игра — очередная очень интересная с точки зрения механики бета, представляющая заодно своеобразный язык программирования.



И здесь самое забавное — это кривая обучения и интерфейсы. Давайте пройдёмся по этим моментам, благо есть отличные находки.

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

Первая задача — используя технологии бронзового века, получить прединдустриальные, а затем собрать жестяной радар, чтобы найти основную часть корабля. Затем — добраться туда на каком-то транспортном средстве. Там забрать ядро компьютера и получить доступ ко всем данным по тому, как правильно делать ракеты, бронебойные патроны, скафандры и прочую мелочь, важную для выживания.
Всего голосов 127: ↑120 и ↓7+113
Комментарии235

Как держать 20 тысяч VPN клиентов на серверах за $5

Время на прочтение24 мин
Количество просмотров85K
Месяц назад мы с друзьями сделали бесплатный сервис для обхода блокировок сайтов в Украине Zaborona.Help. За это время сервис стал довольно популярным, аудитория выросла до 20 000 пользователей. Число одновременных подключений в пиковые часы — ≈6 000 клиентов.

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

В статье описываются тонкости настройки OpenVPN для большого числа клиентов, на дешевых VPS.

  • Как выбрать подходящий хостинг. Отличительные черты плохого хостинга. История о том, как мы долго искали и нашли хостинг в России.
  • Почему IPv6 — хорошо. Правильная настройка IPv6-адресов для VPN-клиентов.
  • Изменение конфигурации OpenVPN на лету, без перезапуска сервера и отключения клиентов.
  • Балансировка нагрузки между серверами и процессами OpenVPN
  • Тонкая настройка Linux для большого числа подключений
  • Особенности кривых операционных систем и роутеров пользователей

Наш опыт будет полезен для тех, кто собирается развернуть VPN для личных нужд, и тех, кто хочет создать сервис с большим числом клиентов.
Читать дальше →
Всего голосов 79: ↑71 и ↓8+63
Комментарии139

Подключаем спортивный тренажёр к компьютеру и перестаём отращивать жир, играя в компьютерные игры

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


Идея заставить двигаться сутулого игрока в компьютерные игры не нова, уже давно существует Kinect у Microsoft, всякие датчики у Sony, Nintendo, а теперь ещё и аксессуары к шлемам виртуальной реальности, которые требуют, чтобы вы шевелили руками-ногами в процессе игры.

Однако, личный опыт пользования такими устройствами показал, что:

1. Играть можно только в те игры, которые явно заточены под датчики движения. А что делать тем, чья любимая игра — «Весёлые Зомби на Острове Невинных», выпущенная в прошлом веке?
2. Движения в игре не совпадают с комфортным/необходимым уровнем нагрузки. Либо быстро устаёшь, либо мышцы не получают нужной нагрузки.

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

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

Кому интересно повторить мой опыт — читаем дальше.
Всего голосов 31: ↑30 и ↓1+29
Комментарии70

Обзор анимации с codepen для страниц загрузки сайта

Время на прочтение14 мин
Количество просмотров27K
Обзор анимации с codepen для страниц загрузки сайта

Программисты проверяют идеи для сайтов на площадках: codepen, jsbin, jsfiddle, cssdesk. Потому что там они мгновенно видят результат написанного кода и могут показать его другим.


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


Я решил делать подборки полезных решений с codepen. Первую уже выпускал на хабре «Обзор многоуровневых меню». Теперь вторая — «Обзор анимации для страниц загрузки сайта».


Подборку разделил на 3 статьи.


Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии13

Безопасность в веб-разработке: чек-лист

Время на прочтение5 мин
Количество просмотров20K
Светлана Шаповалова, редактор «Нетологии», адаптировала статью Michael O'Brien, в которой он составил чек-лист для веб-разработчиков, предпочитающих разрабатывать не только удобные, но и безопасные приложения.

Разработка безопасных и надежных облачных веб-приложений — очень, очень сложное дело. Если вы думаете иначе, вы либо не от мира сего, либо жизнь вас еще не проучила.

Если вы уже заразились идеей «минимально жизнеспособного продукта» (англ. MVP — minimum viable product, прим. перев.) и считаете, что за месяц можно создать одновременно полезный и безопасный продукт — подумайте дважды, прежде чем выпускать его. Просмотрев чек-лист, вы поймете, что оставляете немало уязвимостей.


Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии7

Информация

В рейтинге
Не участвует
Откуда
Hessen, Германия
Зарегистрирована
Активность