Pull to refresh
1
0
Александр @thebestzorro

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

Send message

Гайд по сплит клавиатурам

Level of difficultyEasy
Reading time31 min
Views9.3K

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

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

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

Как департамент утилизации CPU превратился в департамент экономии железа, выдерживающий нагрузку в 1 млн RPS

Level of difficultyEasy
Reading time26 min
Views35K

Привет, меня зовут Мария, когда-то я работала на шахте, потом на заводе, а 3.5 года назад пришла в Ozon Tech. Сейчас я старший Golang-разработчик в команде product-facade. Это самый высоконагруженный сервис маркетплейса, но так было не всегда.

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

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

Оптимизируем использование памяти в приложениях Python

Reading time10 min
Views9.6K
Когда дело доходит до оптимизации производительности, чаще всего особое внимание уделяется скорости и активности использования ЦП. Гораздо реже кто-либо задумывается о потреблении памяти, конечно, пока не будут израсходованы мощности RAM. Есть много причин, по которым предпринимаются попытки лимитировать использование памяти – не только стремление избежать отказа приложения из-за ошибок, связанных с её исчерпанием.

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

Заблуждения программистов о тексте

Reading time11 min
Views19K


Возжелавший прильнуть к жанру вестернов обратится либо к десятой строчке топ-250 лучших фильмов по версии IMDb, либо уже будет обладать знанием, что начинать нужно с «Хороший, плохой, злой». Там он увидит жадных потных мужчин, которые заканчивают фильм напряжённым мексиканским противостоянием. Жалкая охота за золотом конфедератов разворачивается на фоне кровавых битв Гражданской войны между «Севером» и «Югом». Таким зритель запомнит вестерны как жанр.

В реальности «Хороший» — это не классика, а яркий представитель поджанра ревизионистских вестернов, снят в Европе и наоборот, критикует американскую идеологию направления. В нём нет ничего общего с картинами, где герой встаёт на защиту правильного и справедливого общества от злодеев или кровожадных индейцев. В пятидесятых и шестидесятых классический вестерн сошёл на нет, но в коллективном сознании критика быстро заместила критикуемый объект. Когда Марти Макфлай жалуется на анахронизм наряда, он сравнивает себя с антигероями Клинта Иствуда, а не бравыми ковбоями в исполнении Джона Уэйна.

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

Заблуждение 1. Любые символы, кроме управляющих, имеют предсказуемую ширину


В реальности ширина символов может отличаться даже в моноширных шрифтах.
Читать дальше →
Total votes 96: ↑96 and ↓0+96
Comments51

Управление производительностью с Python 3.12

Reading time6 min
Views14K

В Python 3.12 появилась поддержка perf profiling. В этой статье увидим, как это помогает сократить время выполнения Python-скрипта с 36 секунд до 0,8. Мы рассмотрим Linux-инструмент perfграфики Flame Graph, посмотрим на  дизассемблированный код и займемся поиском ошибок.

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

Ретенционные каппы своими руками

Reading time3 min
Views7.8K

image


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

Читать дальше →
Total votes 26: ↑25 and ↓1+36
Comments52

От глашатаев к Programmatic: эволюция рекламы и ее след в обществе

Reading time9 min
Views26K

Реклама - огромная отрасль и социально-экономическое явление. Мы каждый день соприкасаемся с различными ее проявлениями - в витринах магазинов, на дорогах, на интернет-сайтах и в приложениях на смартфоне.

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

Читать далее
Total votes 8: ↑7 and ↓1+8
Comments0

Полезные материалы для разработчика

Reading time8 min
Views11K

Существует много полезных инструментов, которые помогают автоматизировать рутинную работу и тем самым облегчить жизнь разработчика. 

Выпускнику и преподавателю Computer Science Center, Равилю Галееву, пришла идея собрать такие инструменты и технологии в один курс и познакомить студентов с ними. За пример такого курса были взяты The Missing Semester of Your CS Education от MITSoftware Carpentry и cs50.

В этом посте мы собрали видеолекции курса «Практический минимум» и материалы к занятиям. Благодарим Равиля за подборку! 

Читать далее
Total votes 7: ↑6 and ↓1+8
Comments0

Как прорешать SICP: Отчёт о создании решебника для самого известного в мире задачника по программированию. Ботаны есть?

