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

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

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

Как я случайно обошёл блокировку Google Pixel и получил за это $70 тысяч

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

Я обнаружил уязвимость, похоже, затронувшую все телефоны Google Pixel: вы можете дать мне любое заблокированное устройство Pixel, и я верну его вам разблокированным. Баг устранили в обновлении безопасности 5 ноября 2022 года.

Проблема позволяла атакующему с физическим доступом к телефону обойти меры защиты экрана блокировки (отпечаток пальца, PIN и так далее), получив полный доступ к устройству пользователя. Уязвимость зафиксирована как CVE-2022-20465; она может затронуть и устройства Android других производителей. Мои рекомендации по патчу и сырой баг-репорт, отправленные Google, можно найти здесь: feed.bugs.xdavidhu.me.
Читать дальше →
Всего голосов 150: ↑147 и ↓3+186
Комментарии163

Семь грехов численной линейной алгебры

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

image


В численной линейной алгебре нас интересуют точное и эффективное решение задач и понимание чувствительности задач к возмущениям. К старту флагманского курса по Data Science делимся материалом от профессора Ника Хигэма о семи грехах линейной алгебры, из-за которых теряется точность/эффективность или информация о чувствительности [к возмущениям] оказывается недостоверной.

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

Asterisk. Доставка SIP Message после возврата абонента из off-line'а

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

В предыдущих статьях я описал как настроил и собрал GSM <> SIP систему на базе Asterisk. В этой статье расскажу как быть с входящими SMS, если получатель не в сети.

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

Так все же, насколько быстры каналы в Linux?

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

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

Читать далее
Всего голосов 77: ↑72 и ↓5+86
Комментарии31

Почему всё ломается даже у хороших программистов? Часть 2/2

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

После несерьёзной статьи на серьёзную тему Job Safety Driven Development стоит рассказать о том, почему даже опытные и добросовестные программисты волей случая могут попадать в схожие ситуации. Сначала захотелось написать, почему программисты ошибаются вообще ("Почему ошибаются программисты?" Часть 1 и Часть 2), но оказалось, что это слишком разные темы. Потом оказалось, что и на эту тему получился очень длинный текст. Пришлось разбить его на части. В первой части мы рассмотрим обычные случаи, которые знакомы многим крупным компаниям. И дополним понятие «серебряная пуля» понятием «золотая шестерёнка».  Во второй части поймём, какую цену вам, скорее всего, придётся заплатить за «золотую шестерёнку», я приведу немного своего опыта. Как всегда, попробую писать простым языком, понятным широкой аудитории.

Читать далее
Всего голосов 27: ↑26 и ↓1+30
Комментарии44

15 лучших и бесплатных инструментов компьютерного криминалиста

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

Добрый день Хабр. Сегодня, мы с вами окунемся в «О дивный мир» форензики. В данной статье Мы решили собрать программы, которые помогут Вам в проведении расследований и, что немаловажно, будут при этом бесплатными.

DISCLAIMER: Данная статья написана в ознакомительных целях и не является руководством к неправомерным действиям или обучающим материалом для сокрытия правонарушений.

Читать далее
Всего голосов 34: ↑32 и ↓2+35
Комментарии9

Лямбда-исчисление в 397 байтах

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

Лямбда-исчисление — это язык программирования с единственным ключевым словом. Это асфальтовая топь Тьюринга, обнаруженная научным руководителем Тьюринга. В этом посте я расскажу о совершенно новой 397-байтной реализации двоичного лямбда-исчисления в виде Linux ELF для x86-64. Также в нём представлены удобно портируемый код на C и собранные двоичные файлы APE для других платформ.
Читать дальше →
Всего голосов 51: ↑50 и ↓1+68
Комментарии13

Алгоритм Дейкстры. Разбор Задач

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


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

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

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

Знакомство с p-адическими числами. Часть 2, практическая

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


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


Мы поговорим об эффективном внутреннем представлении p-адических чисел, о базовых алгоритмах и методах работы с ними, а также о двух классных инструментах в системе типов языка Haskell: о типах-литералах (type literals) и семействах типов (type families).

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

PROOF OF STAKE – это скам

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

Proof of Stake (PoS) – это мошенничество. Когда я говорю это, я имею в виду, что PoS 1) заявлен как система консенсуса, и 2) фактически неспособен на самом деле обеспечить консенсус.

