Pull to refresh
-13
0

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

Send message

Аннотации в JAVA: обзор синтаксиса и создание собственных

Reading time4 min
Views263K
Статья ориентирована больше на новичков, или тех, кто еще не работал с данным механизмом в языке. Я постараюсь рассказать, что это такое, зачем они нужны, и как можно самому создавать удобные для себя аннотации.

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

Производящие функции — туда и обратно

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

Введение


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

Идея производящих функций достаточно проста: сопоставим некоторой последовательности <g0, g1, g2, ..., gn> — дискретному объекту, степенной ряд g0 + g1z + g2z2 +… + gnzn +… — объект непрерывный, тем самым мы подключаем к решению задачи целый арсенал средств математического анализа. Обычно говорят, последовательность генерируется, порождается производящей функцией. Важно понимать, что это символьная конструкция, то есть вместо символа z может быть любой объект, для которого определены операции сложения и умножения.
Читать дальше →

Рождение и развитие Unix

Reading time8 min
Views20K

Томпсон (сидит) и Ритчи работают на PDP-11, 1972 год.

Период 1968-69 гг. был очень неопределенным для Bell Labs: проект операционной системы с разделением времени Multics (Multiplexed Information and Computing Service), разрабатываемой с 1964 года для дорогой 36-битной ЭВМ GE-645, не имел четких перспектив и целей, а лишь разрастался в размерах и сложности, всё ясней был виден его предполагаемый провал. В конце концов, American Telephone & Telegraph вышла из проекта, в который за пять лет были вложены миллионы долларов.

Однако, некоторые из инженеров, работавших над Multics — Кен Томпсон, Деннис Ритчи, Малкольм Дуглас Макилрой, Джозеф Оссанна, — ощущали необходимость в продолжении работы над подобным проектом, и не хотели терять успевшую сформироваться уютную рабочую атмосферу. Поэтому в 1969 году они начали искать альтернативу Multics: Оссанна, Томпсон, Ритчи пытались протолкнуть покупку машины средней мощности, для которой группа обещала написать операционную систему. Заказ на предлагаемые ЭВМ DEC PDP-10 и Sigma 7 так и не был сделан, и хотя несколько раз ситуация выходила на грань получения нужного оборудования, было вполне очевидно, что команда просит слишком крупную сумму для проекта с расплывчатым планом, тем более, что после провала Multics операционные системы стали не настолько привлекательной сферой. Поэтому Томпсон (в основном это была его задумка), Кэнэдэй и Ритчи (привнесший идею файлов-устройств) разработали на обычных черных учебных досках и бумаге устройство файловой системы, которая позже стала сердцем Unix.
Читать дальше →

Стартовали продажи ноутбука Aurora 7 с семью дисплеями

Reading time4 min
Views77K

Разработчики этого чуда техники, создавая прототип, явно проговаривали про себя: «Маловато будет!», имея в виду количество экранов. Два дисплея? Банально и относительно часто встречается. Три? Ну нет. Вот семь — в самый раз, это отлично.

Этот ноутбук пару раз упоминали на Хабре, включая новость с CES, но как-то это было все абстрактно. А теперь, когда компания запустила продажи системы, стали известны многие технические детали.

Руководство по проектированию реляционных баз данных (10-13 часть из 15) [перевод]

Reading time7 min
Views186K
Продолжение.
Предыдущие части: 1-3, 4-6, 7-9

10. Нормализация баз данных


Указания для правильного проектирования реляционных баз данных изложены в реляционной модели данных. Они собраны в 5 групп, которые называются нормальными формами. Первая нормальная форма представляет самый низкий уровень нормализации баз данных. Пятый уровень представляет высший уровень нормализации.

Нормальные формы – это рекомендации по проектированию баз данных. Вы не обязаны придерживаться всех пяти нормальных форм при проектировании баз данных. Тем не менее, рекомендуется нормализовать базу данных в некоторой степени потому, что этот процесс имеет ряд существенных преимуществ с точки зрения эффективности и удобства обращения с вашей базой данных.
Читать дальше →

Исследование сетевого трафика

Reading time4 min
Views13K

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

Читать далее

Сетевая подсистема в ОС

Reading time7 min
Views16K

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

Disclamer: Статья описывает данные, которые с точки зрения автора помогут понять, как работают операционные системы с моделью TCP/IP, и не претендует на полноту.

Читать далее

Для чего идут изучать язык С?