Reading time45 min
Views17K

(Хабр-Статья представляет собой авторский перевод доклада, представленного автором на Scheme Workshop 2020, проводившегося в рамках Международной Конференции по Функциональному Программированию, 28 августа 2020 года)

Эта статья -- своего рода "отчёт" по самому большому проекту, который я сделал в своей жизни по собственной инициативе. Я сделал полное, исчерпывающее решение всех задач из одной из самых извесных книг по программированию в мире "Структура и Интерпретация Компьютерных Программ" (Structure and Interpretation of Computer Programs -- SICP), за авторством Абельсона, Сассмана и Сассман.

В ходе выполнения проекте я собрал довольно много данных о том, как решалось это задание в частности, и сформулировал несколько эвристик, помогающих выполнять проекты вообще, а именно:

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

Понимание LDAP-протокола, иерархии данных и компонентов записей

Reading time13 min
Views182K

Введение


LDAP, или Lightweight Directory Access Protocol, является открытым протоколом, используемым для хранения и получения данных из каталога с иерархической структурой. Обычно используемый для хранения информации об организации, ее активах и пользователях, LDAP является гибким решением для определения любого типа сущностей и их свойств.


Big Tree

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

Читать дальше →
Total votes 12: ↑11 and ↓1+15
Comments8

Книга «Время UNIX. A History and a Memoir»

Reading time5 min
Views4.8K
image Привет, Хаброжители! Операционная система Unix завоевала мир, чего совсем не могли представить ее создатели, творя историю на последнем этаже Bell Labs в 1969 году. Идея этой ОС оказала колоссальное влияние на разработку программного обеспечения и развитие операционных систем. Вы узнаете о том, как зарождалась система Unix, чем она примечательна и почему занимает столь важное место в компьютерном мире, а также об удивительных людях, вложивших в нее силы и душу. Книга представляет собой честный и остроумный рассказ о жизни айтишного сообщества тех времен — никакой зауми, страниц кода и ссылок. Расслабьтесь и получайте удовольствие, погрузившись в историю, полную приключений и открытий.

Брайан Керниган — автор и соавтор дюжины книг по программированию, включая легендарные «Язык программирования Си» и «Unix. Программное окружение». На протяжении 30 лет был членом той самой группы UNIX в исследовательском центре Bell Labs и не только наблюдал создание UNIX.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments4

Яндекс.переводчик для Linux на Python+GTK3

Reading time4 min
Views12K

Приветствую хабражителей!


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


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


image


Вначале был translate-shell...

Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments7

Отчет с PyDaCon meetup в Mail.ru Group, 22 июня

Reading time3 min
Views4.2K


В конце июня, в московском офисе прошел митап на котором собрали 2 секции: доклады по Python, состав которого был сформирован на основе общего списка докладов к PyCon Russia и PyData-трек от PyData Moscow meetup. Под катом собрали презентации, записи докладов и небольшие комментарии.
Total votes 40: ↑40 and ↓0+40
Comments4

Как моя жизнь превратилась в книгу Кафки

Reading time10 min
Views65K
Это печальная и долгая история и о взаимоотношениях в IT-коллективе, и корпоративной культуре, и о совместной разработке. Надеюсь, кому-то она поможет не совершать наших ошибок и выстроить лучшие отношения с коллегами.

Вступление


В конце марта 2018 я начала работать, как мне казалось, в надежной и симпатичной шведской компании с большим IT-отделом в 200 человек. Я мечтала участвовать много в разработке новых приложений на Java, лучше узнать фреймворки семейства Spring, учиться новым технологиям (до этого случайно угодила в компанию, где всё ещё пользовались SVN), участвовать в интересных дискуссиях, получать и оставлять адекватные комментарии в Code Review (а не заморачиваться только на пробелах и отступах) — одним словом, быть частью профессионального коммьюнити и иметь возможность развиваться как специалист. Небезызвестная шведская корпоративная культура и пестрый международный коллектив подбадривали меня и укрепляли в моих надеждах на наше с компанией плодотворное сотрудничество.

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

Но моё счастье длилось недолго…
Читать дальше →
Total votes 172: ↑147 and ↓25+122
Comments460

Обзор свободного ПО для Android

Reading time22 min
Views128K


Привет Хабр.

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

