Pull to refresh
3
0

User

Send message

Управляем подсветкой клавиатуры при смене языка ввода

Reading time7 min
Views13K

Недавно я купил себе клавиатуру от Corsair модели K55 RGB Pro. У нее есть модная нынче RGB-подсветка, а чтобы ее настраивать, производитель предлагает скачать программу iCUE. На сайте написано, что некоторые игры могут управлять подсветкой совместимых устройств. Я заинтересовался, как они это делают. Гугл обнаружил официальный SDK с примерами, а также документацию. Я решил сделать что-то полезное для себя, а заодно посмотреть, как создаются приложения под Windows.

Мой код (для Visual Studio) можно найти здесь.

Подробнее о том, как я это сделал, примеры кода и как это выглядит - под катом.

Читать далее
Total votes 29: ↑28 and ↓1+36
Comments29

Краткая шпаргалка по tmux (менеджеру терминалов)

Reading time1 min
Views421K
tmux — это менеджер терминалов, к которому удобно подключаться и отключаться, не теряя при этом процессы и историю. Как screen, только лучше (в первую очередь потому, что использует модель клиент—сервер).

image

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

Читать дальше →
Total votes 59: ↑53 and ↓6+47
Comments50

Возможности интеграции Counter-Strike: Global Offensive

Reading time9 min
Views15K
Image by andytb under license CC BY-SA 2.0
Counter-Strike: Global Offensive — современная версия старой доброй «CS 1.6». За двадцать лет развития серии технологии сильно изменились. Ранее соревнования по CS проходили в конференц-залах, а информация, доступная наблюдателю, была крайне скудна. Сейчас крупные соревнования по Counter-Strike проводятся на огромных стадионах, а количество выводимой на экраны информации зашкаливает.

Мне стало интересно, как организован экспорт игрового состояния в сторонние системы, например, для управления сценическим освещением. В этой статье я расскажу про то, как это работает, и покажу, как можно превратить телефон на Android в устройство вывода игрового состояния.
Читать дальше →
Total votes 51: ↑51 and ↓0+51
Comments7

Как писать bash-скрипты надежно и безопасно: минимальный шаблон

Reading time8 min
Views67K

Скрипты на Bash. Как много в этом слове. Любому разработчику рано или поздно приходится их писать. Почти никто не скажет "да, я люблю писать bash-скрипты", и поэтому этой теме уделяют мало внимания.

Я не буду пытаться сделать из вас эксперта в Bash, а просто покажу минимальный шаблон, который поможет сделать ваши скрипты более надежными и безопасными.

Читать далее
Total votes 109: ↑109 and ↓0+109
Comments27

Практические рекомендации по работе с Docker для Python-разработчиков

Reading time28 min
Views101K

Прим. Wunder Fund: в этой длииинной статье вы найдете ряд полезных советов по работе с Docker, как общего характера, так и Python-специфичных. Хоть мы и давно используем Docker в работе, про некоторые советы мы подумали "а что, так можно было?". Советуем вначале пролистать статью, и отметить штуки, которые покажутся актуальными для вашей текущей ситуации.

Читать далее
Total votes 53: ↑52 and ↓1+65
Comments8

Партицирование таблиц в PostgreSQL: чек-лист для старта

Reading time13 min
Views49K

Часто возникает проблема: одна из таблиц в базе данных сильно выросла и время выполнения запросов к этой таблице увеличилось. Одним из вариантов решения подобной проблемы в PostgreSQL является партицирование. В статье затронем не только техническую реализацию, но и опишем этапы подготовки к партицированию. 

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

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments31

Очередной гайд по HTML-элементам, которые можно использовать в каждом проекте

Reading time6 min
Views20K
В сети существует множество гайдов, которые описывают назначение HTML-элементов. Но сколько я не проводил собеседований или не проверял код, я вижу одну картину. Разработчики используют ограниченный набор элементов.

Для исправления этой ситуации я взял следующие элементы: header, nav, main, section, article, aside, address, и покажу, как их использовать.
Читать дальше →
Total votes 13: ↑12 and ↓1+18
Comments6

