Search
Write a publication
Pull to refresh
5
6
Владислав Щапов @phprus

Манул

Send message

Слайды курса «Технологии и разработка СУБД»

Reading time2 min
Views9.7K


На протяжении последнего года моя коллега Анастасия Лубенникова и я вели курс под названием «Технологии и разработка СУБД». Данный курс посвящен разработке реляционных СУБД с акцентом на конкретную реализацию в лице PostgreSQL. Мы сотрудничали сразу с несколькими ВУЗами. На ВШЭ это был обязательный предмет, рассчитанный на студентов 4-го курса (на фото студенты сдают экзамен). В ВМК МГУ это был предмет по выбору, на который ходили студенты разных курсов.
Читать дальше →

Бьёрн Страуструп: Проблема с программированием

Reading time8 min
Views51K
image

Статья 2006 года.

Бьёрн Страуструп, изобретатель языка программирования C++, защищает свое наследие и рассказывает, что не так с большей частью программного кода.

В 1980-х и 90-х годах Бьёрн Страуструп разработал и внедрил язык программирования C++, который популяризировал объектно-ориентированное программирование и повлиял на многие другие языки программирования, включая Java.

C++ остается архетипическим «высокоуровневым» компьютерным языком (то есть языком, который сохраняет особенности естественного, человеческого языка), и он по-прежнему используется миллионами программистов. Многие из систем и приложений эры ПК и интернета были написаны на C++. Несмотря на это, язык остается спорным, во многом потому что его, как известно, трудно изучать и использовать, а также потому, что дизайн Страуструпа позволяет разработчикам допускать серьезные ошибки программирования в интересах сохранения их свободы.

Страуструп, на протяжении многих лет работающий в AT&T Bell Labs, теперь является профессором компьютерных наук на факультете инженерии в Техасском университете A&M, недалеко от Хьюстона.

Технологический обзор: почему большая часть программного обеспечения настолько плоха?

Бьёрн Страуструп: Некоторые программы на самом деле довольно хороши по любым стандартам. Подумайте о Mars Rovers, Google и проекте “Геном человека”. Это качественное программное обеспечение! Пятнадцать лет назад большинство людей, и в частности большинство экспертов, сказали бы, что каждый из этих примеров невозможен. Наша технологическая цивилизация зависит от программного обеспечения, поэтому, если бы программное обеспечение было бы в действительности таким же плохим, как и его наихудшая репутация, большинство из нас уже были бы мертвы.
Читать дальше →

Однажды в HFT-компании…

Reading time43 min
Views37K

Моя личная история трейдинга, все совпадения случайны.
image
Я начал свою карьеру в HFT в австралийском филиале одной из крупнейших американских трейдерских компаний в качестве программиста на C++. В первый день меня встретил офис с огромными окнами с видом на сиднейскую гавань, на одном из которых было написано фломастером “< 2ms”. Это было главной задачей для дюжины разработчиков, но, пока что, не для меня. Итак…

Читать дальше →

Понедельник начинается в субботу, или что можно узнать о жизни в другой стране из логов sci-hub

Reading time26 min
Views35K
Хотите знать, как религия влияет на рабочий день, у кого самый длинный обеденный перерыв, и правда ли, что Москва никогда не спит? Но это же Хабр, а не жёлтая газета, так что историю вам поведает самый объективный рассказчик из всех — данные пользовательской активности.


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

Что-то в этом роде произошло со мной, когда я наткнулся на логи sci-hub. Вроде в интернете полно открытых данных, но чтобы заполучить журнал учёта на 195 миллионов записей — это не каждый день так везёт. Несколько недель я изучал доставшееся мне богатство, а теперь пришёл на хабр, чтобы рассказать вам, что я нарыл.
Читать дальше →

GDPR — заскакиваем в уходящий поезд

Reading time14 min
Views7.7K
Общая политика защиты данных, также известная как GDPR, была принята Европейским союзом ещё в далёком 2016 году. Всем было дано 2 года на переход и адаптацию. Но судя по ажиотажу, возникшему в начале 2018, кто же станет делать всё вовремя? Обновления политик конфиденциальности многих весьма и не весьма крупных проектов посыпались в мае, за 2-3 недели до окончательного вступления закона в силу. И кажется мне, проекты поменьше будут ещё какое-то время догонять поезд после 25 мая. Если Вы ещё не внесли необходимые изменения в свои политики или не совсем поняли, какими они должны быть, эта статья для Вас.