И так, можно ли пользоваться мобильным устройством без серьёзного ущерба для приватности?

Ответ — да, можно, но для этого необходимо избавиться от ПО и сервисов, бесконтрольно собирающих данные. Для этого понадобится желание что-то изменить и любое устройство на которое можно установить кастомную систему Android (iOS по понятным причинам не рассматривается, а из альтернатив только SailfishOS и GNU/Linux, но эти системы можно установить на очень ограниченное число моделей). Всех кто заинтересовался я приглашаю под кат.
Читать дальше →
Total votes 66: ↑65 and ↓1+64
Comments82

Что записано в файле .ssh/known_hosts

Reading time5 min
Views61K

Каждый раз, когда мы подключаемся по протоколу ssh к серверу, ssh клиент проверяет совпадает ли публичный ключ для этого сервера с тем, который был прошлый раз (по крайней мере так рекомендует делать стандарт ssh). В OpenSSH список известных ключей серверов хранится в файле known_hosts. Под катом коротко о том, что и как конкретно там хранится.

Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments15

Подборка книг от Массачусетского технологического института

Reading time11 min
Views16K

Пока за окном проходит месяц май, начинают распускаются цветы, играть гормоны и обостряться сезонные заболевания, в ведущих западных институтах тихо-мирно идёт научная работа и выходит много интереснейших книг. Тут можно найти практические пособия, профессиональные прогнозы, обработанные результаты последних исследований. И это не сухая академическая литература, а увлекательные произведения, которые рассчитаны на широкую аудиторию. От простого к сложному, на примере банальных вещей раскрываются сложные темы. Так как Хабр с MIT ещё не встретили друг друга и между ними не вспыхнула любовь с первого взгляда, вот подборка 14 книг из разных областей: от кибербезопасности и AI до исследований космоса. Весь список доступен по ссылке.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments4

1000+1 способ определения того, являются ли все элементы в списке одинаковыми

Reading time7 min
Views47K
В жизни у нас всегда есть выбор, знаем мы о нем или нет. То же самое происходит и в кодировании. Существует множество способов, с помощью которых мы можем подойти к какой-то конкретной задаче. Мы можем изначально не рассматривать эти способы или не иметь о них никакого понятия, но они существуют. Быть программистом — это не просто знать язык и процесс написания кода. Очень часто это значит быть самой креативной версией себя, рассматривая даже то, над чем Вы раньше не задумывались. И на этой ноте я хотел бы представить себя. Здравствуйте! Меня зовут Алекс, я основатель CheckiO, и я уже давно занимаюсь творческими аспектами этого проекта.

image
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments31

Как мы выбирали между Elastic и Tarantool, а сделали свою (самую быструю) in-memory БД. С Join и полнотекстовым поиском

Reading time10 min
Views46K

Всем привет.


С середины 2016 года мы проектируем и разрабатываем новое поколение платформы. Принципиальное отличие от первого поколения — поддержка API "тонкого" клиента. Если старая платформа предполагает, что на клиента при запуске загружается метаинформация о всем контенте, который доступен для абонента, то новая платформа должна отдавать срезы данных отфильтрованные и отсортированы для отображения на каждом экране/странице.


Высокоуровневая архитектура на уровне хранения данных внутри системы — постоянное хранение всех данных в централизованном реляционном SQL хранилище. Выбор пал на Postgres, тут никаких откровений. В качестве основного языка для разработки — выбрал golang.


У системы порядка 10м пользователей. Мы посчитали, что с учетом профиля теле-смотрения, 10М пользователей может дать сотни тысяч RPS на всю систему.



Это означает, что запросы от клиентов и близко не стоит подпускать к реляционной SQL БД без кэширования, а между SQL БД и клиентами должен быть хороший кэш.


Посмотрели на существующие решения — погоняли прототипы. Данных, по современным меркам у нас немного, но параметры фильтрации (читай бизнес-логика) — сложные, и главное персонализированные — зависящие от сессии пользователя, т.е. использовать параметры запроса как ключ кэширования в K-V кэше будет очень накладно, тем более пейджинг и богатый набор сортировок никто не отменял. По сути, под каждый запрос от пользователя формируется полностью уникальный набор отфильтрованных записей.

Читать дальше →
Total votes 79: ↑74 and ↓5+69
Comments117
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity