Обновить

Разработка

Сначала показывать
Период
Уровень сложности

Чтобы распознавать картинки, не нужно распознавать картинки

Время на прочтение18 мин
Охват и читатели238K
Посмотрите на это фото.



Это совершенно обычная фотография, найденная в Гугле по запросу «железная дорога». И сама дорога тоже ничем особенным не отличается.

Что будет, если убрать это фото и попросить вас нарисовать железную дорогу по памяти?

Если вы ребенок лет семи, и никогда раньше не учились рисовать, то очень может быть, что у вас получится что-то такое:
Осторожно, тяжелые гифки

Некто решил удалить все упомининания о себе в сети. Что делать?

Время на прочтение2 мин
Охват и читатели12K
Пару лет назад я анонсировал свой сервис для сохранения веб-страниц Peeep.us (как web.archive.org или google-кеш, только по запросу). Функциональность сервиса уже тогда вызывала обсуждения этичности и законности хранения данных, которые удалены источником. Так или иначе, Peeep благополучно просуществовал два года, и я, честно говоря, перестал обращать на него внимание. Разве что платил Гуглу по 7 центов в неделю за хранение данных. И иногда удалял странички с детским порно, вопиющие о себе в статистике.

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

Какого же было мое удивление, когда эти уважаемые господа позвонили мне на мобильный. По их словам, они вполне серьезно настроены уничтожить все упоминания о г-не Дворникове и его фирме EAA Asset Management-Consulting GmbH в интернете. Серьезность этих людей заставила меня задуматься, не придется ли мне на своем фиксе убегать от какого-нибудь джипа.

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

Разработка высоконагруженных API: проблемы, решения, практические рекомендации

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели25K

Ваш проект взлетел. Первые пользователи превратились в тысячи. Тысячи стали десятками тысяч. Метрики в дашбордах рисуют красивую кривую, устремленную вверх. Но есть и другие кривые, которые ползут вверх с не меньшей скоростью. Время ответа сервера. Количество ошибок 502 и 504.

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

Читать далее

О троице, которая хакнула настоящий поезд. Даже целых 30 поездов

Время на прочтение10 мин
Охват и читатели89K

Поезд, сделанный польской компанией, внезапно сломался во время техобслуживания. Специалисты были беспомощны — поезд был в порядке, только никак не хотел ехать. Доведённые до отчаяния, они вызвали на помощь команду Dragon Sector, члены которой нашли такие чудеса, о которых машинисты даже и не мечтали.

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

Читать далее

Сайт сына маминой подруги

Время на прочтение4 мин
Охват и читатели102K

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

Читать далее

Жизнь на плоскости Лобачевского

Время на прочтение10 мин
Охват и читатели89K
Различные реализации игры «Жизнь» описывались на Хабре уже неоднократно. В этой статье, в качестве продолжения этой темы, рассматривается ещё один её вариант: в качестве игрового поля используется регулярная решётка на плоскости Лобаческого. Описываются общие методы использования плоскости Лобачевского в программах и необходимые для этого математические приёмы.
Как возникла плоскость Лобачевского, достаточно известно. В позапрошлом веке господа Гаусс, Лобачевский и Бойяи, проживавшие примерно в одно время в разных странах тогдашней Европы, задумались, что будет, если отменить пятый постулат Евклида и заменить его на противоположную аксиому. Оказалось, что не случится ничего плохого, и никаких противоречий не возникнет. Заметная часть последующего изучения неевклидовой геометрии была посвящена выяснению того, кто из них у кого украл идею этой самой геометрии.
Менее известно, что несмотря на «отрицательный» способ определения неевклидовой геометрии (вместо того, чтобы сказать, что через точку проходит ровно одна прямая, не пересекающая данную, мы говорим, что таких прямых может быть сколько угодно), мы, тем не менее, получаем систему теорем и формул, не менее стройную, чем та, что есть в евклидовой геометрии. И одновременно, у нас есть гораздо большее разнообразие геометрических фигур, в том числе, разбиений плоскости на правильные многоугольники.