Читать дальше →

Я могу стать Apple, и ты тоже

Reading time7 min
Views11K

Публичное раскрытие уязвимости в сторонней проверке подписи кода Apple


В отличие от некоторых предыдущих работ, данная уязвимость не требует прав администратора, не требует JIT-кода или повреждения памяти для обхода проверки подписи кода. Всё что нужно — правильно отформатированный файл Fat/Universal, и проверка подписи кода покажет валидный результат.

Резюме


  • Найденный обход применяемого сторонними разработчиками API для подписи кода позволяет представить любой код как подписанный Apple.
  • Все известные вендоры и проекты с открытым исходным кодом уведомлены (см. список ниже). Для них доступны патчи.
  • Есть вероятность, что проблема затрагивает другие сторонние программы, где используются официальные API подписи кода от Apple.
  • Разработчики несут ответственность за правильное использование API подписи кода. Есть инструменты демо-взлома (PoC) для тестов.
  • Относится только к macOS и более старым версиям OSX.
Читать дальше →

Как забытый на 12 лет сервер может обойтись в 120000 фунтов стерлингов

Reading time5 min
Views49K
Всего за несколько дней до вступления в силу GDPR неприятность постигла Университет Гринвича. Information Commissioner's Office (офис комиссара по информации — независимая организация по надзору за соблюдением законодательства в информационной среде Великобритании) оштрафовал университет на £120 тыс. (на момент написания статьи это порядка 136 тыс. евро, 160 тыс. долларов США, 10 млн. российских рублей, 4,2 млн. украинских гривен) за серьёзную уязвимость в безопасности, приведшую к утечке данных почти 20 тыс. студентов и сотрудников. Как такому серьёзному университету удалось попасть под раздачу ICO и стать первым университетом, оштрафованным за нарушение DPA, и чему это нас учит, читайте под катом.

Читать дальше →

Закончились IPv4 — регистратор RIPE отдал последний блок

Reading time4 min
Views36K
Региональный регистратор RIPE отдал последний блок IPv4. У части других регистраторов блоки кончились еще несколько лет назад: у APNIC — в 2011, а у ARIN — в 2015 году. Немного публичных адресов еще осталось у AFRINIC, однако и эти «запасы» выйдут очень скоро (эксперты прогнозируют, что это случится уже в 2019 году).

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

Читать дальше →

ICANN вновь обновила политики работы с WHOIS — ими снова недовольны

Reading time4 min
Views12K
Корпорация ICANN продолжает попытки сделать так, чтобы работа системы WHOIS, предоставляющей открытый доступ к данным о владельцах доменных имен, удовлетворяла требованиям GDPR. GDPR уже вступил в силу, а пока ни одна из предложенных ICANN инициатив не была одобрена Европейским союзом. Об этом мы писали в нашем блоге на Хабре.

В середине мая ICANN опубликовала очередной, временный, набор политик для WHOIS. Сегодня мы решили рассказать о новой инициативе и сложностях, которые она принесла.

Читать дальше →

Selectel IPv4 prefix route leaking

Reading time10 min
Views10K


В ночь с 15 на 16 июля 2017 в сети Selectel случилось одно из наиболее запомнившихся событий, которое привело к ухудшению (вплоть до полной недоступности) связности сети Selectel с зарубежным сегментом интернета. И это настолько запомнилось, что этому случаю было посвящено выступление технического директора Selectel на конференции сетевых операторов ENOG-14.
Читать дальше →

Как безопасно программировать в bash

Reading time11 min
Views45K

Почему bash?


В bash есть массивы и безопасный режим. При правильном использовании bash почти соответствует практикам безопасного кодирования.

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

Предисловие


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

Bash — не тот язык, где самый правильный способ решить проблему одновременно является самым простым. Если принимать экзамен по безопасному программированию в bash, то первое правило BashPitfalls звучало бы так: всегда используй кавычки.

Главное, что нужно знать о программировании в bash