Reading time4 min
Views26K

Привет, хабровчане! Наши преподаватели — Виктор Коробков, эксперт с 15-летним стажем в IT, и Андрей Кравчук, разработчик в RavenPack International, рассказали, почему язык C до сих пор актуален, и зачем его осваивать тем, кто занимается разработкой на других языках. Статья подготовлена специально в преддверии старта нового практического онлайн-курса «Программист C», чтобы помочь разобраться, пригодятся ли эти навыки вам.

Читать далее

Проект Natasha. Набор качественных открытых инструментов для обработки естественного русского языка (NLP)

Reading time34 min
Views108K
Два года назад я писал на Хабр статью про Yargy-парсер и библиотеку Natasha, рассказывал про решение задачи NER для русского языка, построенное на правилах. Проект хорошо приняли. Yargy-парсер заменил яндексовый Томита-парсер в крупных проектах внутри Сбера, Интерфакса и РИА Новостей. Библиотека Natasha сейчас встроена в образовательные программы ВШЭ, МФТИ и МГУ.

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

Для новостных статей качество на всех задачах сравнимо или превосходит существующие решения. Например с задачей NER Natasha справляется на 1 процентный пункт хуже, чем Deeppavlov BERT NER (F1 PER 0.97, LOC 0.91, ORG 0.85), модель весит в 75 раз меньше (27МБ), работает на CPU в 2 раза быстрее (25 статей/сек), чем BERT NER на GPU.

В проекте 9 репозиториев, библиотека Natasha объединяет их под одним интерфейсом. В статье поговорим про новые инструменты, сравним их с существующими решениями: Deeppavlov, SpaCy, UDPipe.

Стив пишет заклинания на Python. Обучение детей программированию в Minecraft

Reading time5 min
Views31K

Хочу поделиться наработками домашнего обучения детей программированию. Даже не столько обучению, сколько привлечения детского внимания и интереса. Ведь согласно Сократу, человек - не сосуд для наполнения, а факел, который нужно зажечь. Изначально были попытки начать со Scratch, но несмотря на понятный графический интерфейс, желание продолжать и что-то делать в среде быстро угасло. Minecraft пошел намного лучше, потому что дети уже были хорошо знакомы с игрой по мобильной версии и любимому creative mode.

Я не имею в виду создание и использование модов, это слишком высокий уровень входа. Первые попытки были после знакомства с первым изданием книги "Minecraft. Программируй свой мир" и удачной настройки сервера Bukkit на домашней машине. На данный момент (начало 2021 г.) есть второе издание, а также несколько похожих книг других авторов.

Читать далее

Учим английский дешево и эффективно

Reading time9 min
Views162K
Английский можно выучить дешево, иногда даже бесплатно. В этой статье я расскажу про личный опыт: какой софт и ресурсы в Интернет оказались максимально эффективными для меня, и как ими правильно пользоваться.

Если вы не готовы тратить на английский хотя бы 2 часа в день, то дальше можно не читать.
Читать дальше →

Как удалить «неудаляемые» приложения со смартфона

Reading time5 min
Views277K


Чтобы увеличить привлекательность смартфонов, производители ставят на них как можно больше разных программ. Это понятно. Просто берём и удаляем ненужное… Стоп.

Оказывается, некоторые программы невозможно удалить. Например, на отдельных моделях Samsung невозможно удалить Facebook (есть только опция 'disable'). Говорят, на Samsung S9 вдобавок предустановлены «неудаляемые» приложения Microsoft.

Эти смартфоны приведены для примера. Такая же проблема и на других моделях. На многих есть неудаляемые программы от самого производителя.

Всё это надо зачистить.
Читать дальше →

Linux exploits

Reading time6 min
Views12K

Операционная система Linux доказала миру всю силу Open Source проектов — благодаря ей у нас сегодня есть возможность заглянуть в исходный код рабочей ОС и на его основе собрать свою собственную систему для решения тех или иных задач. По причине своей открытости Linux должна была стать самой безопасной операционной системой в мире, так как открытый исходный код позволяет развивать и улучшать подсистемы защиты от атак на ОС и совершенствовать саму операционную систему. Действительно, на данный момент существует большое количество созданных комьюнити защит: сегодня уже просто не так просто проэксплуатировать уязвимости типа переполнения буфера для получения повышенных привилегий так же, как 20 лет назад. Тем не менее, сегодня можно в открытом доступе встретить эксплойты, которые даже на последних версиях ядра могут повысить привилегии пользователя. Рассмотрим в этой статье, как это работает и почему так получается. Мы пройдемся по основным составляющим эксплойтов и рассмотрим, как работают некоторые из них.

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