Что можно положить в тег <head>

Reading time14 min
Views31K

Рекомендуемый минимум

Ниже приведены основные элементы для любого веб-документа (веб-сайта/приложения):

meta charset — определяет кодировку веб-сайта, стандартом является utf-8.

meta name="viewport" — настройки viewport, связанные с мобильной отзывчивостью

width=device-width — физическая ширина устройства (отлично подходит для мобильных устройств!)

initial-scale=1 — начальный масштаб, 1 означает отсутствие масштабирования

Элементы

Допустимые элементы <head> включают meta, link, title, style, script, noscript и base.

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

Читать далее
Total votes 35: ↑35 and ↓0+35
Comments23

Git, я хочу все отменить! Команды исправления допущенных ошибок

Reading time4 min
Views50K
image

Git — удобная, но довольно сложная система. Сложность, прежде всего, в том, что по невнимательности можно допустить ошибку, которую затем сложно или вообще невозможно исправить. Документация Git предоставляет описание множества команд, которые дают возможность исправить ошибку.

Но вся штука в том, что для исправления проблемы нужно знать точное название команды. И здесь у нас возникает типичная проблема курицы и яйца. В этой статье рассказывается о командах, которые помогают решить проблемные ситуации.
Читать дальше →
Total votes 26: ↑19 and ↓7+20
Comments20

Задавать Height и Width для изображений снова важно

Reading time13 min
Views61K

Сторонники веб-оптимизаций часто советуют добавлять к изображениям атрибуты с размерами, что позволяет при отрисовке страницы оставлять нужное количество пространства ещё до загрузки самого изображения. Это позволяет избежать смещения раскладки страницы по мере загрузки изображений - что с недавних пор начал измерять Chrome в новой метрике Cumulative Layout Shift (CLS).

Секрет, не так хорошо известный разработчикам, не являющимся заядлыми сторонниками веб-производительности, заключается в том, что до недавнего времени, как мы увидим в статье, во многих случаях это фактически не имело особого смысла. Однако, недавние изменения в мире CSS и их быстрое внедрение в браузерах снова делает добавление атрибутов width и height к тегу <img> полезным.

Читать далее
Total votes 19: ↑18 and ↓1+24
Comments21

Не лайтхаусом единым: как проверить свой сайт со всех сторон

Reading time3 min
Views19K


Когда мы говорим о веб-валидаторах и оптимизации сайта под них, мы чаще всего имеем ввиду Lighthouse/Pagespeed Insights от Google, который давно стал де-факто стандартом для оценки производительности сайта. Кто-то стремится к заветным 100 баллам даже на прототипах и шаблонных приложениях в две кнопки, кто-то в шутку создает абсолютно недоступный сайт с идеальным рейтингом, но для всех фронтендеров лайтхаус предоставляет вменяемую, хоть и довольно поверхностную, аналитику производительности сайта и поиск бутылочных горлышек. Однако скорость загрузки — лишь один из множества параметров, которые стоит проверять на своём сайте, и для большинства других есть свои валидаторы и скоринговые алгоритмы. Мы рассмотрим инструменты для каждого из значимых направлений и составим список, по которому стоит прогонять свой сайт, чтобы в дальнейшем не отлавливать проблемы вручную.
Читать дальше →
Total votes 24: ↑22 and ↓2+31
Comments4

Сервис на языке Dart: введение, инфраструктура бэкэнд

Reading time8 min
Views20K
Оглавление
1. Введение
2. Backend
2.1. Инфраструктура.
2.2. Доменное имя. SSL.
2.3. Серверное приложение на Dart.

3. Web
3.1. Заглушка «Under construction»

4. Mobile


Введение


