Pull to refresh
3
0
Алексей С @alekssamos

Пользователь, Прогер, Айтишник, админ, комповщик,

Send message

Обзор поддельного блока питания с закосом под Apple

Level of difficulty Easy
Reading time 10 min
Views 24K


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

Обзор блока питания, который, можно сказать, лидер по продажам на Озоне, c немалыми 21503 отзывами и рейтингом 5 звёзд. Что может пойти не так?

О чудесах, обнаруженных при тестах и внутри данного блока питания, можно почитать далее.
Читать дальше →
Total votes 106: ↑101 and ↓5 +96
Comments 188

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

Level of difficulty Medium
Reading time 7 min
Views 8.8K

Многие разработчики думают, что доступность реализуется только с помощью aria-атрибутов. Если их не добавить, то всё, доступности нет. Конечно, aria-атрибуты нужны, но HTML и CSS такая же важная часть процесса создания доступных интерфейсов. Эти технологии непросто несут в себе кучу скрытых моментов, влияющих на доступность. Они напрямую позволяют её улучшить. В статье хочу показать это.


Я затрону не все аспекты. Их очень много, поэтому поговорю о: интерактивных элементах, доступности текста, анимации и изображениях. В статье буду использовать опыт моего незрячего знакомого (привет, Илья). Он внёс бесценный вклад. Уверен, что вам будет интересно. Поехали!

Читать дальше →
Total votes 51: ↑51 and ↓0 +51
Comments 13

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

Level of difficulty Medium
Reading time 8 min
Views 6.1K

Я продолжаю рассказывать, как HTML и CSS могут улучшить или ухудшить доступность интерфейсов. В своём рассказе я использую свой опыт и моего незрячего знакомого Ильи.


В этой статье будет: атрибут autofocus и его нюансы, паттерн «Skip-link» и идея Ильи об использовании его на практике, проблема использования одинаковых ссылок для одной новости, что не так с кнопкой «Наверх» и как вы спрятали список от скринридеров.


Давайте начнём!

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

Реактивные формы во Flutter: как делать формы с меньшими трудозатратами

Level of difficulty Medium
Reading time 7 min
Views 4K

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

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

Прокачиваем вёрстку ARIA атрибутами. Атрибут aria-label

Level of difficulty Easy
Reading time 8 min
Views 7K


Cегодня я хочу рассказать про атрибут aria-label. В статье не будет заумных определений и бездумного копирования стандарта. Я хотел простым языком объяснить, какая польза от атрибута, а также передать свой практический опыт, чтобы вы могли его повторить. А получилось у меня или нет, решать вам.


Со вступительным словом всё. Давайте начнём!

Читать дальше →
Total votes 57: ↑57 and ↓0 +57
Comments 7

Чат GPT-4V, который видит — что он умеет

Reading time 4 min
Views 52K
Случилось вот что: вышел большой отчёт про возможности GPT-4V. Внезапно оказалось, что LLM могут обращаться с картинками так же, как с текстовыми промптами, и никакой особой разницы нет. Что та фигня, что эта фигня, главное — научиться распознавать, дальше те же логические связки. Это давно ожидалось, потому что люди в основном смотрят, и большая часть информации приходит через глаза. Но мало кто ждал, что это так круто получится вот уже сейчас и с LLM.

Отчёт вот. Теперь давайте смотреть, а не читать.


Хорошие мультимодальные способности, чётко считывает указатели, хорошее общее понимание ситуации

Если вы пьяны, он пересчитает пиво и сверит с чеком:



Собственно, важное:
  • Хорошо понимает что за сцена изображена и какие взаимосвязи между объектами на ней.
  • Читает текст, ориентируется на местности, опознаёт конкретных людей
  • Умеет в абстракции и обратно
  • Отлично ищет то, чего не должно быть (отклонения от базовой идеи) — дефекты на деталях, дефекты в людях (в особенности на рентгене) и так далее.
  • Плохо считает.

Давайте к деталям.
Читать дальше →
Total votes 80: ↑79 and ↓1 +78
Comments 63

Как я сделал Telegram-бота для студентов РТСУ

Reading time 28 min
Views 12K

Привет, Хабр! Я учусь в Российско-Таджикском Славянском университете, собственно у нас в университете действует так называемая кредитно-бальная система.

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

Оно доступно для Android.

Читать далее
Total votes 19: ↑17 and ↓2 +15
Comments 11

KeyDB и Redis: в поисках серебряной пули — in-memory replicated DB (Replicated IMDB)

Level of difficulty Medium
Reading time 19 min
Views 10K