Осторожно, много математики!

Я не знаю Си

Время на прочтение4 мин
Охват и читатели52K
Цель этой статьи — заставить всех, особенно программистов на Си, сказать «я не знаю Си».
Хочется показать, что тёмные углы в Си значительно ближе, чем кажется и даже тривиальные строки кода несут в себе undefined behavior.
Читать дальше →

Взаимодействие между несколькими .bat, мультиплеер на .bat

Время на прочтение7 мин
Охват и читатели14K

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

Как я вскрыл «умный» замок пятью способами за пять минут

Время на прочтение7 мин
Охват и читатели47K

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

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

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

Читать далее

Разработка на скорости 450 слов в минуту

Время на прочтение6 мин
Охват и читатели94K
«Чего-то здесь не хватает». Спорим, такая мысль первой придёт в вашу голову, если увидите моё рабочее место в офисе. Здесь нет монитора и мыши. Есть только парень, который молотит по клавиатуре, глядя словно в пустоту.



Это всего лишь я, и мои коллеги гарантируют вам, что я обычно не опасен. Я программист в офисе компании Vincit в Тампере (Финляндия). И ещё я слепой. В этой статье хочу немного рассказать, как я работаю.
Читать дальше →

Математик взломал сайт знакомств и нашёл девушку мечты

Время на прочтение3 мин
Охват и читатели223K


35-летнему математику Крису Маккинли (Chris McKinlay) из Калифорнийского университета в Лос-Анджелесе потребовалось всего 88 дней, чтобы осуществить дата-майнинг анкет на сайте знакомств и подобрать девушку, которая идеально подходит по характеру. Помог ему в этом доступ к суперкомпьютерам Калифорнийского университета, пишет Wired.
Читать дальше →

Игровая партия длиной 12 лет… Кто больше?

Время на прочтение5 мин
Охват и читатели134K
Вы слышали, чтобы одна конкретная многопользовательская игра длилась более 12 лет? А я вам про это расскажу…
Читать дальше →

о1: почему новая GPT от OpenAI — это не хайп, а переход к новой парадигме в ИИ

Уровень сложностиПростой
Время на прочтение27 мин
Охват и читатели76K

Последние пару лет развитие языковых нейросетей как будто бы шло по принципу «больше, длиннее, жирнее»: разработчики пытались раздуть свои модели на как можно большее число параметров и прогнать через них максимальный объем тренировочных данных. 12 сентября OpenAI выпустили новую LLM, которая добавляет в это уравнение еще одно измерение для прокачки: теперь можно масштабировать объем «мыслей», который модель будет тратить в процессе своей работы. В этой статье мы разберемся, чему научилась новая GPT o1, и как это повлияет на дальнейшую эволюцию ИИ.

Давайте выясним →

Ближайшие события

Одноплатник на 155-й серии

Время на прочтение5 мин
Охват и читатели37K

Эта история началась с ухода в отпуск зимой. Вы только представьте! Полярная ночь, темно хоть глаз выколи и дикий мороз. И вот сижу я такой страдалец, не зная, чем себя занять горемычного. А тут выскакивает статья, что японцы собрали однобитный компьютер на четырех микросхемах. (Naoto64). И вот то ли от безделья, то ли от тоски, или азарт меня одолел, но решил я попробовать собрать «одноплатник» с минимальным количеством микросхем. Под словом «минимальным» я подразумеваю компромисс между функционалом и лишним корпусом микросхемы. В итоге получилось при минимальной комплектации 26 микросхем. Это конечно гораздо больше, чем у Naoto64, но за то это уже 4-х битный «одноплатник».

Читать далее

Яндекс помогает распространять вредоносное ПО?

