Обновить
4

Программист

1
Подписчики
Отправить сообщение

Этот восхитительный Юникод

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


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

Юникод — это потрясающе! До его появления международная коммуникация была изнурительной: каждый определял свой отдельный расширенный набор символов в верхней половине ASCII (так называемые кодовые страницы). Это порождало конфликты. Просто подумайте, что немцам приходилось договариваться с корейцами, где чья кодовая страница. К счастью, появился Юникод и ввёл общий стандарт. Юникод 8.0 охватывает более 120 000 символов из более 129 письменностей. И современные, и древние, и до сих пор не расшифрованные. Юникод поддерживает текст слева направо и справа налево, наложение символов и включает самые разные культурные, политические, религиозные символы и эмодзи. Юникод потрясающе человечен, а его возможности сильно недооцениваются.
Читать дальше →

Donate — демон для автоматической оплаты задач на GitHub

Время на прочтение3 мин
Охват и читатели6.2K
Российский хакер Михаил Клементьев (jollheef) как аноним представил на LOR'е новый опенсорсный проект donate, который он описывает как «self-hosted сервис пожертвований на задачи».

Cервис можно использовать для оплаты работы над опенсорсными проектами. Вероятно, таким способом спонсоры могут оплачивать труд мейнтейнера или направлять его внимание на конкретные тикеты. Или владелец репозитория может деньгами стимулировать сообщество закрывать задачи, на которые у него самого нет времени. Текущий список вознаграждений для проектов GitHub обновляется на страничке donate.dumpstack.io.

Главные особенности сервиса — абсолютная простота, отсутствие комиссий, поддержка нескольких криптовалют и разных хостингов (пока только GitHub).
Читать дальше →

Выбор архиватора для бэкапа логов

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

Всем привет!


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


Подразделение, в котором я работаю, занимается разработкой и сопровождением единой фронт офисной системы Банка. Я отвечаю за ее сопровождение, мониторинг и DevOps.


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


Ежедневно наша система генерирует более 130 ГБ «сырых» логов и, несмотря на то, что мы используем ENG стек (Elasticsearch Nxlog Graylog), файловые логи содержат гораздо больше информации (например, stack trace ошибок), поэтому требуют архивирования и хранения.


Так как место хранения ограничено, встаёт вопрос: «А какой архиватор лучше всего справится с этой задачей».


Для решения этого вопроса я написал скрипт на языке PowerShell, который произвел анализ за меня.

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

Китайский мозг, или в защиту Яровой

Время на прочтение4 мин
Охват и читатели26K
(не политика). В качестве эпиграфа хочется выбрать строфу “Видит горы и леса, Облака и небеса. Но не видит ничего, Что под носом у него” – впервые я ее прочитал у Стругацких в “Волны гасят ветер”. Ее говорил колдун с планеты Саракш, который понял, что земляне не видят кое-что важного у них самих на Земле. Стругацкие это вроде скопипастили у Хармса. Возможно это перевод. Но дело не в этом.

Мы часто обсуждаем, когда у нас будет полноценный ИИ. И пока до него довольно далеко. Разницу между “ребята готовы к обеду” и “цыплята готовы к обеду” ИИ еще плохо видит, потому что мало данных из внешнего мира. Это меняется, хоть и небыстро. Однако я утверждаю, что ИИ уже существует (хотя первая буква И — не верна). Мы просто смотрим не туда.


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

Гайд для фрилансеров: самые частые вопросы по работе ИП

Время на прочтение13 мин
Охват и читатели39K
В ноябре мы задумали собрать большой пост о том, как жить, если ты индивидуальный предприниматель (ИП). Мы попросили пользователей Хабра набросать нам вопросы из серии «хотели знать, но боялись спросить». Получился отличный список.

Ответить на вопросы мы предложили нашим друзям из Тинькофф Бизнеса — они сами регистрируют ИП и знают все юридические тонкости. Главный бонус: в течение недели в комментариях будет дежурить mat-ulyana, которая ответит на любые дополнительные вопросы.

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

Взлом с помощью Юникода (на примере GitHub)

Время на прочтение3 мин
Охват и читатели26K
Юникод исключительно сложен. Мало кто знает все хитрости: от невидимых символов и контрольных знаков до суррогатных пар и комбинированных эмодзи (когда при сложении двух знаков получается третий). Стандарт включает 216 кодовых позиций в 17-ти плоскостях. По сути, изучение Юникода можно сравнить с изучением отдельного языка программирования.

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

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