На кластерах клиентов, которые мы обслуживаем, есть как «одноголовые» инсталляции Redis (обычно для кэшей, которые не страшно потерять), так и более отказоустойчивые решения — Redis Sentinel или Redis Cluster. По нашему опыту, во всех трех вариантах можно безболезненно переключиться с Redis на KeyDB и получить прирост производительности. Точнее, избавиться от бутылочного горлышка Redis в одно ядро. Хотя в новых версиях Redis(r) появилась обработка I/O в отдельных тредах, иногда этого бывает недостаточно.

В то же время, если мы хотим использовать отказоустойчивые решениями вроде Sentinel и Cluster, нам понадобится поддержка этих технологий на уровне библиотеки, которую приложение использует для подключения в Redis. Причем лишь немногие библиотеки умеют читать из реплик Redis — в обоих вариантах (Sentinel и Cluster) чтение, как правило, происходит с мастеров. И запись, естественно, тоже происходит в мастеры. 

В итоге у нас есть несколько реплик довольно дорогого in-memory-хранилища, а в рабочем процессе используется только часть из них. Остальные — на подхвате. Хотя в большинстве кейсов операции с in-memory NoSQL DB — это именно операции чтения.

Однако если посмотреть в сторону KeyDB, то можно увидеть, что там есть киллер-фича — и даже две: я говорю о режимах Active Replica и Multi-Master. Использование этих режимов позволяет получить распределенный отказоустойчивый KeyDB, совместимый с Redis, писать в любую ноду, читать из любой ноды. И все это с точки зрения приложения выглядит как один экземпляр Redis без всяких Sentinel — то есть в коде приложения ничего менять не придется. 

Звучит как фантастика?

Читать далее
Total votes 40: ↑40 and ↓0 +40
Comments 21

Управление, интерфейсы и доступность в Apple Vision Pro

Level of difficulty Easy
Reading time 7 min
Views 6.6K

Apple показала Vision Pro – устройство, которое по максимуму использует все наши ощущения и погружает в прямое управление интерфейсом руками, голосом и движением головы.

Вот только не все могут видеть, слышать, двигать руками или говорить. Как будут работать очки для них? Неужели Apple придумала альтернативные способы управления для всего?

Да, придумала. Будущее невероятно.

Много картинок
Total votes 18: ↑17 and ↓1 +16
Comments 12

Как Литрес сделал из меня Flutter разработчика

Level of difficulty Easy
Reading time 7 min
Views 11K

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

Для кого я это пишу? Для тех, кто подумывает стать мобильным разработчиком, кто почитает про мои неудачи и сможет избежать «хождения по граблям».

С чего всё начиналось

Я большой любитель послушать аудиокниги, в особенности российскую фантастику, фентези, ужасы, постапокалипсис. Пока двигаешься на работу, идёшь в магазин, разбавляешь серость окружения погружением в виртуальные реальности. Но не все книги одинаково интересны, я как правило слушаю пару глав, понимаю, что мне не нравится и отправляюсь на поиск другой аудиокниги. С таким подходом покупать, каждый раз продукт, который не используется нерационально (и очень накладно — в день по парке аудиокниг). В итоге я пришёл к тому, что стал зависать в соответствующем разделе рутрекера, скачивать, закидывать на телефон, слушать в приложении. Естественно, такой алгоритм неудобен, отправился на поиски приложения, которые бы автоматизировало этот процесс, но такого приложения не было. И тут пришла мысль «я со школьных лет увлекаюсь программированием, неужели не смогу разобраться и сделать приложение?».

Ошибка: Идея не обдумана. Загорелся и стал сразу делать.

Правильный подход: Перед тем как начинать работу над проектом, хорошо подумайте, что Вы хотите сделать, и к чему это может привести.

Читать далее
Total votes 20: ↑20 and ↓0 +20
Comments 19

Экзоскелет «Норникеля» – не панацея будущего, а инструмент настоящего

Reading time 7 min
Views 14K

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

Читать далее
Total votes 74: ↑70 and ↓4 +66
Comments 51

Решаем задачу по взаимодействию микросервисов на Python тремя способами

Level of difficulty Easy
Reading time 6 min
Views 13K

Когда речь заходит про взаимодействие микросервисов, все сразу вспоминают о сложных архитектурных паттернах, вроде Event Bus и CQRS. В этой статье я расскажу, как выполнить простенькую задачку для двух микросервисов без навороченной архитектуры. В моем случае это создание сервиса, который агрегирует события компании в единую ленту событий.
Читать дальше →
Total votes 53: ↑52 and ↓1 +51
Comments 38

YAML из Ада

