Как стать автором
Обновить
-28
0
Вадим @BigDflz

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

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

Ranking Functions: ROW_NUMBER

Уровень сложности Сложный
Время на прочтение 5 мин
Количество просмотров 557

Четыре функции ранжирования: ROW_NUMBER, RANK, DENSE_RANK и NTILE появились в SQL Server 2005 и отличаются от обычных скалярных функций тем, что результат, который они выдают для строки, зависит от других строк выборки. От агрегатных функций они отличаются тем, что возвращают только одну строку для каждой строки на входе, т. е. они не объединяют набор строк в одну. В этой статье мы рассмотрим ROW_NUMBER — самую простую из всех функций ранжирования.

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

Внутренний мир: Java NIO

Уровень сложности Средний
Время на прочтение 15 мин
Количество просмотров 5.2K

Привет, Хабр!

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

Неблокируемый ввод/вывод был реализован в пакете java.nio Java SE 1.4. К сожалению, в ежедневной практике нечасто приходится иметь дело с низкоуровневым I/O, и намного чаще при необходимости используются стримы из java.io. В этой статье будет описано содержание Java NIO, несколько примеров и принцип работы неблокируемого I/O.

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 7

Паттерны Singleton и Multiton в Java: когда и какой лучше?

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 4.4K

Привет, Хабр!

Паттерн Singleton гарантирует существование лишь одного экземпляра класса и предоставляет к нему глобальную точку доступа. Этот паттерн стал почти синонимом чистоты кода в многих сценариях работы с Java, где требуется строго один экземпляр объекта. Но не менее интересный и гибкий паттерн - это Multiton. Менее известный, но не менее мощный, он позволяет создавать множество экземпляров класса и контролировать их число и жизненный цикл через предопределенные ключи.

В этой статье мы рассмотрим эти паттерны и их различия.

Читать далее
Всего голосов 14: ↑10 и ↓4 +6
Комментарии 9

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

Уровень сложности Средний
Время на прочтение 44 мин
Количество просмотров 122K

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

Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.

Читать далее
Всего голосов 491: ↑483 и ↓8 +475
Комментарии 315

CSS для печати на бумаге

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

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

В этой статье я объясню основы CSS, управляющие внешним видом веб-страниц при печати, и дам пару советов, которые могут вам помочь в этом.

Читать далее
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 17

Почтовый сервер с нуля. Часть первая

Уровень сложности Средний
Время на прочтение 17 мин
Количество просмотров 21K

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

В этом материале будет представлена связка полноценного почтового сервера в виде Exim4+Dovecot+PostfixAdmin+RainLoop.

Читать далее
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 26

Как установить Windows 11

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 67K

Да, статья о том, как установить Windows 11 правильно. Этот процесс нынче сопровождается таким количеством шаманских плясок, что ей-богу, проще Arch устанавливать. Решил вот поместить все познания по этому вопросу из головы в статью.

Читать далее
Всего голосов 143: ↑121 и ↓22 +99
Комментарии 238

Важные аспекты Unicode, о которых должен знать каждый разработчик JavaScript

Уровень сложности Средний
Время на прочтение 22 мин
Количество просмотров 7.5K


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


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


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


Как оказалось, Unicode — это универсальный и удобный стандарт, но работать с ним может быть непросто из-за множества абстрактных терминов.


Если у вас есть пробелы в понимании Unicode, то сейчас самое подходящее время их заполнить! Заварите себе вкусный чай или кофе ☕. И давайте погрузимся в удивительный мир абстракций, символов, астралов (astrals) и суррогатов (surrogates).


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


Вы также узнаете, как JavaScript взаимодействует с Unicode и какие трудности могут возникнуть на этом пути.


А также, каким образом новые функции из ECMAScript 2015 могут помочь в решении этих проблем.


Готовы? Давайте начнем!

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

Написание минимальной подсистемы хранения данных в памяти для MySQL/MariaDB

Уровень сложности Средний
Время на прочтение 24 мин
Количество просмотров 5.2K

Я потратил неделю, копаясь во внутренностях MySQL/MariaDB вместе с ещё примерно 80 разработчиками. Хотя MySQL и MariaDB — это, по большей части, одно и то же (я ещё к этому вернусь), я сосредоточился именно на MariaDB.

Раньше я никогда сам не собирал MySQL/MariaDB. В первый день «недели хакерства» я смог наладить локальную сборку MariaDB и твикнул код так, что запрос SELECT 23 возвращал 213. Сделал я и другой твик — такой, что запрос SELECT 80 + 20 возвращал 60. На второй день я смог заставить заработать простую UDF на C, благодаря которой запрос SELECT mysum(20, 30) давал 50.

Остаток недели я потратил, пытаясь разобраться с тем, как сделать минимальный движок для хранения данных в памяти. Именно о нём я и расскажу. Это — 218 строк кода на C++.

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

Как загружать классы в Java 8 и Java 9+?

Уровень сложности Сложный
Время на прочтение 24 мин
Количество просмотров 5.9K

Привет, Хабр! Я разработчик в Институте Системного Программирования РАН, занимаюсь разработкой статического анализатора Svace. Недавно я столкнулся с задачей самостоятельной загрузки классов в JVM, что оказалось непросто, потому что в проекте мы используем модули Java.

Модули появились в Java, начиная с версии 9. Прошло уже несколько лет, но если попытаться найти актуальную информацию о связи модулей и загрузчиков классов, её придётся собирать по крупицам. В статье я поделюсь своим опытом изучения вопроса самостоятельной (и автоматической) загрузки классов с помощью кастомного загрузчика, а также разберу примеры, описывающие большинство случаев загрузки, постараюсь их объяснить.

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

Как писать более чистый CSS: дюжина советов от банальных до неочевидных

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 15K

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

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

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

Параллельность в Java на практике

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 9.3K

Как следует из названия, здесь будет только про параллельное выполнение (не путать с конкурентностью). Так же я не буду затрагивать проект Loom, который «должен убить» все остальные подходы написания параллельного кода. Надеюсь изложенное ниже позволит начинающим java программистам разобраться с разными подходами и структурировать имеющиеся знания.

Начинающие java программисты, разрабатывая новые сервиса, сталкиваются с задачей выбора технологий, фреймворков и т. д. При написании параллельного кода так же есть множество различных вариантов. Вряд ли кто‑то будет создавать и запускать треды вручную, но можно использовать старый добрый ExecutorService. Можно выбрать Stream API или Reactor с его реализацией параллельной обработки. Есть ещё Akka и куча других экзотических фреймворков. Некоторые из них разработаны под набор конкретных задач, другие же вроде подходят для любых. И как оценить производительность того же Reactor против ExecutorService, или же, например, используя Stream API. Попробуем разобраться.

Читать далее
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 5

Создание приложения для распознавания текста с изображений и аудиофайлов

Уровень сложности Сложный
Время на прочтение 29 мин
Количество просмотров 6K

Запись текста с фотографии листа или из аудиозаписи в текстовый файл, доступный для редактирования – довольно часто встречающаяся задача при работе в офисах или учёбы. Для распознавания текстов и аудио в платных сервисах и программах сегодня используются такие подходы, как машинное зрение и распознавание речи с использованием глубоких нейронных сетей.

Детектирование (обнаружение) и классификация символов на изображении осуществляется с использованием различных архитектур свёрточных нейронных сетей [1]. Обработка естественного языка основана на использовании глубоких рекуррентных нейронных сетей, состоящих из ячеек долгой краткосрочной памяти LSTM [2]. При создании соответствующих приложений для работы с текстами, этап реализации нейронных сетей можно пропустить, используя соответствующие свободно распространяемые библиотеки.

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

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

Решение концептуальной проблемы с Unity ECS. Messenger для System

Уровень сложности Сложный
Время на прочтение 7 мин
Количество просмотров 2.4K

Всем привет! В этой статье я подробно разобрал своё решение проблемы реализации "ивентов" в ориентированном на данные дизайне для Unity ECS. Если вы заинтересованы в Unity DOTS/ECS, то данная статья нацелена именно на вас.

Читать далее
Всего голосов 3: ↑1 и ↓2 -1
Комментарии 9

Мой поиск аналога Microsoft Visio

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 45K

Доброго дня всем.

В сегодняшней статье хотел бы поделиться проведенным анализом приложений, потенциально способных заменить MS Visio для разного рода задач.

Читать далее
Всего голосов 39: ↑36 и ↓3 +33
Комментарии 64

Основные принципы маскирования в CSS

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 12K

В мире дизайна маскирование является популярной техникой реализации уникальных эффектов. Будучи дизайнером, я сам использовал эту технику много раз, но не очень часто в веб-среде. Думаю, что от её применения на сайтах меня удерживала недостаточная поддержка браузерами. Полноценно этот функционал поддерживается в Safari и Firefox, а вот в браузерах на движке Blink (Chrome и Edge) — лишь частично.

Радует то, что тема CSS маскирования будет частью Interop 2023, а значит, вскоре можно ожидать кросс-браузерную поддержку этой возможности (Вау!).

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

Поехали!
Читать дальше →
Всего голосов 44: ↑44 и ↓0 +44
Комментарии 1

Подключение инкрементального энкодера к микроконтроллеру ATmega8

Уровень сложности Средний
Время на прочтение 2 мин
Количество просмотров 4.1K

Типовая схема подключения энкодера к микроконтроллеру ATmega8 представлена на рисунке 1. На схеме тактовые выводы A и B подтянуты с помощью резисторов R1 и R2 к питанию и дают низкий сигнал при срабатывании.

Читать далее
Всего голосов 18: ↑14 и ↓4 +10
Комментарии 19

Цифровой двойник – что это такое? Объемная картинка или работающий актив?

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 10K

Меня зовут Александр Никитин, руководитель направления цифровых двойников UMNO.digital (ГК НефтеТрансСервис). С 2018 года я специализируюсь на разработке цифровых двойников для промышленных предприятий, и за это время реализовал проекты на 10+ предприятиях, в т.ч. обогатительной фабрики, угольного карьера, портового терминала, вагоноремонтного предприятия, цеха подготовки ковшей на сталеплавильном комбинате и т. п.

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

Читать далее
Рейтинг 0
Комментарии 23

Геометрия объектной модели документа: исчерпывающее руководство

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



Я не считаю, что DHTML — cool, просто картинка хорошая)


Привет, друзья!


Представляю вашему вниманию перевод этой замечательной статьи.


Знаете ли вы, что кроме интерфейсов, определенных спецификациями объектной модели документа (Document Object Model, DOM) и объектной модели каскадных таблиц стилей (Cascading Style Sheets (CSS) Object Model, CSSOM), существует также набор свойств и методов, определяемых в модуле отображения CSSOM (CSSOM View Module)? Этот интерфейс предназначен для определения и манипулирования геометрией элементов DOM.

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

Мульти-поточная загрузка и выгрузка текстур в OpenGL C++

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

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

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Комментарии 27
1

Информация

В рейтинге
3 865-й
Откуда
Екатеринбург, Свердловская обл., Россия
Зарегистрирован
Активность