Математики достигли прорыва в изучении «опасной» задачи

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

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



Возьмите любое число. Если оно чётное, поделите его на два. Если нечётное, умножьте на три, прибавьте один. Повторите. Любое ли число в итоге приходит к 1?

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

Гипотеза Коллатца, возможно, простейшая из нерешённых задач математики – именно это и делает её такой предательски притягательной.

«Это очень опасная задача. Люди становятся одержимыми ею, при том, что она совершенно невозможна», — сказал Джеффри Лагариас, математик из Мичиганского университета, эксперт по гипотезе Коллатца.

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

Как я чуть не выкинул 150к на ветер или история установки приточной вентиляции в квартире

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

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


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

На моей визитке работает Linux

Время на прочтение6 мин
Охват и читатели114K
Перевод статьи из блога инженера Джорджа Хиллиарда


Кликабельно

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

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

Я подумал: «Эти процессоры настолько дешёвые, что их практически можно раздавать даром». И через некоторое время ко мне пришла идея сделать голую карточку для Linux в форм-факторе визитной карточки.
Читать дальше →

Как сделать из нейросети журналиста, или «Секреты сокращения текста на Хабре без лишних слов»

Время на прочтение10 мин
Охват и читатели15K
Только не удивляйтесь, но второй заголовок к этому посту сгенерировала нейросеть, а точнее алгоритм саммаризации. А что такое саммаризация?

Это одна из ключевых и классических задач Natural Language Processing (NLP). Она заключается в создании алгоритма, который принимает на вход текст и на выходе выдаёт его сокращённую версию. Причем в ней сохраняется корректная структура (соответствующая нормам языка) и правильно передается основная мысль текста.

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

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

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

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

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



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


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;
}

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


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

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

Android, Google и свободные лицензии на контент. Кто виноват и что делать

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

История ещё одного бана.


Всем привет! Слышали ли вы когда-то про баны приложений и разработчиков в Google Play? Вот вам ещё одна такая история. Плюс попытка собрать в одном месте похожие случаи и предложить какой-то план действий по предотвращению произвола Google в этой области. Ибо нехорошо, когда тебя банят за легальное использование свободного материала. А мне лично нравится идея лицензий на контент типа CC BY-SA, которые разрешают любое оного использование, включая коммерческое. В частности, в том числе из-за такой лицензии, мы, разработчики, имеем такие прекрасные сайты как StackOverflow, где я даже модератором избран. К сожалению, такие компании как Google не уважают идеи, лежащие в основе таких лицензий. Вот вам моя история.

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

Кем был Рамануджан?

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

Перевод поста Stephen Wolfram "Who Was Ramanujan?".
Выражаю огромную благодарность Полине Сологуб за помощь в переводе и подготовке публикации

Содержание


Удивительное письмо
Начало истории
Кем был Харди?
Письмо и его последствия
Стиль работы Рамануджана
Видеть то, что важно
Истина или объяснение
Переход в Кембридж
Рамануджан в Кембридже
Что было дальше
Что стало с Харди?
Математика Рамануджана
Факты — случайные или нет?
Автоматизация работ Рамануджана
Современные Рамануджаны?
Что было бы, если бы у Рамануджана была Mathematica?
На этой неделе вышел фильм "Человек, который познал бесконечность" (который мне показали еще прошлой осенью Манджул Бхаргава и Кен Оно), так что я не мог не написать о его главном герое — Сринивасе Рамануджане.



Удивительное письмо


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

Около 31 января 1913 года математик по имени Харди из Кембриджа, Англия, получил пакет документов с сопроводительным письмом, которое начиналось так: "Дорогой сэр, хочу представиться вам: я клерк из бухгалтерии порта в Мадрасе с зарплатой £20 в год. Мне 23 года....». И продолжал: писал о том, что достиг «поразительного» прогресса в теории расходящихся рядов по математике и решил давнишнюю проблему распределения простых чисел. Сопроводительное письмо заканчивалось словами: "Я беден; если вы решите, что здесь есть что-нибудь ценное, я хотел бы, чтобы мои теоремы были опубликованы… Я неопытен, и любые ваши советы ценны для меня. Прошу извинить меня за доставленные неудобства. Искренне ваш, с уважением, С. Рамануджан".
Читать дальше о Рамануджане...