Reading time 9 min
Views 60K

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

Данный пост является нытьём и он более субъективен, чем мои обычные статьи.
Читать дальше →
Total votes 221: ↑218 and ↓3 +215
Comments 186

Двухсторонние очереди в Python: как альтернатива спискам повышает производительность

Reading time 4 min
Views 13K


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

В некоторых приложениях необходима обработка данных по методу FIFO (first-in, first-out). Он подразумевает, что элементы, добавленные в последовательность первыми (first-in), будут первыми из неë удалены (first-out). Эту задачу можно решить и с помощью объекта «список», и с помощью двухсторонних очередей. Но для этой цели двухсторонние очереди удобнее списков благодаря особенностям их реализации. 
Читать дальше →
Total votes 44: ↑41 and ↓3 +38
Comments 6

Люди и интерфейсы. Рассказ незрячего тестировщика о том, как сервисы Яндекса становятся доступнее

Reading time 17 min
Views 7.1K


Привет, меня зовут Анатолий Попко. Последние 15 лет (или около того) я работаю над тем, чтобы технологии становились доступнее для пользователей с различными ограничениями. Участвовал и продолжаю участвовать в работе разных групп и организаций, которые объясняют разработчикам технологий реальные потребности людей, пишут гайды, стандарты и так далее.


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

Читать дальше →
Total votes 40: ↑39 and ↓1 +38
Comments 13

58 байтов CSS, которые выглядят красиво почти где угодно

Reading time 2 min
Views 31K

При создании своего веб-сайта я хотел найти простой и разумный способ сделать его красивым на большинстве дисплеев. Для моих задач подошли следующие 58 байтов:

main {
  max-width: 38rem;
  padding: 2rem;
  margin: auto;
}

Давайте их разберём.
Читать дальше →
Total votes 55: ↑46 and ↓9 +37
Comments 11

XSS с мутациями: как безопасный код становится зловредным и при чем здесь innerHTML

Reading time 11 min
Views 6K

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

Читать далее
Total votes 6: ↑5 and ↓1 +4
Comments 7

Мониторинг ошибок с помощью Sentry во фронтенд-приложениях, написанных на JavaScript: Часть 1

Reading time 4 min
Views 88K

Сервис Sentry позволяет удаленно мониторить баги в фронтенд-приложениях, написанных на JavaScript.



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

Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Comments 5

Кунг-фу стиля Linux: утилита marker и меню для командной строки

Reading time 7 min
Views 8.2K
Командная строка… Её можно любить или ненавидеть, но тому, кто пользуется Unix-подобными операционными системами, без неё не обойтись. Облегчить работу в командной строке можно с помощью утилиты marker. В её репозитории о ней говорят как о «панели команд для терминала». Полагаю, это — довольно полезная программа. Не могу подобрать точное сравнение для её описания. Не знаю, похожа ли она на продвинутую историю команд, или на систему управления закладками. Пожалуй, в ней есть немного и того и другого.



История работы с командами теряется, она содержит множество мелких команд (хотя, чтобы в историю не попадали бы определённые команды, можно воспользоваться переменной окружения HISTIGNORE). А при использовании marker можно сохранить определённые команды, после чего они уже не потеряются. В хранилище marker не попадает ничего лишнего, а то, что было сохранено, никуда не девается.

Конечно, можно просто написать скрипт, или создать псевдоним, и тем самым упростить работу с командами. Утилита marker позволяет добавлять к командам описания, среди сохранённых команд можно искать нужные, пользуясь инкрементальным нечётким поиском. Кроме того, в командах, сохранённых в marker, можно использовать местозаполнители, которые, при использовании команд, заменяются на реальные данные. В программе, сразу после установки, имеется встроенный список команд. Закладки marker можно использовать и в bash, и в zsh, что пригодится тому, кто применяет обе эти командные оболочки.
Читать дальше →
Total votes 29: ↑28 and ↓1 +27
Comments 4

Мега-Учебник Flask, Часть 5: Пользовательские логины (издание 2018)

Reading time 15 min
Views 102K

blog.miguelgrinberg.com


Miguel Grinberg




<<< предыдущая следующая >>>


Эта статья является переводом пятой части нового издания учебника Мигеля Гринберга, выпуск которого автор планирует завершить в мае 2018.Прежний перевод давно утратил свою актуальность.




Это пятый выпуск серии Flask Mega-Tutorial, в котором я расскажу вам, как создать подсистему входа пользователя.

Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Comments 7

Information

Rating
3,588-th
Location
Гусь Хрустальный, Владимирская обл., Россия
Date of birth
Registered
Activity