Читать далее
Всего голосов 101: ↑82 и ↓19+80
Комментарии485

Легализация удаленки на зарубежную компанию без бухгалтера. Step by step guide 2021

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

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

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

GPT для чайников: от токенизации до файнтюнинга

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

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

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

Собеседования джунов — вся жесть вопроса

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

После 2-х лет разработчиком на С# в небольшой английской компании в сфере строительства, я решил выяснить свою стоимость как специалиста на рынке труда Великобритании. Несмотря на то, что большинство вакансий представляют собой примерно одно и то же: «Требуется человек-оркестр с 10+ лет опыта для очень интересной работы», — я специально выбирал позиции исключительно младшего разработчика не содержащих цифр 5+, 10+ и 15+ в описании. Как это было — читайте дальше.

Читать далее
Всего голосов 77: ↑69 и ↓8+79
Комментарии237

А вы знаете, где используется Haskell?

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

Всем привет! Мы хотим продолжить серию постов на тему “где используются эти ваши странные языки программирования”. В прошлый раз мы рассказали про Лисп, а сегодня продолжим разговор про функциональные языки и обратим внимание на Haskell.  Он является основным языком разработки в Typeable и, конечно, мы не смогли пройти мимо такой темы.

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

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

Читать далее
Всего голосов 34: ↑33 и ↓1+37
Комментарии27

Разбор вступительных заданий в Школу Программистов hh.ru 2021

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

Привет! Подошел к концу двенадцатый набор в Школу Программистов hh.ru. Самое время рассказать, как Петр Васильевич раздавал премии менеджерам, кто вышел победителем из "Релиза до выходных" благодаря ролевому помощнику, и как впервые в истории Школы нам пришлось облегчить условия вступительного задания прямо во время набора. 

В этой статье будет подробный разбор заданий свежего набора в Школу Программистов hh.ru.

Поехали разбираться
Всего голосов 9: ↑9 и ↓0+9
Комментарии13

Как я пишу на LaTeX в Emacs быстрее, чем от руки

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


Когда Жиль Кастель задокументировал метод ведения математических записей в Vim в реальном времени, многие захотели добиться тех же скорости и удобства ввода LATEX в Emacs1.

Я работаю на LaTeX весь день: уравнения пишу так же быстро, как на бумаге. И даже быстрее. Почему? За размышлением всегда следует работа пальцев. И это — та ситуация, когда количество переходит в качество. Хотя мои рекомендации — лишь 90 % решения.
Читать дальше →
Всего голосов 42: ↑40 и ↓2+49
Комментарии9

Си должен умереть

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

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

Попробуем понять, что же такое этот противоречивый язык Си - благословение или проклятие?

Читать далее
Всего голосов 185: ↑147 и ↓38+156
Комментарии643

Higher-Kinded Data, или ещё один способ работать с сущностями базы данных (и не только)

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

image


Важный дисклеймер


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


Я не стараюсь вам продать этот cпособ как панацею.
Я лишь хочу рассказать вам ещё один способ представлять данные и показать, как его можно использовать, на конкретном примере.
Как и все остальные подходы, этот имеет свои недостатки. И кое-где придётся приседать. С этими приседаниями мы встретимся довольно скоро.


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

Ещё хочется заметить, что далее все примеры кода будут приводиться на Haskell. Но в конце я покажу, как можно некоторые из них повторить на Scala.


Что такое HKD


Конечно, прежде, чем писать этот раздел, я полез в интернет, чтобы посмотреть, как этот термин определяют другие люди. Чёткого определения я не нашёл.
Грубо говоря, HKD — это то, что предоставляет возможность держать в одном типе данных сразу несколько представлений. Давайте посмотрим на примеры.

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

IRC. Первый мессенджер в истории

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

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

Если вы давно забыли про "ирку", либо вовсе никогда не имели с ней дело — эта статья адресована вам.

Читать далее
Всего голосов 24: ↑23 и ↓1+32
Комментарии20

9 команд для проверки информации о CPU в Linux

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

Информация об аппаратном обеспечении CPU

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

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

Читать далее
Всего голосов 10: ↑7 и ↓3+4
Комментарии3

Информация

В рейтинге
6 261-й
Зарегистрирован
Активность