Меня, Flutter-разработчика, знакомые часто спрашивают: «Что же такое язык Dart?». Качают головой со словами: «А вот Петя серьёзные транспорты на Java пишет, а в Яндексе вообще плюсы в проде...». Ну что ж, пожалуй, действительно, Dart далёк от практик «фабрик для создания фабрик» из Java. Однако если стоит задача реализовать клиентские приложения сразу для нескольких платформ, не утонув в потоке задач по синхронизации разработчиков разных целевых ОС; создать целостный UI, узнаваемый, но специфичный для Android, iOS и веб и в целом уложиться в адекватные бюджет и сроки, — здесь Flutter не имеет конкурентов. И эти вопросы стоят вдвойне если у вас… стартап.

Итак, легенда: некий стартап решил создать новый сервис… ну, например, для
обмена списками покупок
Такая себе идея для стартапа, я знаю, но если я выпущу ещё один ToDo лист в этот мир, мне будет стыдно :)
между пользователями сервиса. Цель стартапа — выпустить MVP за три месяца на трех платформах (плюс четвертая — сервер, конечно).

10 лет назад я бы сказал, что этот кейс не имеет решения и постарался бы держаться от него подальше, 3 года назад решением мог стать стек ReactNative/React/NodeJs, в 2020 году для этого есть Dart. Добро пожаловать в атмосферу разработки альфа версии сервиса, я постараюсь наглядно пройти и объяснить весь процесс разработки. Код всех приложений будет выложен в паблик. Комментарии, включая набросы и холивары, приветствуются. Спросить автора «по существу» или просто посоветоваться можно в Telegram канале нашего отдела.


Читать дальше →
Total votes 24: ↑20 and ↓4+18
Comments28

Артикли в английском: безжалостная война правил и исключений

Reading time21 min
Views70K


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

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

Нет смысла писать ещё одну статью о базовых правилах употребления артиклей в английском. Сегодня я расскажу о правилах и о способах их нарушить.
Читать дальше →
Total votes 34: ↑32 and ↓2+38
Comments69

32 отличия дизайна мобильного приложения под iOS и Android

Reading time12 min
Views61K
image

Железный дизайнер из Redmadrobot Design Lab Артур Абраров делится наблюдениями.

Адаптировать дизайн под другую платформу — неотъемлемая часть работы дизайнера мобильных приложений. Цель этой работы — органично вписать дизайн в паттерны взаимодействия пользователя. К тому же, проработанная адаптация упрощает разработку за счёт использования нативных компонентов платформы.

Чтобы адаптировать дизайн правильно, нужно соблюдать гайдлайны платформ: Human Interface Guidelines (HIG) у iOS и Material Design у Android. И общаться с разработчиками, в идеале подключать их к дизайну как можно раньше, чтобы они могли сразу задать технические ограничения.

Но в чём именно отличается дизайн под iOS от дизайна под Android? В этой статье я разберу 32 конкретных отличия дизайна под iOS и Android. Они поделены на четыре группы:

  1. Базовые отличия.
  2. Отличия в навигации и паттернах (UX).
  3. Отличия в компонентах (UI).
  4. Прочие отличия.

Особенности iOS будут слева, а Android — справа или сверху/снизу.

Базовые отличия


Human Interface Guidelines vs Material Design


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

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

image

image
Total votes 29: ↑29 and ↓0+29
Comments14

Блокировки в Postgres: 7 советов по работе с блокировками

Reading time6 min
Views22K
И снова здравствуйте! Уже в следующий вторник стартует новый поток по курсу «Реляционные СУБД», поэтому мы продолжаем публиковать полезный материал по теме. Поехали.



На прошлой неделе я писал о конкурентном доступе в Postgres, какие команды блокируют друг друга, и как вы можете диагностировать заблокированные команды. Конечно, после постановки диагноза вам может потребоваться и лечение. С Postgres можно выстрелить себе в ногу, но Postgres также предлагает вам способы не сбить наводку. Вот некоторые из важных советов о том, как стоит и как не стоит делать, которые мы сочли полезными при работе с пользователями по переходу с их единой базы данных Postgres на Citus или при создании новых приложений аналитики в реальном времени.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments8

Гигер и фантастические технологии мира Чужих

Reading time14 min
Views68K

image


Эта статья выходит в точке пространства и времени между двумя датами, важными для жанра «темной» фантастики. 12 мая 2014 года ушел из жизни «отец» биомеханоидов, предвестник и вдохновитель киберпанка, художник Ганс Рудольф Гигер. 18 мая 2017 года в российский прокат выходит очередная часть «Чужого» — уже шестой фильм серии (если не считать уничтоженную критиками дилогию «Чужой против Хищника»).


К 1979 году Гигер полностью сформировал облик «героя» страшных снов о космосе — ксеноморфа, оказавшего огромное влияние на весь поджанр планетарной фантастики. Нет в живых уже многих создателей первого «Чужого», но сам космический пришелец поныне здравствует. За почти сорок лет набралось огромное количество материалов по вселенной Чужих — нереализованные сценарии, арты, скетчи, воспоминания создателей. История о том, как создавались фильмы, может оказаться не менее интересной, чем любая часть «Чужого».


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

Читать дальше →
Total votes 96: ↑90 and ↓6+84
Comments76

Механические клавиатуры

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

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

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

Механические клавиатуры. Путеводитель.

Читать дальше →
Total votes 323: ↑313 and ↓10+303
Comments331

«Человек на острие ножа» — Джон Кармак, вехи достижений и вклад в игровую индустрию

Reading time29 min
Views70K


Фигура Джона Кармака в индустрии компьютерных игр (далее по тексту КИ) неоднозначна. Существует большое количество слухов и скандалов, связанных с его именем. Многие считают его неприятным человеком, и многие также считают его гением. Эти два свойства, кстати, не взаимоисключающи. Можно быть не самым приятным в общении человеком, но при этом делать удивительные вещи. В этой публикации мы не рассматриваем все заслуги Джона перед КИ, не обсуждаем его прения с членами команды, и не стараемся раскопать наибольшее количество скандалов. Даже историю Id Software затрагиваем не полностью, лишь вскользь касаясь пройденных Джоном вех.

Любой разработчик со стажем и любой отдавший всю свою жизнь индустрии может быть предметом глубоких исследований, множества публикаций, и даже книг. Однако все понимают, надеюсь, как много нужно времени, чтобы собрать всю эту информацию воедино, проверить и сопоставить факты, связаться с фигурантами, выработать четкую стратегию изложения. Чем больше проходит времени, тем плотнее пелена истории покрывает удаляющиеся от нас годы, откуда можно было бы извлечь знание. Одно дело если ты был очевидцем его, если читатель (или писатель) представляет старый пласт игроков и пласт людей интересующихся. Совсем другое дело если с материалом знакомятся люди, которые вообще не знакомы с играми Wolf3D, Doom, Quake и кому наборы букв IDDQD и IDKFA ничего не говорят. Как рассказать все и не утомить читателя? Как сосредоточиться на главном? Как не потратить недели и месяцы на публикацию казалось бы ненужной статьи?

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


Читать дальше →
Total votes 148: ↑143 and ↓5+138
Comments90

Много бесплатных книг по программированию

Reading time7 min
Views345K
Читать дальше →
Total votes 202: ↑192 and ↓10+182
Comments42

Два простых правила для предотвращения взаимных блокировок на мьютексах

Reading time6 min
Views57K
Здравствуйте, уважаемые Хабраюзеры!

Так сложилось, что это третий пост в блоге нашей компании, и, как и первые два, он посвящен вопросам многопоточного программирования и проблемам, которые при этом возникают. Получилось так неслучайно, ведь мы на собственной «шкуре» испытали, что ситуации, возникающие при написании многопоточных программ, невероятно сложны для отладки, так как во многом определяются динамикой работы программы на конкретной аппаратной платформе. Уверен, что большинство программистов сталкивались с ситуацией, когда программа, которая прекрасно работает на одном компьютере, на другом совершенно неожиданно начинает дедлочиться практически «на ровном месте».
Читать дальше →
Total votes 82: ↑73 and ↓9+64
Comments50
1

Information

Rating
Does not participate
Registered
Activity