Почему сумма трёх кубов – это такая сложная математическая задача

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

Тяжело искать ответы в бесконечном пространстве. Математика уровня старших классов может помочь вам сузить область поисков.




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

К примеру, нам было известно, что число 3 можно записать в виде 13 + 13 + 13, а также в виде 43 + 43 + (-5)3, однако более 60 лет математиков интересовал вопрос, нет ли ещё одного способа сделать это. И в этом сентябре Эндрю Букер и Эндрю Сазерленд, наконец, нашли и третий способ:
Читать дальше →

Простые числа — насколько велико наше бессилие?

Время на прочтение9 мин
Охват и читатели46K
Представьте, что вас окружает бесконечно высокая стена, а о том, что находится за стеной абсолютно ничего неизвестно. Теперь представьте, что олицетворением данной стены является вот это уравнение:

image

Эту метафору будет проще понять, если провести аналогию с черной дырой: мы не знаем, что находится под ее горизонтом событий, и чтобы это узнать нам нужно придумать способ, как туда добраться. Нечто подобное существует в мире математики. Данное уравнение — это настоящая «формула» простого числа, но чтобы ею пользоваться, нам нужно придумать, как искать подходящие {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, w, v, x, y, z}.

Черная дыра и данное уравнение — это предельные состояния чего-то реального и абстрактного. И, если о первом существует достаточно догадок и представлений, то о втором, практически ничего не известно. Но, что если это действительно «математическая» черная дыра? Разве вам не интересно что может произойти, если мы попадем под горизонт?
Под горизонт.

Процесс компиляции программ на C++

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

Цель данной статьи:


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

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

Размышления про идеальный корпус

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

Здравствуйте. На написание этой статьи меня побудил наметившийся апгрейд домашней системы и недавняя статья Настольный. Металлический. Бесшумный. Твой?. Чтобы найти приемлемый вариант мне пришлось перелопатить кучу моделей корпусов и сейчас я хочу поделиться своей болью с вами.


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



Типичный компьютерный корпус с точки зрения термодинамики

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

Админ биржи WEX (BTC-e) рассказал, как ФСБ забрала у него $450 млн и данные всех пользователей

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

Как admin'а перевозили по Москве 25-27 апреля 2018 года. После серии переездов и бесед он отдал сопровождающим активы биржи. Источник: из показаний Билюченко в рамках уголовного дела о мошенничестве с активами Wex. Инфографика: BBC

Русская служба BBC News опубликовала результаты расследования, показания свидетелей и расшифровки переговоров, которые помогают понять, куда ушли деньги с крупнейшей русскоязычной криптобиржи WEX (бывшая BTC-e), прекратившей работу в прошлом году. Все ключи хранились у Алексея Билюченко (ник admin) на флэшке, которую он всегда носил с собой.

Мужчина задержан и дал показания.
Читать дальше →

Первым хитовым форматом файлов в интернете был не MP3, а MIDI

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

Как нацеленный на профессионалов формат MIDI на короткое, но примечательное время стал основным способом распространения музыки в интернете




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

Я не большой фанат хард-рока, но это отличная песня, успех которой Guns N’ Roses не смогли превзойти за 27,5 лет, прошедших с тех пор, как она стала самой раскрученной на радио. Это самая длинная песня, попавшая в десятку лучших хитов Billboard Hot 100 – длиннее, чем American Pie. Много лет она была эталоном популярной музыки.

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

Она длится девять минут. И повествует об опыте длиною в жизнь – если ваша жизнь похожа на жизнь Эксла Роуза.

Инкремент элементов вектора

Время на прочтение13 мин
Охват и читатели18K
В каком случае инкремент элементов вектора std::vector будет быстрее – если они имеют тип uint8_t или uint32_t?

Чтобы не рассуждать отвлечённо, рассмотрим две конкретные реализации:

void vector8_inc(std::vector<uint8_t>& v)
{
  for (size_t i = 0; i < v.size(); i++)
  {
    v[i]++;
  }
}

void vector32_inc(std::vector<uint32_t>& v)
{
  for (size_t i = 0; i < v.size(); i++)
  {
    v[i]++;
  }
}
Попробуем угадать

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность