Pull to refresh
15
Karma
0.2
Rating

backend developer, java multithreading, go

Убьет ли HTTP/2 лонг поллинг и вебсокеты?

Singula Team corporate blog Ruby *Programming *Ruby on Rails *
Review

В новом тексте по итогам Ruby Russia 2022 Full-Stack разработчик и консультант Learning Tapestry Александр Уланов рассуждает, есть ли у Server-sent events потенциал обойти websocket-ы и long polling.

Читать далее
Total votes 19: ↑14 and ↓5 +9
Views 5K
Comments 17

Домашняя приточная вентиляция малыми средствами

Smart House

Последнюю пару лет я живу с приточной вентиляцией в городской квартире — и очень рад этому факту.

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

Коротко о главном:
• наружное расположение компонентов ради минимального уровня шума;
• минимум ручного труда в изготовлении и монтаже;
• общий ценник существенно ниже 50 тысяч рублей (ниже 30 тысяч — на момент изготовления два года назад).

И важное. Если вы — адепт систем рекуперации, долгих инженерных расчётов и полугода проектирования, эта статья не для вас. Я — адепт золотой середины между «я сделяль» и «я задолбался».

Читать далее
Total votes 152: ↑150 and ↓2 +148
Views 34K
Comments 152

Дриставрация стиков портативных игровых консолей — маленькое how-to

Gadgets Games and game consoles

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


Последний месяц мои читатели и подписчики основательно решили меня подсадить на PlayStation. Сначала Фанат Мелины из Elden Ring подарил мне PSP E1008 Street, которую мы с вами оживили в соответствующей статье, затем подписчик Сашка Кондрат, который подарил мне PSVita из далекого края России и мой друг детства, который недавно написал "у меня есть подгон для тебя, нужны две PSP - 2008 и 1008?". Однако все консоли так или иначе требовали ремонта - такова тематика моего блога! И сегодня я покажу вам небольшую дриставрацию сразу двух консолей!

Читать далее
Total votes 9: ↑8 and ↓1 +7
Views 3.1K
Comments 9

«Союз-5» и «Байтерек» — пример грамотного сотрудничества России и Казахстана

Timeweb Cloud corporate blog Reading room Astronautics
image

А давайте поговорим о ракете «Союз-5», в конце концов, это самая новая ракета, которая должна в ближайшее время полететь, и о космодроме, с которой эту ракету будут запускать. Но начнём по порядку.

В советские годы под руководством академика Глушко была построена прекрасная ракета «Зенит». Изначально она являлась лишь боковой ступенью сверхтяжелой ракеты «Энергия», но впоследствии эволюционировала до самостоятельного носителя. «Зенит-2» летал с 1985 года и хорошо себя зарекомендовал. Мощный двигатель, две ступени и 14 тонн полезной нагрузки. А главное — стоимость. Одна ракета выходит где-то в 1,4 млрд рублей, в эту же стоимость выходит и ракета «Союз», у которой стоимость лишь на 100 млн меньше. Причём разница между выводимой полезной нагрузкой составляет до 5 тонн!

В Советском Союзе ракета не без проблем, но производилась и запускалась. Но вот наступил 1991 год, страна прекратила своё существование. Производства оказались в двух суверенных государствах (Украина и Россия), а космодром для ракеты находился в ещё одном государстве (Казахстан). Несмотря на это разогнанные мощности продолжали выдавать хорошую продукцию и «Зениты» летали.
Читать дальше →
Total votes 51: ↑41 and ↓10 +31
Views 7.7K
Comments 45

Обзор компьютера в стиле Intel NUC (Core I5-1135G7): не хуже оригинала, но заметно доступней

Computer hardware Desktop PC's

Компьютер, в зависимости от магазина, продается под разными названиями, например он может называться Topton NUC или Eglobal NUC, но чаще всего это просто что-то вроде Gaming Mini PC i7 1165G7 или i5 1135G7. Фактически, по железу он копирует оригинальный Intel NUC 11 Pro, а в некоторых моментах даже его превосходит и при этом стоит значительно дешевле.

Сегодня я покажу вам мини-компьютер или неттоп, который считаю лучшим из всего того разнообразия, что можно приобрести на Aliexpress. Он базируется на современном процессоре Core i5 или Core i7 11 поколения и оснащен мощной интегрированной графикой Intel Iris Xe, которая спсобна показать приемлемый fps даже в относительно свежих играх. Компьютер поддерживает до 64 GB оперативной памяти формата DDR4, а в качестве хранилища можно использовать SSD накопитель (в том числе и NVMe). А еще он оснащен разъемом Thunderbolt 4 со скоростью передачи до 40 Gbps, через который можно к примеру подключить внешнюю видеокарту или стороннее видео устройство. Крохотные размеры корпуса, тихое активное охлаждение и большое количество интрфейсов для подключения сторонних устройств это лишь часть его преимуществ. Компьютер хорошо подходит как для работы, так и для развлечений. 

Читать далее
Total votes 13: ↑12 and ↓1 +11
Views 18K
Comments 46

