Как стать автором
Обновить
1
0
Артем @unit4

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

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

Первые шаги по Rust

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

image


Всем привет. Недавно познакомился с новым для себя языком программирования Rust. Я заметил, что он отличается от других, с которыми мне до этого доводилось сталкиваться. Поэтому решил покопать глубже. Результатами и своими впечатлениями хочу поделиться:


  • Начну с главной, на мой взгляд, особенности Rust
  • Опишу интересные детали синтаксиса
  • Объясню, почему Rust, скорее всего, не захватит мир

Сразу поясню, что я около десяти лет пишу на Java, так что рассуждать буду со своей колокольни.

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

Разработка ПО через призму эксперимента Милгрэма «Подчинение авторитету»

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

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

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

Как работают браузеры — введение в безопасность веб-приложений

Время на прочтение9 мин
Количество просмотров67K
Давайте начнем серию статей по безопасности веб-приложений с объяснением того, что делают браузеры и как именно они это делают. Поскольку большинство ваших клиентов будут взаимодействовать с вашим веб-приложением через браузеры, необходимо понимать основы функционирования этих замечательных программ.

image
Chrome и lynx

Браузер — это движок рендеринга. Его работа заключается в том, чтобы загрузить веб-страницу и представить её в понятном для человека виде.

Хоть это и почти преступное упрощение, но пока это все, что нам нужно знать на данный момент.

  • Пользователь вводит адрес в строке ввода браузера.
  • Браузер загружает «документ» по этому URL и отображает его.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии2

Web Security: введение в HTTP

Время на прочтение11 мин
Количество просмотров41K
HTTP — вещь прекрасная: протокол, который просуществовал более 20 лет без особых изменений.

image

Это вторая часть серии по веб-безопасности: первая часть была «Как работают браузеры».

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

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

При обсуждении HTTP, тем не менее, мы всегда должны различать семантику и техническую реализацию, поскольку это два совершенно разных аспекта работы HTTP.
Читать дальше →
Всего голосов 20: ↑16 и ↓4+12
Комментарии12

Пишем операционную систему на Rust. Страничная организация памяти

Время на прочтение17 мин
Количество просмотров31K
В этой статье представляем страницы, очень распространённую схему управления памятью, которую мы тоже применим в нашей ОС. Статья объясняет, почему необходима изоляция памяти, как работает сегментация, что такое виртуальная память и как страницы решают проблему фрагментации. Также исследуем схему многоуровневых таблиц страниц в архитектуре x86_64.

Этот блог выложен на GitHub. Если у вас какие-то вопросы или проблемы, открывайте там соответствующий запрос.
Читать дальше →
Всего голосов 83: ↑83 и ↓0+83
Комментарии17

Топ-65 вопросов по SQL с собеседований, к которым вы должны подготовиться в 2019 году. Часть I

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


Перевод статьи подготовлен для студентов курса «MS SQL Server разработчик»




Реляционные базы данных являются одними из наиболее часто используемых баз данных по сей день, и поэтому навыки работы с SQL для большинства должностей являются обязательными. В этой статье с вопросами по SQL с собеседований я познакомлю вас с наиболее часто задаваемыми вопросами по SQL (Structured Query Language — язык структурированных запросов). Эта статья является идеальным руководством для изучения всех концепций, связанных с SQL, Oracle, MS SQL Server и базой данных MySQL.

Читать дальше →
Всего голосов 62: ↑33 и ↓29+4
Комментарии88

Дешёвые и дорогие батарейки ААА

Время на прочтение3 мин
Количество просмотров347K
Реклама добилась своего: большинство покупателей уверены, что батарейки Duracell и Energizer значительно лучше других. Чтобы проверить, так ли это, я протестировал 20 видов щелочных (alkaline) батареек AAA — от самых дешёвых до самых дорогих.


Читать дальше →
Всего голосов 369: ↑363 и ↓6+357
Комментарии388

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

Время на прочтение3 мин
Количество просмотров15K
Почти три года прошло с момента написания первой части. Наверное, даже ссылку давать смысла уже нет. Все это время я продолжал изучать английский с помощью различных сайтов и приложений, ресурсы менялись, но идеальными так и не стали.

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

Да, велосипедов создано много, но мне есть, что предложить, и я прекрасно помню, как волнует эта тема местную публику, так что комментарии приветствуются.
Всего голосов 19: ↑11 и ↓8+3
Комментарии66

Шум в больших данных. Анализ на основе энтропии информации

Время на прочтение4 мин
Количество просмотров7.9K
Попалась задача под названием «Квартет Энскомба (Анскомба)» (англ.версия).

На рисунке 1 представлено табличное распределение 4 случайных функций (взято из Википедии).

image
Рис. 1. Табличное распределение четырех случайных функций