Время на прочтение4 мин
Охват и читатели127K
По роду деятельности мне приходится наблюдать за работой сотен рядовых пользователей ПК. Человек, который не первый день держит мышку, всё чаще сталкивается с проблемами при банальном скачивании бесплатного ПО. При разборе выясняется, что он всего лишь набрал в Яндексе «скачать Вайбер», а дальше что-то пошло не так. Я давно слежу за распространением заразы при непосредственном участии Яндекса. Когда-то это были единичные случаи, но теперь явление уже приобрело массовый характер. Объясню, в чём суть. Введём в запросе название любой популярной программы, которую условный домашний пользователь хочет скачать, и получим примерно такую выдачу:

image
Читать дальше →

DeviceLock DLP: Цены российского черного рынка на пробив персональных данных (плюс ответ на ответ Тинькофф Банка)

Время на прочтение4 мин
Охват и читатели129K

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


Заодно посмотрим изменение цен и предложений на этом «рынке», а также реакцию «Тинькофф Банка» на вот это вот все.



Поехали...

Читать дальше →

Как Сбербанк распространяет ваши личные данные

Время на прочтение1 мин
Охват и читатели173K
Я дал знакомому номер моей карты, чтобы он мог перевести мне деньги.
Знакомый сделал перевод и получил квитанцию.
В его квитанции оказались указаны мои паспортные данные (см. скан квитанции под катом).

Я сообщил о проблеме на странице www.facebook.com/sberbank, получил рекомендацию написать на адрес zabota@sberbank.ru

17 сентября я отправил на этот адрес описание истории и вопрос:

«Сообщите пожалуйста, почему и как в квитанции оказались мои паспортные данные и, таким образом, произошла передача моих персональных данных третьему лицу?»

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

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

UPDATE — NB: А в Альфа-клике Альфа-Банка оказывается можно узнать ФИО и номер счёта клиента, зная лишь имейл или телефон (откройте печатную форму после перевода). Гуляй, Рассея!

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


Читать дальше →

Использование IPv4 адресов с российским размахом

Время на прочтение1 мин
Охват и читатели1.7K
По мотивам bash'а.

Для тех, кто недостаточно хорошо помнит гимн РФ:
for i in {200..225}; do nslookup 62.76.96.$i | grep "(?<=name = ).*$" -o -P ; done

upd Варианты улучшенные:

лаконичный
dig -t ptr +short {200..225}.96.76.62.in-addr.arpa

винда с PowerShell
for ($i=200; $i -le 223; $i++){(nslookup 62.76.96.$i)[3].ToString().Replace('.', ' ').Substring(9)}

винда без PowerShell
for /l %i in (200,1,255) do nslookup 62.76.96.%i

Почему твоя мама всё ещё не прогает?

Время на прочтение11 мин
Охват и читатели129K

Случай с бомжом

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

Обычно вместо денег я даю попрошайкам-мужчинам телефон отдела кадров одной курьерской компании, которая постоянно нуждается в сотрудниках. Но у него не было ног… Тогда я подумал: «Чувак, у тебя полным полно времени. Работа за компом — лучшее, что может случиться в твоей жизни. Купон со скидкой на курс по PHP — вот, что должны были положить тебе на койку туда, где раньше были ноги, когда ты очнулся после ампутации».

Я решил предложить ему изучить программирование. В его положении он должен был быть чертовски мотивирован. Но получится ли у него?

Читать далее

Функциональное программирование — это не то, что нам рассказывают

Время на прочтение17 мин
Охват и читатели133K

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



Хотя люди обычно признают удобства ФП фич, ведь намного приятнее писать:


int Factorial(int n)
{
    Log.Info($"Computing factorial of {n}");
    return Enumerable.Range(1, n).Aggregate((x, y) => x * y);
}

чем ужасные императивные программы вроде


int Factorial(int n)
{
    int result = 1;
    for (int i = 2; i <= n; i++)
    {
        result *= i;
    }
    return result;
}

Так ведь? С одной стороны да. А с другой именно вторая программа в отличие от первой является функциональной.


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

Читать дальше →