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

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

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

Что нового в .NET 6?

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

На момент написания этих строк вышло уже семь превью-версий .NET 6. Дальше — только релиз-кандидаты. Все основные фичи уже добавлены во фреймворк, идёт отладка, тестирование и оптимизация. Ожидать чего-то кардинально нового в RC-версиях, пожалуй, уже не стоит. Пришла пора рассмотреть .NET 6 поближе.


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


Поговорим об этом.

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

Отслеживание метрик SSD на Linux и какой софт для этого пригодится

Время на прочтение6 мин
Количество просмотров23K
Привет, Хабр! Любой, кто хоть раз сталкивался с неожиданной смертью флешки, жесткого диска или SSD-накопителя, расскажет вам, насколько важно отслеживать SMART-параметры и замерять скорость в бенчмарках. Независимо от системы. И если с Windows достаточно вбить в поиске CrystalMark, то пользователям Linux подобный лайфхак не подойдет. Зато подойдет этот текст, где вся история пропитана поисками.


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

Кунг-фу стиля Linux: о повторении кое-каких событий сетевой истории

Время на прочтение6 мин
Количество просмотров11K
В наши дни во встроенных системах часто имеется поддержка сети. Это может значительно их усложнить. Сетевая нагрузка на системы обычно не отличается высоким уровнем детерминированности, существуют разные варианты таких нагрузок. Порой в сетях происходят довольно-таки странные события. Например, пусть у кого-то имеется монтажная машина (PNP), к которой может обратиться любой пользователь интернета. Про эту машину написали статью на Hackaday, после чего её владелец вдруг обнаружил, что объём данных, которыми она обменивается с интернетом, возрос в 50 раз. Как в такой ситуации ведёт себя сетевая подсистема этой машины? И хотя в задаче тестирования сетей нет универсального инструмента, способного устранить все проблемы, существуют приёмы работы, которые могут упростить решение этой задачи. Один из таких приёмов работы заключается в использовании утилит из набора tcpreplay, которые позволяют записывать совокупный сетевой трафик, а потом «воспроизводить» его различными способами. У применения этого приёма есть множество сильных сторон. Особенно — если удалось «изловить» именно то, что эпизодически приводит к возникновению ошибок. Возможность по желанию «воспроизводить» такой трафик способна значительно ускорить процесс диагностики сетевых проблем.


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

Vue 3: CompositionAPI + Typescript эксперименты

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

В прошлой статье меня упрекнули, что я при живом Vue 3 пишу про "устаревший" Vue 2. Отговорившись тем, что Vue 3 еще не production-ready, я понемногу начал его смотреть и изучать. И поскольку я заядлый любитель типизации и различных фичей с сахарком, то рассматривать Vue 3 с его новеньким CompositionAPI в статье именно с этой точки зрения. А заодно поэкспериментируем и попробуем написать свой типизированный store, организовать компоненты в стиле <script setup> и подружить его с typescript и eslint, а также напишем небольшой компонент на TSX в качестве еще одного эксперимента.

Рубрика эээксперименты!
Всего голосов 8: ↑8 и ↓0+8
Комментарии38

Arduino Nano RP2040 Connect: обзор «ардуинки» с Wi-Fi и BLE на борту

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

В середине мая мы писали о появлении новой платы от Arduino, которая получила название Arduino Nano RP2040 Connect. Ее основа — чип RP2040 от Raspberry. В знакомую компоновку Nano весьма аккуратно интегрирован модуль связи Wi-Fi Nina W102 uBlox, который обеспечивает работу 2,4 ГГц Wi-Fi, Bluetooth с низким энергопотреблением, плюс есть гироскоп (IMU), способный обнаруживать движения и жесты, и микрофон.

Нужна ли вашему проекту такая плата? Как всегда, это зависит от потребностей и бюджета. Если нужны только светодиоды и базовая функциональность без беспроводной связи, хватит возможностей Raspberry Pi Pico. Если проект имеет отношение к IoT, да еще нужен веб-интерфейс, то Arduino Nano RP2040 Connect как раз то, что нужно. Правда, с оговорками, о которых поговорим ниже.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии7

Карманная книга по TypeScript. Часть 3. Сужение типов

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

image


Мы продолжаем серию публикаций адаптированного и дополненного перевода "Карманной книги по TypeScript".

Другие части:



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


Предположим, что у нас имеется функция под названием padLeft:


function padLeft(padding: number | string, input: string): string {
 throw new Error('Еще не реализовано!')
}

Если padding — это number, значит, мы хотим добавить указанное количество пробелов перед input. Если padding — это string, значит, мы просто хотим добавить padding перед input. Попробуем реализовать логику, когда padLeft принимает number для padding:


function padLeft(padding: number | string, input: string): string {
 return new Array(padding + 1).join(' ') + input
 // Operator '+' cannot be applied to types 'string | number' and 'number'. Оператор '+' не может быть применен к типам 'string | number'
}
Читать дальше →
Всего голосов 16: ↑14 и ↓2+15
Комментарии4

Карманная книга по TypeScript. Часть 2. Типы на каждый день

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

image


Мы продолжаем серию публикаций адаптированного и дополненного перевода "Карманной книги по TypeScript".

Другие части:



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


Примитивы: string, number и boolean


В JS часто используется 3 примитива: string, number и boolean. Каждый из них имеет соответствующий тип в TS:


  • string представляет строковые значения, например, 'Hello World'
  • number предназначен для чисел, например, 42. JS не различает целые числа и числа с плавающей точкой (или запятой), поэтому не существует таких типов, как int или float — только number
  • boolean — предназначен для двух значений: true и false

Обратите внимание: типы String, Number и Boolean (начинающиеся с большой буквы) являются легальными и ссылаются на специальные встроенные типы, которые, однако, редко используются в коде. Для типов всегда следует использовать string, number или boolean.

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

Карманная книга по TypeScript. Часть 1. Основы

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

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



С сегодняшнего дня мы начинаем серию публикаций адаптированного и дополненного перевода "Карманной книги по TypeScript".


Каждое значение в JavaScript при выполнении над ним каких-либо операций ведет себя определенным образом. Это может звучать несколько абстрактно, но, в качестве примера, попробуем выполнить некоторые операции над переменной message:


// Получаем доступ к свойству `toLowerCase`

// и вызываем его

message.toLowerCase()

// Вызываем `message`

message()

На первой строке мы получаем доступ к свойству toLowerCase и вызываем его. На второй строке мы пытаемся вызвать message.


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


  • Является ли переменная message вызываемой?
  • Имеет ли она свойство toLowerCase?
  • Если имеет, является ли toLowerCase вызываемым?
  • Если оба этих значения являются вызываемыми, то что они возвращают?

Ответы на эти вопросы, как правило, хранятся в нашей памяти, поэтому остается только надеяться, что мы все помним правильно.

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

Найти и не обезвредить: пишем пентесты с Kali Linux

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

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




Шило в мешке не утаить: по неведению (правда, в некоторых случаях — умышленно) даже крупные корпорации оставляют дыры в своей системе безопасности. Жизненно важно как можно быстрее (1) локализовать их и (2) пофиксить. К счастью, существует множество различных продуктов, которые помогают с первым пунктом. Среди них можно выделить Kali, дистрибутив Linux, разработанный для тестирования систем безопасности. В этой статье я расскажу, как использовать Kali Linux для исследования вашей системы и поиска слабых мест, имитируя атаку злоумышленника.

Дистрибутив Kali включает множество инструментов, каждый из которых имеет открытый исходный код. Достаточно запустить установку дистрибутива и все эти инструменты будут доступны из коробки.
Читать дальше →
Всего голосов 21: ↑14 и ↓7+12
Комментарии3

Как устроен блок питания, который работает в каждом системнике

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

Блок питания извлечён из корпуса. Пучок проводов слева подключается к компьютеру. Большой компонент посередине типа трансформатора — это фильтрующий индуктор. Кликабельно, как и все фотографии в статье

Вы когда-нибудь задумывались, что находится внутри блока питания (БП) вашего компьютера? Задача БП — преобразовать питание из сети (120 или 240 В переменного тока, AC) в стабильное питание постоянного, то есть однонаправленного тока (DC), который нужен вашему компьютеру. БП должен быть компактным и дешёвым, при этом эффективно и безопасно преобразовывать ток. Для этих целей при изготовлении используются различные методы, а сами БП внутри устроены гораздо сложнее, чем вы думаете.

В этой статье мы разберём блок стандарта ATX и объясним, как он работает1.
Читать дальше →
Всего голосов 46: ↑31 и ↓15+31
Комментарии97

Введение в Traefik 2.0

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

Traefik — это обратный прокси-сервер с открытым исходным кодом, обеспечивающий простую работу с микросервисами и/или просто контейнерами с вашими приложениями.


Обратный прокси-сервер (reverse proxy, реверс-прокси) служит для ретрансляции запросов из внешней сети к каким-либо серверам/сервисам внутренней сети (например веб-сервера, БД или файловые хранилища) и позволяет:


  • обеспечить сокрытие структуры внутренней сети и подробностей о находящейся в ней сервисах;
  • осуществлять балансировку нагрузки (load balancing) между экземплярами одного и того же сервиса или серверами с одинаковыми задачами;
  • обеспечить зашифрованное (HTTPS) соединение между клиентом и любым сервисом, в таком случае SSL сессия создается между клиентом и прокси, а между прокси и сервисом во внутренней сети устанавливается незашифрованное HTTP соединение, если сервис поддерживает HTTPS то можно организовать зашифрованное соединение и во внутренней сети;
  • организовать контроль доступа к сервисам (аутентификацию клиента), а также установить файрвол (брандмауэр).

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


image

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

Чернобыль ч.2. Чернобыльский край. Припять

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

Автор: Александр Старостин

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

Затронем историю и условия строительства блоков атомной станции и города при ней.

Текст написан в рамках моего цикла об аварии на Чернобыльской АЭС.

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

Я выпустил Grafar — JS-библиотеку для визуализации

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

После пяти лет в столе я готов представить свою библиотеку для визуализации — grafar. У нас есть: 3D, реактивные вычисления и самое простое АПИ для построения математических графиков прямо в браузере. В статье рассказываю, что я сделал и как этим пользоваться.

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

Vue.js и слоистая архитектура: вынесение бизнес-логики в сервисы

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

Когда нужно сделать код в проекте гибким и удобным, на помощь приходит разделение архитектуры на несколько слоев. Рассмотрим подробнее этот подход и альтернативы, а также поделимся рекомендациями, которые могут быть полезны как начинающим, так и опытным разработчикам Vue.js, React.js, Angular. 

В старые времена, когда JQuery только появился, а о фреймворках для серверных языков лишь читали в редких новостях, веб-приложения реализовывали целиком на серверных языках. Зачастую для этого использовали модель MVC (Model-View-Controller): контроллер (controller) принимал запросы, отвечал за бизнес-логику и модели (model) и передавал данные в представление (view), которое рисовало HTML. 

Объектно-ориентированное программирование (ООП) на тот момент только начинало формироваться, поэтому разработчики зачастую интуитивно решали, где и какой код надо писать. Таким образом, в мире разработки зародилось такое понятие, как «Божественные объекты», которые первоначально отвечали практически за всю работу отдельных частей системы. Например, если в системе была сущность «Пользователь», то разработчику следовало создать класс User и в нем писать всю логику, так или иначе связанную с пользователями. Без разбиения на какие-то ещё файлы. И если приложение было большим, то такой класс мог содержать тысячи строк кода.

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

DDoS атаки на 7 уровень — защита сайтов

Время на прочтение6 мин
Количество просмотров10K
DDoS атаки на 7 уровень (на уровень приложения) наиболее простой способ привести в нерабочее состояние сайт и навредить бизнесу. В отличие от атак на другие уровни, когда для отказа сайта необходимо организовать мощный поток сетевого трафика, атаки на 7 уровень могут проходить без превышения обычного уровня сетевого трафика. Как это происходит, и как от этого можно защищаться я рассмотрю в этом сообщении.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии1

После года разработки вышел эмулятор QEMU 6.0

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

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

Пример — выполнение приложения для ARM на ПК с процессором x86. Благодаря особенностям эмулятора приложение в изолированном окружении выполняется почти с той же эффективностью, что и в нативном окружении. Достигается это, в частности, за счет прямого выполнения инструкций на процессоре, а также за счет применения гипервизора Xen или модуля KVM. Сейчас эмулятор поддерживает 14 аппаратных архитектур и может эмулировать около 400 разных устройств. За год разработчики внесли свыше 3 тысяч изменений от 268 разработчиков.
Читать дальше →
Всего голосов 46: ↑46 и ↓0+46
Комментарии6

Компании BrainGate удалось установить широкополосную беспроводную связь между мозгом человека и компьютером

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

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

Всего через несколько месяцев после того, как Илон Маск продемонстрировал рабочий прототип чипа Neuralink, имплантированный сначала в мозг свиньи, а затем — обезьяны, компания BrainGate смогла достичь еще большего. Ученым и инженерам удалось установить беспроводную связь между человеческим мозгом и машиной. В эксперименте согласились принять участие два добровольца — парализованные из-за повреждений спинного мозга мужчины 35 и 63 лет.
Всего голосов 44: ↑42 и ↓2+50
Комментарии18

О дивный новый «Мир»! Восстановление советской радиолы. Часть 1

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



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

Полезные консольные Linux утилиты

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

В этой подборке представлены полезные малоизвестные консольные Linux утилиты. В списке не представлены Pentest утилиты, так как у них есть своя подборка.


Осторожно много скриншотов. Добавил до ката утилиту binenv.


binenv — cамая интересная утилита для установки новых популярных программ в linux, но которых нет в пакетном менеджере.

Читать дальше →
Всего голосов 96: ↑92 и ↓4+110
Комментарии110

20 лучших практик по работе с Dockerfile

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

Эта статья содержит рекомендации по написанию Dockerfile и принципам безопасности контейнеров и некоторые другие связанные темы, например про оптимизацию образов.

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

К счастью, большинство потенциальных проблем мы можем решить еще на этапе разработки.

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

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

Информация

В рейтинге
Не участвует
Откуда
Франция
Дата рождения
Зарегистрирован
Активность