Читать далее

Вакцина «Спутник V»: инструкция, как испортить хорошее дело

Reading time9 min
Views223K

Давайте на минуту отбросим все предубеждения и стереотипы об отечественной медицине и попробуем объективно разобраться в том, что сделано правильно, а что неправильно с "первой в мире вакциной от COVID" — Спутник V от «НИИ эпидемиологии и микробиологии им. Н. Гамалеи».


Поговорим о том, как устроена современная наука в целом и доказательная медицина в частности, и при чем тут пиар.


image

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

Один совет, благодаря которому я успешно прошёл несколько собеседований

Reading time6 min
Views176K
— Что вы скажете, если я попрошу вас разработать сервис, который обрабатывает тысячи запросов в секунду с минимальной задержкой?

— Хм… Я скажу, что у вас в компании возникла такая проблема. Но у вас нет идей и вы обсуждаете её на собеседованиях с кандидатами :)

Именно так я ответил, когда мне впервые задали вопрос по архитектуре. Мы хорошо посмеялись. Но потом интервьюер всё-таки заставил меня спроектировать сервис.
Читать дальше →

Охота на охотников за криптовалютой

Reading time2 min
Views47K

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

Воруй-убивай, пиши-качай

Reading time2 min
Views31K
В январе этого года в одном из сервисов ICQ была найдена уязвимость. Она была связана с доступом к файлам, которые когда-то пользователи передавали друг-другу. Уязвимость устранили, но такие ситуации отнюдь не уникальные.
Ниже мы рассмотрим еще один сервис, предназначенный для файлообмена между пользователями.
image
Хочу приватов

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

Reading time13 min
Views156K
image

Статья написана на ThinkPad X60s 2006 года.

Когда я работал независимым журналистом (или трудился в офисе, если угодно), я всегда думал, что мне нужен хороший компьютер, и что я должен платить за качество. В период с 2000 по 2017 год я пользовался тремя ноутбуками, на которые я потратил в общей сложности около 5000 евро — примерно 300 евро в год. Средний срок службы каждого из этих трех ноутбуков составлял 5,7 года.

В 2017, когда я уходил из офиса и начинал заниматься своим сайтом, я решил, что больше не буду покупать новые ноутбуки. Я купил на вторичном рынке нотбук 2006 года за 50 евро – и он делает все, что мне нужно. Вместе с новым аккумулятором и парой апгрейдов железа он обошелся мне в 150 евро.

Если мой ноутбук 2006 года прослужит столько же, сколько и прошлые машины (для этого ему нужно проработать еще 1.7 года), то он будет стоить мне всего 26 евро в год. Это в 10 раз меньше расходов на мои прошлые ноутбуки. В этой статье я расскажу, почему я перестал покупать новые ноутбуки и объясню, как вам делать то же самое.
Читать дальше →

Как малоизвестный британский производитель ПК изобрел ARM и изменил мир

Reading time8 min
Views14K

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

Телефоны и большая часть нашего цифрового окружения работают на семействе процессоров ARM. И новые компьютеры Apple с новым процессором M1 (на базе ARM) получают фантастические отзывы. Поэтому самое время вспомнить о странных корнях этих микросхем, распространившихся по всему миру. 

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

Но что если бы вместо этого вы решили выбрать процессоры малоизвестной компании из страны, которая не приходит на ум в качестве мирового лидера в области высокотехнологичных инноваций (по крайней мере не в 1800-х годах)? А что, если бы этот процессор был обязан своим рождением, по крайней мере косвенно, образовательному телешоу? Скорее всего, продюсеры посоветуют вам немного отмотать сценарий — «‎Давай же, отнесись к этому серьезно». И все же на самом деле все было именно так.

Это интересно!

Интуитивное объяснение интеграла. Часть I — от умножения натуральных чисел до Ньютона и Лейбница

Reading time10 min
Views65K

Если у Вас нет математического образования, если Вы хотите по-настоящему разобраться в том, что из себя представляет интеграл и интегрирование, зачем всё это надо, как математика пришла к идее интеграла, то в таком случае Вы пришли по адресу — добро пожаловать!

Читать далее

Information

Rating
10,060-th
Registered
Activity