• 10 бесплатных и полезных курсов в сети, от Фейнмана до Ына

    • Translation

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

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

    • Translation

    У центральных и графических процессоров разная архитектура и разные сценарии использования. ЦП — это «мозг» большинства наших электронных устройств. Они хорошо справляются с множеством различных задач. Это процессоры очень общего назначения, координирующие широкий спектр задач, которые выполняет компьютер. С другой стороны, графические процессоры — гораздо более специализированные вычислительные системы. Они предназначены для эффективной обработки 3D-изображений, но визуализация графики — это очень большая вычислительная нагрузка на матричную арифметику. Типы вычислений, в которых графическим процессорам нет равных, называются параллельными вычислениями, то есть это задачи, которые можно разделить на меньшие, независимые вычисления и выполнять одновременно. И этому потенциалу находится нетипичное применение.

    Читать далее
  • Коммиты — это снимки, а не различия

    • Translation

    Git имеет репутацию запутывающего инструмента. Пользователи натыкаются на терминологию и формулировки, которые вводят в заблуждение. Это более всего проявляется в "перезаписывающих" историю командах, таких как git cherry-pick или git rebase. По моему опыту, первопричина путаницы — интерпретация коммитов как различий, которые можно перетасовать. Однако коммиты это не различия, а снимки! Я считаю, что Git станет понятным, если поднять занавес и посмотреть, как он хранит данные репозитория. Изучив модель хранения данных мы посмотрим, как новый взгляд помогает понять команды, такие как git cherry-pick и git rebase.

    Читать далее
  • Изучаем внутренние компоненты Docker — Объединённая файловая система

    • Translation

    Создавать, запускать, просматривать, перемещать контейнеры и образы с помощью интерфейса командной строки Docker (Docker CLI) проще простого, но задумывались ли вы когда-нибудь, как на самом деле работают внутренние компоненты, обеспечивающие работу интерфейса Docker? За этим простым интерфейсом скрывается множество продвинутых технологий, и специально к старту нового потока курса по DevOps в этой статье мы рассмотрим одну из них — объединённую файловую систему, используемую во всех слоях контейнеров и образов. Маститым знатокам контейнеризации и оркестрации данный материал навряд ли откроет что-то новое, зато будет полезен тем, кто делает первые шаги в DevOps.

    Приятного чтения
  • Как сделать полнотекстовую поисковую машину на 150 строках кода Python

    • Translation

    Полнотекстовый поиск — неотъемлемая часть нашей жизни. Разыскать нужные материалы в сервисе облачного хранения документов Scribd, найти фильм в Netflix, купить туалетную бумагу на Amazon или отыскать с помощью сервисов Google интересующую информацию в Интернете — наверняка вы сегодня уже не раз отправляли похожие запросы на поиск нужной информации в невообразимых объёмах неструктурированных данных. И что удивительнее всего — несмотря на то что вы осуществляли поиск среди миллионов (или даже миллиардов) записей, вы получали ответ за считанные миллисекунды. Специально к старту нового потока курса Fullstack-разработчик на Python, в данной статье мы рассмотрим основные компоненты полнотекстовой поисковой машины и попытаемся создать систему, которая сможет за миллисекунды находить информацию в миллионах документов и ранжировать результаты по релевантности, причём всю систему можно воплотить всего в 150 строках кода на Python!

    Читать далее
    • +5
    • 6.5k
    • 6
  • Как я нашел баг, который раскрывал ваш пароль от PayPal

    • Translation

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

    Если вы подходите к цели, как будто вы — первый человек, который оценивает безопасность, то я считаю, вы обязательно найдёте что-то новое. Особенно если код, который вы тестируете, всё ещё находится в разработке. Это история о серьёзном баге безопасности, который влияет, наверное, на самую посещаемую страницу PayPal: страницу с формой входа.

    Читать далее
    • +22
    • 6.6k
    • 1
  • Двумерные тестовые функции для оптимизации

    • Translation
    • Tutorial

    Оптимизация функций — это область исследований, где поставлена задача найти некое входное значение [аргумент функции], результат которого — максимум или минимум данной функции. Алгоритмов оптимизации много, поэтому важно развивать алгоритмическое чутьё и исследовать алгоритмы на простых и легко визуализируемых тестовых функциях. В этом туториале мы рассмотрим стандартные двумерные функции, которые можно использовать при изучении оптимизации функций.

    Приятного чтения
  • Архитектурные паттерны в iOS: страх и ненависть в диаграммах. MV(X)

    • Tutorial

    Каждый iOS разработчик в своей жизни уходил с собеседования в расстроенных чувствах и мыслью “это что еще за новая аббревиатура?” Архитектурами пугают и джунов, и миддлов, и синьоров (и наверное даже синьорит). Важно не просто знать что стоит за названием, но ещё и в каком случае какую использовать. Литературы по этому вопросу преступно мало, редкие обсуждения в интернете ограничиваются собственным опытом и какими-то поделками на гитхабе.

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

    Первая часть посвящена MV(X) паттернам: самым известным и распространенным практикам в индустрии.

    Читать далее
  • Как проверить подлинность банкнот с помощью нейросети

    • Translation
    • Tutorial

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

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

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

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

    Читать далее
  • Как мы на хакатоне транспорт кластеризировали

      Привет, Хабр! Компьютерное зрение и искусственный интеллект — одни из самых востребованных направлений в современном IT. Поэтому мы выбрали именно их для учебного «Межгалактического Хакатона 2021» который организовали НИТУ МИСиС и Zavtra.Online (подразделение SkillFactory по работе с университетами).

      В хакатоне были представлены 5 кейсов от разных компаний, и одним из них был кейс от компании IntelliVision — кластеризация изображений транспортных средств. Его и выбрала команда финалистов, описав реализацию подобного проекта от А до Я.

      Читать далее
    • Анимация волновой функции частицы Шрёдингера (ψ) с помощью Python (с полным кодом)

      • Translation

      Двойственная природа материи — широко известное понятие среди физиков. Вещество на атомном уровне в некоторых случаях ведёт себя как частицы, а в некоторых — как волны. Чтобы объяснить это, мы вводим волновую функцию частицы ψ(x, t), которая описывает не фактическое положение частицы, а вероятность нахождения частицы в данной точке. Волновая функция ψ(x, t), или поле вероятностей, которое удовлетворяет, возможно, самому важному уравнению в частных производных, по крайней мере для физиков, является уравнением Шрёдингера.

      Приятного чтения
    • Где поместить свой сервер, чтобы обеспечить максимальную скорость? Насколько это важно?

      • Translation

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

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

      Читать далее
    • Реверс-инжиниринг тетриса на Nintendo для добавления Hard Drop

      • Translation

      Тетрис на Nintendo — одна из моих любимых версий тетриса. Моя единственная жалоба заключается в том, что ему не хватает возможности «Hard Drop» — мгновенного падения текущей фигуры и её фиксации на месте. Давайте её добавим

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

      Читать далее
      • +16
      • 2.5k
      • 5
    • Уход от проблемы TTL или Стратегии корректного и быстрого кэширования

      • Translation

      Определение TTL для некоторых кэшированных данных («time to live» — время существования или длительность хранения) может стать своего рода шарлатанской нумерологией для программистов. Кеширование по TTL даёт корректность в пользу увеличения скорости. Но до какой степени можно отказаться от корректности? Как долго можно показывать где-то неправильное значение, прежде чем пользователь будет сбит с толку? Как скоро такие пользователи заподозрят наличие у себя проблемы и лягут бременем на службы поддержки клиентов? Давайте разбираться.

      Читать далее
    • Серьёзная безопасность: всплывшие спустя 15 лет баги в ядре Linux

      • Translation

      Исследователи кибербезопасности GRIMM 12 марта опубликовали три интересных бага в ядре Linux. В коде, который игнорировали около 15 лет. К счастью, кажется, всё это время никто не присматривался к коду; по крайней мере, не так усердно, чтобы заметить ошибки. Соответствующие CVE уже исправлены.

      Что же это за баги?
    • Как я делал светящиеся часы для детей

      • Translation
      • Tutorial

      Первый вариант светящихся часов для детей был создан мной несколько лет назад. В то время наши дети (им было тогда 2–4 года) буквально сводили нас с женой с ума: они никак не могли понять, что значит "рано утром дождаться, пока маленькая стрелка на часах дойдет до циферки семь, и только потом прибегать и будить нас"! Сейчас нашему четвёртому ребенку уже 3 года, и эти часы уже несколько лет облегчают нам жизнь! Я постоянно совершенствовал их, и, наконец, настал тот день, когда проблема века – "дети, которые рано будят родителей" – была в конце концов решена.

      Приятного чтения
    • Третий глаз для незрячих

      • Translation

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

      Приятного чтения
    • Заключённый использовал одиночную камеру для изучения математики. Сегодня он решает самые трудные уравнения в мире

      • Translation

      В 2010 году некий Кристофер Хейвенс (Christopher Havens) был приговорен к 25 годам тюремного заключения за убийство. В 2020 году его работа по теории чисел была опубликована в научном журнале. Все стены камеры, в которой Кристофер Хейвенс отбывает срок, испещрены бумажными листками с формулами.

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

      Приятного чтения!
    • Рисуем фракталы Мандельброта с помощью языка GIMP Script-Fu

      • Translation
      • Tutorial


      Программа GNU Image Manipulation Program (GIMP) – моё решение проблемы редактирования изображений. Набор инструментов у этого редактора очень мощный и удобный, за исключением инструментов, чтобы генерировать фракталы, которые нелегко нарисовать вручную. Фракталы – увлекательные математические конструкции, обладающие свойством самоподобия. Другими словами, если их увеличить в любой области, они будут удивительно похожи на картину до увеличения. Помимо того, что они интересны, они также делают очень красивые картинки!

      Приятного чтения!
    • Кибервойна. Когда 500 Кб кода страшнее межконтинентальной ракеты


      Привет, Хабр! Мы искренне поздравляем всех хабровчан с Днём защитника Отечества! И сегодня подготовили интересный тематический материал.

      «Война никогда не меняется». Думаю, все узнали интро из Fallout. Но действительно ли это так? Ведь за последние 20 лет военная сфера изменилась настолько сильно, что практически не имеет ничего общего с масштабными конфликтами прошлого века. Сегодня мы поговорим о современных высокотехнологичных элементах военных действий – так называемой «кибервойне».

      Приятного чтения!