Ретро игровой клуб 90-х/2000-х в Москве

Games and game consoles

Сегодня многих, кому за 30 (в том числе и мне), часто накрывают флэшбэки юности, молодости, когда и трава была зеленее, и детство бодрее, и игры интереснее. Многие из вас наверняка зависали в компьютерных клубах тех лет, либо у друзей, у которых был комп или «приставка» (о слове «консоль» мы тогда и не слышали😉), либо сами рубились дома на своих «286-ых — 486-ых» или «пнях».

Читать далее
Total votes 70: ↑69 and ↓1 +68
Views 13K
Comments 86

Создаем личное файловое облако легко и просто (и дешево)

Hosting Configuring Linux *System administration *Cloud services *
Tutorial

А сегодня мы с вами быстро и решительно легко и просто поднимем свое личное файловое облако типа Google Drive или Яндекс.Диск, а если повезет, то еще и очень дешево.

Зачем? Ну, например, потому что не хотим зависеть от корпораций с их кабальными лицензионными соглашениями и сменой условий задним числом. Или потому что нам хочется приватности. Или просто потому что можем. А бонусом на нашем сервере вы потом сможете еще установить VPN или прокси для доступа к запрещенным сайтам, или поднять простенький веб-сайтик.

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

Читать далее
Total votes 101: ↑93 and ↓8 +85
Views 54K
Comments 231

Обработка исключений в Java в функциональном стиле. Часть 2

Java *Functional Programming *
Tutorial

Обработка исключений в Java в функциональном стиле. Часть 2.


В предыдущей статье была рассмотрена функциональная обработка исключений с помощью интерфейса Try<T>. Статья вызвала определенный интерес читателей и была отмечена в "Сезоне Java".


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

Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Views 6.9K
Comments 12

Средние highload паттерны на Go

High performance *Programming *Go *

Привет, Хабр! Меня зовут Агаджанян Давид и ранее я опубликовал статью «простые highload паттерны на Go», в которой были рассмотрены простые подходы увеличения пропускной способности отдельно взятого экземпляра приложения без хардкора. Мне импонируют простые подходы, так как over engineering подходы требуются в исключительных проектах, и то чаще всего только в отдельно взятых подсистемах, в остальном можно воспользоваться давно известными лучшими практиками.

Читать далее
Total votes 22: ↑19 and ↓3 +16
Views 7.9K
Comments 4

Глубокое погружение в Java Memory Model

Programming *Java *


Я провел в изучении JMM много часов и теперь делюсь с вами знаниями в простой и понятной форме.


В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да, в интернете накопилось достаточно много информации про JMM/happens-before, и, кажется, что очередную статью про такую заезженную тему можно пропускать мимо. Однако я постараюсь дать вам намного большее и глубокое понимание JMM, чем большинство информации в интернете. После прочтения этой статьи вы будете уверенно рассуждать о таких вещах как memory ordering, data race и happens-before. JMM — сложная тема и не стоит верить мне на слово, поэтому большинство моих утверждений подтверждается цитатами из спеки, дизассемблером и jcstress тестами.

Читать дальше →
Total votes 109: ↑109 and ↓0 +109
Views 48K
Comments 58

Холостые циклы в Java

Java *
☕️ Season Java

Привет, сегодня поговорим о тонкостях реализации холостых циклов (холостого ожидания) в Java. Эта задача встречается нечасто: за девять с небольшим лет работы я столкнулся с ней лишь пару раз. Тем не менее, тема видится интересной и по ней есть что сказать, так что добро пожаловать! Исходный код примеров доступен здесь.

Читать далее
Total votes 42: ↑41 and ↓1 +40
Views 10K
Comments 10

Go To Memory

Конференции Олега Бунина (Онтико) corporate blog AvitoTech corporate blog Programming *Go *

Как и многие языки, Go часто использует магию под названием хип (heap). Обычно, когда мы пишем наши джейсоно-гонятели, мы просто не задумываемся об этом, хоть и знаем, что это «где-то есть». Давайте попробуем заглянуть в кроличью нору поглубже и увидеть не только то, какими методами аллокатор Go старается облегчить программисту жизнь, но и то, из чего он состоит в целом.

Меня зовут Антон Киреев, я бэкенд-разработчик с опытом работы больше 11 лет. В настоящее время работаю техлидом в Авито. В жизни мне нравятся две вещи: приносить пользу своей работой и проводить свободное время с семьёй. Именно поэтому я люблю делать что-то быстро, но качественно, а потом отдыхать. Для этого я постоянно учусь и пытаюсь докапываться до сути вещей. Сегодня поговорим, как наша любимая Гошечка работает с памятью.

Читать далее
Total votes 51: ↑38 and ↓13 +25
Views 13K
Comments 13

Имплементируем WebSocket протокол на Go

Website development *Programming *IT Standards *Go *Browsers
Sandbox

Статья для тех, кто хочет познакомиться с устройством технологии WebSocket или языком программирования Go.

Или узнать с какой простотой Go стал одним из самых популярных языков программирования для написания сетевых приложений.

Читать далее
Total votes 39: ↑38 and ↓1 +37
Views 14K
Comments 9

Go, Allure и HTTP, или Как мило тестировать HTTP-сервисы на Go

Ozon Tech corporate blog Open source *Programming *Go *Web services testing *
✏️ Technotext 2022

Привет! Меня зовут Сергей, я старший разработчик в Ozon и раньше вообще не был замечен в QA.

Все мы привыкли к лёгкому написанию тестов на Python и Java — это основные языки автотестировщиков с богатым инструментарием утилит и всего, что упрощает жизнь. Что нужно для написания автотестов для HTTP-сервиса на Python или Java? Гугл, бутылочка крафта и два часа времени. 

А как быть в случае с Go? Как раз на нём мы в большинстве случаев пишем микросервисы. И если тесты написаны на другом языке, разработчики не могут внести в них свой вклад или отревьюить их. Поэтому внутри Ozon активно развивается Go-сообщество QA, и этим ребятам тоже нужно тестировать HTTP-сервисы и проверять отчёты в Allure. Как настоящие сварщики мы подумали: «Если чего-то не хватает, нужно написать своё». Сказано — сделано: встречайте опенсорс-библиотеку CUTE в BDD-стиле, которая облегчает тяготы создания автотестов и упрощает переход на Go. Главные фичи: создание HTTP-тестов, возможность реализовывать проверки из коробки, Allure-отчёты и низкий порог входа. Инструкция — под катом.

Читать далее
Total votes 55: ↑53 and ↓2 +51
Views 10K
Comments 9

Сам себе PKI: Теория на примере Let’s Encrypt. (Статья 1)

Information Security *Cryptography *System Analysis and Design *IT Infrastructure *IT Standards *

За последние годы инфраструктура приватных ключей PKI (Public Key Infrastructure) незаметно окружила нас со всех сторон:

- Большинство сайтов в сети Интернет используют HTTPS протокол. Для его работоспособности необходимо получать сертификаты из удостоверяющих центров (Certificate Authority)

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

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

Давайте разберемся как работают системы PKI, т.к. они еще долго будут актуальны для обеспечения аутентификации и безопасной передачи данных. В данной статье рассмотрим теорию и в качестве примера PKI возьмём самую известную в мире реализацию PKI - HTTPS протокол в сети Интернет. В качестве удостоверяющего центра будем использовать бесплатный Let's Encrypt. В следующей статье "Сам себе PKI: Практика на примере OpenSSL и CA Smallstep" перейдем к практике и организуем безопасную передачу данных на основе TLS протокола.

На схеме упрощенная система PKI для организации HTTPS в сети Интернет.

Читать далее
Total votes 4: ↑4 and ↓0 +4
Views 5.8K
Comments 0

Go ebiten: разбираемся с рендерингом и позиционированием текста

Open source *Programming *Game development *Interfaces *Go *

Перед вами первая заметка на тему разработки игр на Go с использованием библиотеки ebiten (также известный как Ebitengine).


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


Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Views 3.5K
Comments 12

Как работает неточное сравнение строк

JavaScript *Algorithms *
✏️ Technotext 2022

https://fakt309.github.io/thisisthewall/

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

Но вот что если мы хотим не просто получать дискретное значение (true / false), а дифференцированное, например в процентах. Ведь согласитесь строки test и testing гораздо ближе к друг другу, чем test и abcd. Для данной проблемы существует множество решений, мы поговорим о самый популярных алгоритмах (также об их модификациях):

Расстояние Хэмминга

Расстояние Левенштейна

Сходство Джаро — Винклера

Коэффициент Сёренсена

Читать далее
Total votes 50: ↑47 and ↓3 +44
Views 20K
Comments 43

Учимся жить с Kafka без Zookeeper

OTUS corporate blog High performance *System administration *DevOps *Distributed systems *

При всех достоинствах Kafka как распределенного хранилища потока сообщений, боль вызывало раздельное хранение метаданных (топологии разделов, конфигурации кластера и прочего) и необходимость запуска в кластере рядом с Kafka еще и Apache Zookeeper. Побочным эффектом такого соседства (кроме дополнительных забот об администрировании и мониторинге) является долгое время восстановления после сбоя при больших размерах кластера, значительном количестве разделов или сложной топологии групп. Но ситуация улучшается и отличная новость появилась полторы недели назад в KIP-833, что в ближайшей версии Kafka 3.3 новый протокол согласования метаданных (KRaft), работающий внутри Kafka без Zookeeper, будет признан Production-Ready и далее постепенно зависимость от Zookeeper будет помечена как deprecated и удалена. В этой статье мы поговорим об особенностях протокола KRaft и разберемся как настроить новый кластер Kafka без необходимости установки Zookeeper.

Читать далее
Total votes 19: ↑19 and ↓0 +19
Views 10K
Comments 2

Information

Rating
1,731-st
Location
Москва, Москва и Московская обл., Россия
Registered
Activity