На рисунке 2 представлены параметры распределения этих случайных функций

image
Рис. 2. Параметры распределений четырех случайных функций

И их графики на рисунке 3.

image
Рис. 3. Графики четырех случайных функций

Проблема различения этих функций решается достаточно просто, путем сопоставления моментов высших порядков и их нормированных показателей: коэффициента асимметрии и коэффициента эксцесса. Данные показатели представлены на рисунке 4.
Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии5

Легендарный Intel Core i7-2600K: тестирование Sandy Bridge в 2019 году (часть 1)

Время на прочтение17 мин
Количество просмотров95K
Часть 1>> Часть 2 >> Часть 3



Одним из самых популярных процессоров уходящего десятилетия стал Intel Core i7-2600K. Дизайн был революционным, так как он предлагал значительный скачок в производительности и эффективности одноядерного процессора, а сам процессор еще и хорошо поддавался разгону. Следующие несколько поколений процессоров Intel выглядели уже не такими интересными, и часто не давали пользователям повода для апгрейда, поэтому фраза «Я останусь с моим 2600К» стала повсеместной на форумах и звучит даже сегодня. В этом обзоре мы стряхнули пыль с коробки со старыми процессорами и прогнали ветерана через набор бенчмарков 2019 года, как на заводских параметрах, так и в разгоне, чтобы убедиться, что он по-прежнему является чемпионом.
Читать дальше →
Всего голосов 61: ↑52 и ↓9+43
Комментарии91

Что читают инженеры GridGain. Книги для тех, кто интересуется In-Memory Computing

Время на прочтение3 мин
Количество просмотров12K
Не так давно у нас в корпоративном чате развернулась баталия по поводу бумажных книг и книг вообще. Оказалось, что, несмотря на популярность блогов и обучающих видео, любителей полистать хорошую книгу на читалке, или даже в бумаге, у нас достаточно много. Тем более, к некоторым книгам хочется иногда возвращаться, чтобы уложить всё в голове или поискать решение конкретной задачи.


Мы даже составили небольшой список книг, которые нам очень нравятся. Ну и еще это подсказка для собеседований по нашим свеженьким вакансиям, конечно. Не в смысле запомнить пару названий, а в смысле прочитать, разумеется.
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии8

Коренные микробы и особенности пищеварения

Время на прочтение9 мин
Количество просмотров12K
Термин “холобионт” объединяет организм хозяина и его коренных микробов (indibiome), совокупность генетического материала в системе хозяин-микроб дает более точное описание сложной системы и за счет возможностей направленного изменения микробиоты позволяет исправлять состояния характеризующиеся как дистресс.

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

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


Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии38

Optlib. Реализация генетического алгоритма оптимизации на Rust

Время на прочтение27 мин
Количество просмотров14K
В этой статье описывается библиотека optlib, предназначенная для решения задач глобальной оптимизации на языке Rust. На момент написания этой статьи в этой библиотеке реализован генетический алгоритм нахождения глобального минимума функции. Библиотека optlib не привязана к конкретному типу входных данных для оптимизируемой функции. Также библиотека построена таким образом, что при использовании генетического алгоритма можно легко менять алгоритмы скрещивания, мутации, отбора и другие этапы работы генетического алгоритма. По сути генетический алгоритм собирается как бы из кубиков.
Читать дальше →
Всего голосов 37: ↑36 и ↓1+35
Комментарии20

Разбираем магнитно-резонансный томограф II: Метаматериалы в МРТ

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


Мимо уха просвистела отвертка. С громким звоном она замерла на корпусе криостата.

Чертыхнувшись про себя, я решил взять перерыв. Откручивать болты в магнитном поле величиной 1.5 тесла, при помощи стального инструмента — так себе затея. Поле как невидимый противник постоянно пытается вырвать инструмент из рук, сориентировать его вдоль своих силовых линий и устремить как можно ближе к электронам, бегущим по замкнутому кругу из сверхпроводника. Однако, если очень нужно победить закисшие соединения многолетней давности, особо выбора нет. Я уселся за компьютер и привычно пролистал ленту новостей. «Российские ученые улучшили МРТ в 2 раза!» — гласил подозрительный заголовок.
Да не, бред какой-то
Всего голосов 124: ↑123 и ↓1+122
Комментарии22

Встречайте Open Source License Compliance Handbook

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

Большой зоопарк опенсорсных лицензий неизбежно приводит к тому, что приходится нередко задаваться вопросами касательно их совместимости, тех или иных применимых лицензионных условий в зависимости от соответствующего сценария использования. Замечательно, конечно, что существуют подробные разъяснения по тем или иным лицензиям (см., например, о GPL 2.0 или MPL 2.0; и даже по лицензии MIT умудрились сделать большой и подробный обзор).


