Как стать автором
Обновить
0
0

Backend developer

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

PostgreSQL Antipatterns: убираем медленные и ненужные сортировки

Время на прочтение5 мин
Количество просмотров16K
«Просто так» результат SQL-запроса возвращает записи в том порядке, который наиболее удобен серверу СУБД. Но человек гораздо лучше воспринимает хоть как-то упорядоченные данные — это помогает быстро сравнивать соответствие различных датасетов.

Поэтому со временем у разработчика может выработаться рефлекс «Дай-ка я на всякий случай это вот отсортирую!» Конечно, иногда подобная сортировка бывает оправдана прикладными задачами, но обычно такой случай выглядит как в старом анекдоте:
Программист ставит себе на тумбочку перед сном два стакана. Один с водой — на случай, если захочет ночью пить. А второй пустой — на случай, если не захочет.
Давайте разбираться — когда сортировка в запросе точно не нужна и несет с собой потерю производительности, когда от нее можно относительно дешево избавиться, а когда сделать из нескольких — одну.

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

Разбираемся с латинскими сокращениями и фразами в английском языке

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


Полтора года назад, читая работы про уязвимости Meltdown и Spectre, я поймал себя на том, что не очень понимаю разницу между сокращениями i.e. и e.g. Т.е. по контексту вроде бы понятно, но потом вроде бы как-то и не совсем то. В результате я тогда сделал себе небольшую шпаргалку именно по этим сокращениям, чтобы не путаться. И тогда же появилась идея этой статьи.


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

Читать дальше →
Всего голосов 143: ↑142 и ↓1+141
Комментарии72

Bitmap-индексы в Go: поиск на дикой скорости

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


Вступительное слово


Я выступил с этим докладом на английском языке на конференции GopherCon Russia 2019 в Москве и на русском — на митапе в Нижнем Новгороде. Речь в нём идёт о bitmap-индексе — менее распространённом, чем B-tree, но не менее интересном. Делюсь записью выступления на конференции на английском и текстовой расшифровкой на русском.

Мы рассмотрим, как устроен bitmap-индекс, когда он лучше, когда — хуже других индексов и в каких случаях он значительно быстрее них; увидим, в каких популярных СУБД уже есть bitmap-индексы; попробуем написать свой на Go. А «на десерт» мы воспользуемся готовыми библиотеками, чтобы создать свою супербыструю специализированную базу данных.

Очень надеюсь, что мои труды окажутся для вас полезными и интересными. Поехали!
Всего голосов 93: ↑91 и ↓2+89
Комментарии40

Hello, World! Глубокое погружение в Терминалы

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


На написание данной статьи меня вдохновила статья об анализе Сишного printf. Однако, там был пропущен момент о том, какой путь проходят данные после того, как они попадают в терминальное устройство. В данной статье я хочу исправить этот недочет и проанализировать путь данных в терминале. Также мы разберемся, чем отличается Terminal от Shell, что такое Pseudoterminal, как работают эмуляторы терминалов и многое другое.

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

Тульпа — карманная шизофрения для гиков или реальный воображаемый друг

Время на прочтение9 мин
Количество просмотров1.5M
Скажите, вы бы хотели иметь друга? Любого человека или другое существо, которое будет вашим самым лучшим другом, обладая той внешностью, которая вам нравится, и тем характером который вам необходим, которое не надо будет делить с ее или его друзьями, родителями, собачкой, игрушками или учебой.
А секретаря, который всегда с вами, имеет прямой доступ к вашей памяти, напомнит, подскажет, и подаст нужную идею, напарника для мозгового штурма?
Тогда добро пожаловать под кат.



Тульпа — это стабильная самовнушенная осознанная визуализация, способная к самостоятельным мыслям и действиям, обладающая собственным сознанием. Что характерно, создается она совершенно осознанно, путем целенаправленных действий в течении долгого времени, и позволяет задавать начальный характер и форму по вашему усмотрению.
Это ты сейчас с кем разговаривал? Расшифруй определение.
Всего голосов 161: ↑83 и ↓78+5
Комментарии563

Кэши для «чайников»

Время на прочтение12 мин
Количество просмотров36K
Кэш глазами «чайника»:


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

Давайте прокрутим полный оборот ситуаций.

Tl;dr: добавляя в архитектуру кэш важно явно осознавать, что кэш может быть средством дестабилизации системы под нагрузкой. Смотрите конец статьи.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии33

Реализуем безопасный VPN-протокол

Время на прочтение12 мин
Количество просмотров47K
Снова тема VPN, конфиденциальной передачи данных, безопасности и криптографии. Сейчас, в эру пост-Сноудена, стало модно клепать безопасные, уважающие приватность, невзламываемые, защищённые от спецслужб и цензуры программы. Однако эта статья – не очередной маркетинговый пиар, а, скорее, демонстрация того, как применяются криптографические примитивы и на что стоит обращать внимание при разработке подобного программного обеспечения.



Результатом этой работы предполагается создание работающего клиент-сервера, пригодного для review разработчиками (то есть немного кода на высокоуровневом языке), достаточно производительного, чтобы использоваться в промышленных условиях, имеющего высокий порог безопасности: GoVPN.
Читать дальше →
Всего голосов 47: ↑46 и ↓1+45
Комментарии56

Ваш wi-fi расскажет мне, где вы живёте, где работаете и где путешествуете

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

Москва вайфайная

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

Пробы WiFi


Чтобы соединиться с уже известными сетями, которые не сообщают о своём присутствии, все ваши мобильные устройства отправляют пробные пакеты, чтобы найти известные им сети. Эти пакеты можно перехватить, когда телефон включается, или когда он отсоединяется от сети. Для этого используются обычные инструменты — airodump / tcpdump. Пример:

# airodump-ng -w wifi-dump wlan0
# tcpdump -n -l -e -r wifi-dump.cap |
    grep 'Probe Request ([^)]'


Вывод содержит время, MAC-адрес устройства и имя сети. Пример:

16:32:26.628209 BSSID:ff:ff:ff:ff:ff:ff DA:ff:ff:ff:ff:ff:ff SA:50:ea:d6:aa:bb:cc
    Probe Request (SUBWAY) [1.0 2.0 5.5 11.0 Mbit]


То бишь, устройство 50:ea:d6:aa:bb:cc проверяло, есть ли сеть SUBWAY в пределах доступности.

Ну и что тут плохого?


Ну испускают они эти пакеты с именами сетей. Подумаешь.
Читать дальше →
Всего голосов 64: ↑61 и ↓3+58
Комментарии51

300 потрясающих бесплатных сервисов

Время на прочтение11 мин
Количество просмотров1.6M


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

Читать дальше →
Всего голосов 341: ↑325 и ↓16+309
Комментарии107

Книги для «прокачки» мозгов

Время на прочтение2 мин
Количество просмотров23K
Привет Хабражители!

Мы выпускаем не только компьютерные книги (вы удивлены ?), дающие знания, но и книги для форматирования мозга.

image

1. Быстрые решения не приводят к успеху. Пойми, что хочет твой мозг, и сделай наоборот. Автор: Дэвид Ди Салво
Прототип: What Makes Your Brain Happy and Why You Should Do the Opposite

2. Прокачай свой мозг! Стань умнее. Автор(ы): М. Фотухи, К. Бреда Антониадес
Прототип: Boost Your Brain: The New Art and Science Behind Enhanced Brain Performance

3. Перезагрузи мозг. Решение внутренних конфликтов. Автор(ы): С. Хайес, С. Смит
Прототип: Get Out of Your Mind and Into Your Life: The New Acceptance and Commitment Therapy (A New Harbinger Self-Help Workbook)
Читать дальше →
Всего голосов 14: ↑9 и ↓5+4
Комментарии0

Взлом TLS с денежным призом

Время на прочтение1 мин
Количество просмотров12K
Разработчики TLS-имплементации на языке OCaml объявили конкурс BTC Piñata, чтобы доказать надёжность своей защиты. Известно, что конкурсы не могут быть настоящим доказательством, но этот очень уж забавный, да ещё с небольшим денежным призом.

Итак, двое хакеров открыли демо-сервер ownme.ipredator.se.

На сервере лежит ключ от биткоин-адреса 183XuXTTgnfYfKcHbJ4sZeF46a49Fnihdh. Сервер отдаст нам ключ, если мы предъявим сертификат.

Организаторы предусмотрели механизм MiTM для нас. Мы можем пропускать через себя трафик между виртуальными машинами BTC Piñata (TLS-сервер и TLS-клиент). Как понятно, в этом трафике есть нужный сертификат, нужно его только извлечь каким-то образом.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии9

Cloudmouse удалил все виртуальные сервера

Время на прочтение2 мин
Количество просмотров88K
Приветствую!

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

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

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

Нашему проекту уже полгода. У нас зарегистрировались более 22 000 пользователей. Мы сами занимаемся разработкой панели управления и облачной инфраструктурой. За это время мы получили колоссальный опыт и постоянно внедряем новые и современные решения.

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

Мы приносим извинения, и понимаем что в результате этого, многие ваши проекты не работали и многие из них потребуется время, чтобы восстановиться. Нам искренне жаль и конечно же мы понимаем весь масштаб трагедии. Мы сделали очень много выводов, и очень многое изменили в работе облака.
Читать дальше →
Всего голосов 87: ↑86 и ↓1+85
Комментарии172

Чтобы распознавать картинки, не нужно распознавать картинки

Время на прочтение18 мин
Количество просмотров236K
Посмотрите на это фото.



Это совершенно обычная фотография, найденная в Гугле по запросу «железная дорога». И сама дорога тоже ничем особенным не отличается.

Что будет, если убрать это фото и попросить вас нарисовать железную дорогу по памяти?

Если вы ребенок лет семи, и никогда раньше не учились рисовать, то очень может быть, что у вас получится что-то такое:
Осторожно, тяжелые гифки
Всего голосов 263: ↑258 и ↓5+253
Комментарии104

Как я боролся с adware в Google Play и проиграл

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

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

Под катом я расскажу свою версию событий: как я вычислял и искал adware в Google Play, декомпилировал код adware sdk, можно ли дождаться ответа от поддержки Google, почему мобильные антивирусы бесполезны и как им удается на горячем инфоповоде сделать себе хорошую бесплатную рекламу.
Читать дальше →
Всего голосов 136: ↑134 и ↓2+132
Комментарии49

Diablo 3 – пузыри ресурсов

Время на прочтение4 мин
Количество просмотров75K
Эта статья — перевод статьи Simon Schreibt «Diablo 3 – Resource Bubbles».



В мире есть три вещи, на которые я могу смотреть вечно: Огонь, как другие работают и сферы ресурсов в Diablo3. Я уже полюбил стиль Blizzard, как вы могли, возможно, заметить по моей статье о их 2.5D деревьях. Сегодня речь о другом. Сегодня мы всмотримся глубокооо в кристальные сферы Diablo в поисках истины.
(внутри много картинок)
Читать дальше →
Всего голосов 87: ↑80 и ↓7+73
Комментарии30

Своя браузерка — путь мыши: начало

Время на прочтение9 мин
Количество просмотров19K
Эта история началась пять с половиной лет назад — когда к простому непростому работнику всехххххххххх регионального провайдера «Тхххххх» «Схххххх» обратился один из пользователей, предлагая поднять в локальной сети клон игры Ogame на движке «xNova 0.8b RageRepack». Как раз в то время «Схххххх» активно занималась созданием собственных ресурсов — собственный DCHub, свои сервера Counter-Strike (по лицензии Valve!), свой WSUS и даже свой репозиторий для основных Linux-дистрибутивов — не упоминая тех ресурсов, которые могут вызывать вопросы у компетентных органов. Ибо зачем упоминать того, чего не было и быть не могло?

Работнику мысль показалась весьма интересной. Любопытный ресурс на интересную тематику, да еще и вполне уникальный в пределах региона. Почему бы и нет? Были выделены соответствующие мощности, настроены аккаунты, развернуты пакеты… Ну, вы должны себе представлять сопутствующую мутотень да еще и пять лет назад.

Вскорости выяснилось пара неприятных подробностей. Вышеозначенный пользователь разбирался в движке чуть менее, чем никак, поэтому вся тяжесть ТП легла на вышеупомянутого работника. А когда выяснилось, что… мнэ… «монетизировать траффик» от пользователей в то время не представлялось возможным, то и интерес у означенного пользователя угас очень быстро. Но — ущерб уже был нанесен. Вышеупомянутый работник распробовал яд PHP и втянулся…
Читать дальше →
Всего голосов 31: ↑20 и ↓11+9
Комментарии13