Маниакально ставить кавычки! Незакавыченная переменная должна расцениваться как взведённая бомба: она взрывается при контакте с пробелом. Да, «взрывается» в смысле разделения строки на массив. В частности, расширения переменных вроде $var и подстановки команд вроде $(cmd) подвергаются расщеплению слов, когда внутренняя строка расширяется в массив из-за расщепления в специальной переменной $IFS с пробелом по умолчанию. Это обычно незаметно, потому что чаще всего результатом становится массив из 1 элемента, неотличимый от ожидаемой строки.
Читать дальше →

Госдума ввела штрафы для хостеров за недонесение на владельцев анонимайзеров, прокси и VPN

Reading time4 min
Views66K
5 июня 2018 года Госдума приняла в третьем чтении законопроект 195449-7 «О внесении изменений в Кодекс Российской Федерации об административных правонарушениях», который устанавливает штрафы за нарушение закона об анонимайзерах. Поправки в КоАП и введение штрафов — запланированное приложение к закону, принятому ещё весной 2017 года Госдумой и подписанному В. Путиным 30 июля 2017 года. Он запрещает использование в России средств для обхода блокировок для доступа к запрещённым сайтам, так называемых анонимайзеров.

Поправки в КоАП предусматривают:

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

Под анонимайзерами можно понимать Tor, VPN и любые другие сервисы, позволяющие обходить блокировки. В октябре прошлого года Роскомнадзор создал департамент по блокировке анонимайзеров и VPN-сервисов.
Читать дальше →

NewSQL: SQL никуда не уходит

Reading time26 min
Views42K
Tренду NoSQL уже почти 10 лет, и можно смело делать какие-то выводы и обобщения. Этим и займемся, поговорим про развитие NoSQL.

Вспомним, как родился NoSQL. Посмотрим, что в нем хорошо, а что плохо, и что выдержало испытание временем. Разберем возможности, которые уже есть в SQL, и которые теперь появляются в NoSQL СУБД. Выделим уникальные ценности NoSQL, и заглянем чуть-чуть вперед в то, что на рынке будет завтра.

А поможет нам в этом Константин Осипов (@kostja) — разработчик и архитектор СУБД Tarantool, который в своем докладе на РИТ++ 2017 говорил про тренды NewSQL, ведь архитектору полагается понимать, что происходит в мире баз данных, чтобы, как минимум, не изобретать велосипед.


О спикере: Сейчас Константин Осипов работает над Tarantool, но ранее участвовал в разработке MySQL, и, когда Константин начинал работу над новой базой данных, его очень смущало, зачем это делать вообще, зачем нужна очередная база данных. В частности, отношение к NoSQL было очень скептическим, как к «недоSQL».

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

Пишем свой протокол поверх UDP

Reading time24 min
Views44K
Первые прямые трансляции с места событий появились в России почти 70 лет назад и вели их из передвижной телевизионной станции (ПТС), которая внешне походила на «троллейбус» и позволяла вести эфиры не из студии. А всего лишь три года назад Periscope позволил вместо «троллейбуса» использовать мобильный телефон.

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


Еще через полгода, летом 2016, Одноклассники запустили свое мобильное приложение OK Live для стриминга, в котором постарались решить эти проблемы.

Александр Тоболь отвечает за техническую часть видео в Одноклассниках и на Highload++ 2017 рассказал про то, как писать свой UDP протокол, и зачем это может потребоваться.

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


Говорят, что надо всегда начинать с архитектуры и ТЗ — якобы без этого нельзя! Так и сделаем.

Адаптивные лимиты параллельных подключений в Netflix

Reading time5 min
Views4.8K


Компания Netflix одержима вопросом доступности сервисов. Мы уже не раз рассматривали его в нашем блоге и рассказывали, как нам удаётся достичь своих целей. Мы используем circuit breakers, лимиты параллельных подключений, тестирование с помощью намеренного внедрения ошибок (chaos testing) и многое другое. Сегодня мы представляем вам ещё один инновационный подход, который существенно повышает стабильность приложения при экстремальных нагрузках и позволяет избежать каскадных сбоев в работе сервисов — адаптивные лимиты параллельных подключений. Больше не нужно тратить силы, чтобы определить лимиты параллельных подключений, позволяющие системе поддерживать небольшое время отклика. В рамках этого анонса мы также выкладываем в открытый доступ простую Java-библиотеку с возможностями интеграции для сервлетов, управляющих программ и gRPC.
Читать дальше →

Мониторим активные сессии PostgreSQL 10, как в Oracle

Reading time3 min
Views33K
image

Данный инструмент написан из спортивного интереса, когда мною было обнаружено, что вьюха pg_stat_activity в PostgreSQL 10 имеет поля wait_event_type и wait_event, очень похожие по сути на оракловые wait_class и event из v$session.

Активно работая в данный момент с программой ASH-Viewer от akardapolov мне стало любопытно — насколько сложно переписать этот продукт под Postgres. Учитывая, что я не профессиональный разработчик, было не просто, но очень интересно. По ходу дела даже нашёл, как мне кажется, пару значительных багов, которые проявляются и в оригинальной программе для Oracle, по кр.мере для Standard Edition.

Принципы работы PASH-Viewer:


Читать дальше →

В Национальной лаборатории Ок-Ридж запустили самый быстрый в мире суперкомпьютер Summit

Reading time3 min
Views17K

Узел суперкомпьютера Summit. Фото: Национальная лаборатория Ок-Ридж (США)

Скорее всего, США вернут себе лидерство в рейтинге суперкомпьютеров TOP500. 8 июня 2018 года объявлено о запуске «самого мощного в мире» суперкомпьютера Summit мощностью 200 петафлопс. И если Китай не преподнесёт никаких сюрпризов, то в июньском TOP500 произойдёт смена лидера. Заявленных 200+ петафлопс с лихвой хватит, чтобы обогнать по результату теста Linpack нынешнего чемпиона Sunway TaihuLight (93 PFLOPS).
Читать дальше →

Мифы о кэше процессора, в которые верят программисты

Reading time6 min
Views76K
Как компьютерный инженер, который пять лет занимался проблемами кэша в Intel и Sun, я немного разбираюсь в когерентности кэша. Это одна из самых трудных концепций, которые пришлось изучить ещё в колледже. Но как только вы действительно её освоили, то приходит гораздо лучшее понимание принципов проектирования систем.

Вы можете удивиться: зачем же разработчику ПО думать о механизме кэширования в CPU? Отвечу. С одной стороны, многие понятия из концепции когерентности кэша непосредственно применимы в распределённых системах и на уровнях изоляции СУБД. Например, представление реализации когерентности в аппаратных кэшах помогает лучше понять разницу в моделях согласованности (консистентности) — отличие строгой согласованности (strong consistency) от согласованности в конечном счёте (eventual consistency). У вас могут появиться новые идеи, как лучше обеспечить согласованность в распределённых системах, используя исследования и принципы из аппаратного обеспечения.

С другой стороны, неправильные представления о кэшах часто приводят к ложным утверждениям, особенно когда речь идёт о параллелизме и состоянии гонки. Например, часто говорят о трудности параллельного программирования, потому что «у разных ядер в кэшах могут быть разные/устаревшие значения». Или что квалификатор volatile в языках вроде Java нужен, чтобы «предотвратить локальное кэширование общих данных» и принудительно «читать/записывать только в основную память».
Читать дальше →

Краткая история ИБ в Китае: как возводили Великий китайский файрвол

Reading time7 min
Views45K
В этом году исполняется 20 лет с момента зарождения идеи фильтрации контента в интернете Китая. Сейчас эта технология известна всему миру под названием «Великий китайский файрвол».

В прошлой статье мы уже затронули регулирование сферы ИБ Китая. Теперь разберемся с историей «Великого брандмауэра», который воплощает собой политику кибербезопасности страны.

Читать дальше →

Особенности использования вещественных регистров x86 архитектуры

Reading time8 min
Views11K
В этой статье рассмотрим опыт автора, столкнувшегося с особенностями реализации работы с вещественными числами на аппаратном уровне. Многие современные специалисты в области информационных технологий работают с высокими уровнями абстракции данных. Думается, что статья откроет им глаза на некоторые интересные вещи.
Читать дальше →

Information

Rating
374-th
Location
Пермь, Пермский край, Россия
Date of birth
Registered
Activity