Но действительно хорошо и полезно, когда появляются сравнительные обзоры, посвященные сразу ряду, а то и многим лицензиям в совокупности. Один из таких проектов, появившийся буквально недавно в 2019 году — Open Source License Compliance Handbook.


Этот материал именно о нем, читайте детали ниже.

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

Вся правда об ОСРВ. Статья #25. Каналы передачи данных: введение и базовые службы

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


После небольшого перерыва мы продолжаем публиковать переводы статей «Вся правда об ОСРВ» Колина Уоллса. В этот раз поговорим о каналах передачи данных (далее – каналы), которые были уже были упомянуты в одной из предыдущих статей, а именно в #5. Каналы, по сравнению с почтовыми ящиками (#21 и #22) или очередями (#23 и #24), предоставляют более гибкий способ передачи простых сообщений между задачами.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии0

JDK 9/JEP 280: конкатенация строк никогда больше не будет прежней

Время на прочтение9 мин
Количество просмотров14K
И снова здравствуйте. Как мы уже писали, на следующей неделе стартует новая группа обучения по курсу «Разработчик Java», по устоявшейся традиции делимся с вами переводом интересного материала по теме.

Начиная с JDK 9 конкатенация строк претерпела значительные изменения.

JEP 280 («Indify String Concatenation») был реализован в рамках JDK 9 и, в соответствии с разделом «Summary»: «Изменяет статическую последовательность байт-кода конкатенации строк, сгенерированную javac, для использования вызовов invokedynamic к функциям библиотеки JDK». Влияние, которое это оказывает на конкатенацию строк в Java, легче всего заметить, посмотрев на javap-вывод классов, использующих конкатенацию строк, которые скомпилированы в JDK до JDK 9 и после JDK 9.


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

Как снизить вес элемента конструкции самолета на треть

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

S-образный кронштейн – элемент исполнительного механизма системы увеличения подъемной силы самолета

Проект оптимизации и аддитивного производства силового элемента конструкции самолета, осуществленный компаниями ASCO Industries и SLM Solutions, в очередной раз доказал эффективность технологии селективного лазерного плавления. Новое решение позволило улучшить конструкцию и снизить массу детали, а также сократить общее время сборки и механической обработки.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии60

Как браузер помогает товарищу майору

Время на прочтение6 мин
Количество просмотров147K
Знаете, когда я почти нечаянно обнаружил, читая прекрасную книгу Дмитрия Кетова «Внутреннее устройство Linux» (и это не реклама), что каждый скачанный нами файл из Интернета с легкой руки браузера оставляет в расширенных атрибутах файла (в inode файла, не в самом файле) как минимум полную ссылку на то откуда он был скачан, я пришел в легкое возбуждение и хотел тут же броситься спасать мир. Позже, немного изучив этот вопрос, почитав «коммиты» и «комменты», говорившие, что этой возможности, встроенной в ядро GNU/Linux, как минимум уже около 10 лет, что ею пользуется не только браузеры, но и, к примеру, популярная утилита wget (curl нет), и что эта вещь считается чуть ли не нормой в Linux (и, как выяснилось позже, в MacOS), то я немного подуспокоился. Одно не давало мне покоя: поиск ключевого слова getfattr в google по сайту «Хабра»: site:https://habr.com getfattr, равно как и по ЛОРУ: site:https://linux.org.ru getfattr ничего толком не дал. «Значит» — подумал я — «эта тема еще особенно не обсуждалась». — Что же, тогда пришло время ее обсудить, но для начала пришлось немного по-исследовать. И вот что я обнаружил:

image
Читать дальше →
Всего голосов 265: ↑246 и ↓19+227
Комментарии322

Так-Так-Так и никакого Тика. Чем отличаются процессоры Intel Core разных поколений на основе одной архитектуры

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


С появлением процессоров Intel Core седьмого поколения многим стало понятно, что стратегия «Тик-так», которой Интел следовал всё это время, дала сбой. Обещание уменьшить технологический процесс с 14 до 10 нм так и осталось обещанием, началась долгая эпоха «Така» Skylake, во время которой случился Kaby Lake (седьмое поколение), внезапный Coffee Lake (восьмое) с незначительным изменением техпроцесса с 14 нм до 14 нм+ и даже Coffee Lake Refresh (девятое). Кажется, Интелу и правда нужен был небольшой перерыв на кофе. В итоге мы имеем несколько процессоров разных поколений, которые созданы на основе одной микроархитектуры Skylake, с одной стороны. И уверения Интела о том, что каждый новый процессор — лучше прежнего, с другой. Правда, не очень понятно, чем именно…



Поэтому вернёмся к нашим поколениям. И посмотрим, чем же они отличаются.
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии67

Информация

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