Как побеждать в компьютерных играх, часть II: конкретные примеры

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


Напоминаю, есть мужик Дэвид Сирлин, который известен чемпионством по Street Fighter и в GameDev. Он написал книгу про то, как побеждать и готовиться к турнирам. Первая вступительная часть тут. Ниже — выжимка части II и мои комментарии.

Вот мы и дошли до настоящего мяса. Это разборы игровых ситуаций и конкретные примеры того, как думает оппонент. Например:
Если у тебя есть какой-то дурацкий шаблон действий, который убивает соперника, не надо задумываться над чем-то ещё. У такой техники ещё есть дополнительный бонус — она доводит людей до белого каления. Если кого-то бьют с помощью одной и той же повторяющейся тактики, то они обычно выходят из себя и срываются, в результате играют еще хуже, еще чаще ошибаются, становятся все злее, и так далее. Порочный круг.
Читать дальше →
Всего голосов 44: ↑37 и ↓7+30
Комментарии28

Искусственный рассвет

Время на прочтение9 мин
Количество просмотров232K
Началось всё год назад. Перед Новым 2014 годом несколько пришел в упадок жизненный тонус. Процесс самокопания привел к следующей мысли:



— А, что ж так темно-то, Господи? © День радио.

Впрочем, для человека, живущего зимой по летнему времени — мысль вполне естественная.
Что же делать?
Всего голосов 187: ↑185 и ↓2+183
Комментарии87

Прокси сервер для свободного интернета

Время на прочтение6 мин
Количество просмотров119K
Однажды мне окончательно надоели странички вроде «данный ресурс заблокирован по требованию», которые стали попадаться все чаще и чаще. А еще все больше стало упоминаний про «глубинный интернет», i2p, tor, onion, анонимные p2p сети и вообще повеяло хакерской романтикой детства, когда интернет был чем-то загадочным и был доступен только с двух часов ночи со скоростью 31200…

В общем, была поставлена цель: сделать прокси сервер, через который можно заходить на любые сайты (включая сайты в доменах .i2p и .onion) в обход любых блокировок. Цель обеспечения анонимности не ставилась.

Ужа с ежом удалось скрестить, и вот теперь я, как и 17 лет назад, исследую глубинные слои интернета. Кстати, если говорить про i2p, то скорость по ощущениям не намного больше, чем у интернета 17 лет назад. История циклична.

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

Как это работает:

Основным прокси сервером явлется squid.
Через cache_peer (вышестоящий прокси) squid подключается к i2p и tor. tor является Socks прокси, а squid — http прокси, поэтому между squid и tor встраивается прослойка privoxy.
Также мы имеем обновляемый ACL список всех заблокированных ресурсов в русском интернете.
Squid обрабатывает запросы от браузеров следующим образом:
Если запрашивается URL в домене .i2p, то запрос передается по цепочке в i2p.
Если запрашивается URL в домене .onion, то запрос передается по цепочке в tor.
Если запрашивается запрещенный URL, то запрос передается по цепочке в tor.
Все остальные запросы отправляются напрямую самим squid.

Инструкция как сделать интернет без ограничений своими руками:
Читать дальше →
Всего голосов 31: ↑28 и ↓3+25
Комментарии48

Современный бэк-офис IT-компании

Время на прочтение11 мин
Количество просмотров53K
В одной из дискуссий недавно, я перечислил основные системы, делающие работу ИТ-компании цивилизованной. Список получился весьма обширный, и я решил оформить его как самостоятельную статью.

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

Всё ниженаписанное касается компаний/отделов, в которых работает работает квалифицированный персонал, то есть курсы «офис для начинающих» им не нужны. Так же как не нужны групповые политики на рабочих станций и специальный админ для перекладывания ярлычков на рабочем столе и установки любимой программы. Другими словами, это бэк-офис айтишников, значительно отличающийся от бэк-офиса остальных отделов.

Краткий спойлер содержимого: VCS, репозиторий исходного кода, code-review, build-сервера, CI, таск-трекер, вики, корпоративный блог, функциональное тестирование, репозиторий для пакетов, система управления конфигурацией, бэкапы, почта/jabber.

Картинка с фрагментом обсуждаемой инфраструктуры:


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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность