Pull to refresh
62
0
Закревский Александр @multik

Разработчик

Send message

SQL: пара приемов в SELECT-запросах

Reading time3 min
Views24K

Автор: Юрий Цыганенко, Senior QA

Тестирование новых функций часто проводят на данных, взятых с уже функционирующей системы. В этом случае тестировщикам порою приходится строить запросы для хитрых случаев. Например, нужно протестировать новую функциональность интернет-магазина, причём играют роль интервалы между покупками. Нам доступны данные с работающей версии — можно загрузить их на тестовый стенд и проверить работу новой версии продукта. (NB!: конечно, имея дело с «живыми» данными, нужно исключить из них приватную информацию и обеспечить возможность логина интересующим нас пользователям).

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

От тестировщика требуется построить SQL-запрос, выдающий N пользователей, у которых интервалы между датами заказов будут наибольшими.

Аналогичные задачи и их разбор — под катом.
Читать дальше →
Total votes 16: ↑11 and ↓5+6
Comments7

НАСА опубликовало официальную финальную версию своего доклада об испытаниях «невозможного» двигателя EmDrive

Reading time4 min
Views81K

EmDrive будоражит умы ученых и энтузиастов космических путешествий вот уже 15 лет

НАСА уже довольно долгое время изучает так называемый «невозможный» двигатель. Споры ученых и энтузиастов космического дела не прекращаются вот уже 15 лет, с момента предоставления двигателя его создателем. И спорить действительно есть о чем — ведь EmDrive создает тягу в замкнутом контуре без всякого выхлопа. На первый взгляд, двигатель нарушает закон сохранения импульса. На второй — тоже нарушает. Но вот результаты десятков (а возможно, уже и сотен) испытаний однозначно говорят о том, что двигатель таки работает.

Агентство НАСА решило взять изучение EmDrive в свои руки. После ряда испытаний, включая вакуум, оказалось, что двигатель действительно работает, и о тепловой конвекции здесь и речи быть не может. Не так давно отчет НАСА попал в открытый доступ, но это все же была не официальная публикация, а нечто вроде утечки. Сейчас заключение специалистов агентства опубликовано по всем правилам на сайте издания Journal of Propulsion and Power.
Total votes 83: ↑75 and ↓8+67
Comments312

5 книг, которые помогут мыслить нестандартно и почему это важно именно сейчас

Reading time3 min
Views155K


Потребляя гигабайты информации, мы начинаем мыслить шаблонно. Роботы автоматизируют все больше специальностей, и незаменимыми становятся лишь те работники, кто мыслит нестандартно. Многие считают, что креативность — это врожденный навык. Я тоже так думал, пока не прочел эти книги. Они доказали, что мыслить нестандартно может научиться каждый.
Читать дальше →
Total votes 49: ↑35 and ↓14+21
Comments35

Как я добавил 30000 человек в первый круг контактов, а эту соцсеть заблокируют в РФ

Reading time6 min
Views29K
Вспоминая собеседования из своего прошлого решил «не идти в гору», а чтобы гора сама пришла ко мне, точнее кадровые сотрудники с вакансиями. Опять поиск работы и теперь на рынке где реальные доходы стали меньше, а соискателей больше…

Но тратить время на рутинные операции по поиску и добавлению профессионалов в социальной сети не хотелось. После 2000 кликов вручную критерии поиска у меня оказались формализуемые. Поэтому написал скрипт который экономит мое время и зрение. К общению с людьми я не пускаю бездушного «робота». Сам пишу и сам отвечаю.



Мне посчастливилось познакомиться и пообщался с интересными людьми из индустрии, получить сотни сообщений со спамом и ссылки на сотни вакансий. Готового скрипта здесь не будет, но в публикации есть пара фрагментов кода для магии webdriver и ссылки. Также вы узнаете последние новости про поиск работы в России и описание моего опыта по продвижению в соцсети…
Читать дальше →
Total votes 64: ↑37 and ↓27+10
Comments64

Знакомство с хранилищем Ceph в картинках

Reading time11 min
Views283K
Облачные файловые хранилища продолжают набирать популярность, и требования к ним продолжают расти. Современные системы уже не в состоянии полностью удовлетворить все эти требования без значительных затрат ресурсов на поддержку и масштабирование этих систем. Под системой я подразумеваю кластер с тем или иным уровнем доступа к данным. Для пользователя важна надежность хранения и высокая доступность, чтобы файлы можно было всегда легко и быстро получить, а риск потери данных стремился к нулю. В свою очередь для поставщиков и администраторов таких хранилищ важна простота поддержки, масштабируемость и низкая стоимость аппаратных и программных компонентов.

Знакомьтесь: Ceph


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



При выходе любого диска, узла или группы узлов из строя Ceph не только обеспечит сохранность данных, но и сам восстановит утраченные копии на других узлах до тех пор, пока вышедшие из строя узлы или диски не заменят на рабочие. При этом ребилд происходит без секунды простоя и прозрачно для клиентов.
Читать дальше →
Total votes 44: ↑42 and ↓2+40
Comments67

Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели

Reading time14 min
Views1.3M
Всем привет. На днях возникла идея написать статьи про основы компьютерных сетей, разобрать работу самых важных протоколов и как строятся сети простым языком. Заинтересовавшихся приглашаю под кат.


Читать дальше →
Total votes 35: ↑30 and ↓5+25
Comments61

Голуби брутфорсят парадокс Монти Холла лучше людей

Reading time6 min
Views56K

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



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


Когнитивный психолог Massimo Piattelli-Palmarini заметил по этому поводу: Ни одна статистическая задача даже рядом не стоит по способности дурачить всех людей и во все времена.


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

оставить или поменять
Total votes 99: ↑99 and ↓0+99
Comments311

Масштабируемая конфигурация nginx

Reading time12 min
Views35K
Игорь Сысоев

Игорь Сысоев ( isysoev )


Меня зовут Игорь Сысоев, я автор nginx и сооснователь одноименной компании.

Мы продолжаем разработку open source. С момента основания компании темпы разработки существенно увеличились, поскольку над продуктом работает множество людей. В рамках open source мы оказываем платную поддержку.

Я буду говорить о масштабируемой конфигурации nginx, но это не о том, как обслужить с помощью nginx сотни тысяч одновременных соединений, потому что nginx для этого настраивать не надо. Нужно выставить адекватное число рабочих процессов или поставить его в режим «авто», поставить worker_connections в 100 000 соединений, после этого заниматься настройкой ядра — это гораздо более глобальная задача, чем просто настройка nginx. Поэтому я буду рассказывать о другой масштабируемости — о масштабируемости конфигурации nginx, т.е. о том, как обеспечить рост конфигурации от сотни строчек до нескольких тысяч и при этом тратить минимальное (желательно константное) время на сопровождение этой конфигурации.
Total votes 59: ↑57 and ↓2+55
Comments31

Заблуждения большинства программистов относительно «времени»

Reading time6 min
Views59K
Много дней назад я решил записать некоторые наблюдения, сформировавшиеся пока в последние годы я занимался тестированием. Рассматривая области, которые получают наибольшую отдачу от тестирования, я понял, что у меня накопилось много конкретных мыслей о том, как мы — программисты — склонны небрежно обращаться с понятием «время» в программировании.

Тогда я написал пост «Заблуждения программистов относительно „времени“», в котором указал 34 ошибочных представления и заблуждения, относящихся как к календарному, так и к системному времени. С большинством из них я столкнулся сам, занимаясь дебаггингом программ (как рабочих, так и тестовых).

Читать дальше →
Total votes 62: ↑55 and ↓7+48
Comments100

Асинхронная репликация без цензуры

Reading time12 min
Views23K


Олег Царёв ( zabivator )


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

Иногда бывает необходимо, чтобы приложение могло получать все обновления из базы и желательно в режиме реального времени. Этим занимается оpen source библиотека, которая называется libslave.
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments6

Памяти Чурюмова Клима Ивановича посвящается: «Свой среди звёзд и комет»

Reading time13 min
Views10K


Перевод статьи «Свой среди звёзд и комет» посвящаю памяти Чурюмова Клима Ивановича, известного читателям Geektimes, как первооткрыватель кометы Чурюмова — Герасименко. Украинский ученый ушёл из жизни 15 октября 2016 года, на 79 году жизни.
Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments3

Алгоритмы поиска в строке

Reading time4 min
Views187K

Постановка задачи поиска в строке


Часто приходится сталкиваться со специфическим поиском, так называемым поиском строки (поиском в строке). Пусть есть некоторый текст Т и слово (или образ) W. Необходимо найти первое вхождение этого слова в указанном тексте. Это действие типично для любых систем обработки текстов. (Элементы массивов Т и W – символы некоторого конечного алфавита – например, {0, 1}, или {a, …, z}, или {а, …, я}.)

Наиболее типичным приложением такой задачи является документальный поиск: задан фонд документов, состоящих из последовательности библиографических ссылок, каждая ссылка сопровождается «дескриптором», указывающим тему соответствующей ссылки. Надо найти некоторые ключевые слова, встречающиеся среди дескрипторов. Мог бы иметь место, например, запрос «Программирование» и «Java». Такой запрос можно трактовать следующим образом: существуют ли статьи, обладающие дескрипторами «Программирование» и «Java».

Поиск строки формально определяется следующим образом. Пусть задан массив Т из N элементов и массив W из M элементов, причем 0<M≤N. Поиск строки обнаруживает первое вхождение W в Т, результатом будем считать индекс i, указывающий на первое с начала строки (с начала массива Т) совпадение с образом (словом).
Пример. Требуется найти все вхождения образца W = abaa в текст T=abcabaabcabca.

Образец входит в текст только один раз, со сдвигом S=3, индекс i=4.
Читать дальше →
Total votes 86: ↑66 and ↓20+46
Comments38

Эволюционный дизайн баз данных

Reading time32 min
Views21K


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


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


В последнее десятилетие мы наблюдаем рост гибких методологий. По сравнению со своими предшественниками, они изменяют требования к дизайну баз данных. Одно из важнейших среди требований – идея эволюционной архитектуры. В гибком проекте вы предполагаете, что не можете заранее поправить требования системы. В результате, иметь детализированную, четкую стадию дизайна в начале проекта становится непрактично. Архитектура системы должна эволюционировать одновременно с итерациями софта. Гибкие методы, в частности, экстремальное программирование (XP), имеют набор методик, которые делают эту эволюционную архитектуру практичной.

Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments0

Маленькая архитектура

Reading time6 min
Views23K


Я хочу стать архитектором ПО:


Это хорошая цель для разработчика


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


Хм. Ну, тогда ты вовсе не хочешь стать архитектором ПО.


Конечно хочу! Я хочу быть тем человеком, который принимает все важные решения.


Это хорошо, но ты не перечислил важных решений. Ты перечислил решения, не играющие особой роли.


В смысле? База данных – это не важное решение? Знаешь, сколько мы денег тратим на них?


Скорее всего слишком много. И нет, база данных – это не одно из самых важных решений.


Как можно такое говорить? База данных находится в самом центре системы! Там собраны все данные, они сортируются, индексируются и к ним осуществляется доступ. Без нее не будет системы!


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

Читать дальше →
Total votes 73: ↑64 and ↓9+55
Comments45

Любой сайт может получить информацию о том, в каких популярных сервисах вы авторизированы

Reading time3 min
Views68K
Разработчик Робин Линус на своей странице на GitHub Pages (визит по следующей ссылке небезопасен и его не рекомендуется выполнять с рабочего места, так как кроме видимой части сервисов страница проверяет, залогинены ли вы на сайтах для взрослых, а это останется в логах файрволла как попытка перехода прим.) продемонстрировал, как сайты могут снимать с вас «медийный отпечаток», то есть вести учет того, в каких популярных сервисах залогинены посетители даже без какой-либо авторизации на посещаемой странице.

Для автора публикации «медийный отпечаток» выглядит следующим образом и является абсолютно верным:



И это весьма неприятно.
Как это работает
Total votes 119: ↑112 and ↓7+105
Comments96

MapReduce из подручных материалов. Часть III – собираем все вместе

Reading time11 min
Views4.7K
Mosaic by Joan PollakВ первой (достаточно капитанской) части этой серии мы рассказали про базовые концепции MapReduce почему это плохо, почему это неизбежно, и как с этим жить в других средах разработки (если вы не про Си++ или Java). Во второй части мы-таки начали рассказывать про базовые классы реализации MapReduce на Caché ObjectScript, введя абстрактные интерфейсы и их первичные реализации.
Сегодня пришел наш день! – мы покажем первый пример собранный в парадигме MapReduce, да, он будет странный и не самый эффективный, и совсем не распределенный, но вполне MapReduce.

Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments0

Книга «Spark для профессионалов: современные паттерны обработки больших данных»

Reading time4 min
Views13K
image Привет, Хаброжители! Ранее мы переводили статью «Знакомство с Apache Spark». Сейчас вы знакомим Вас с одноименной книгой, написанной Сэнди Ризай, Ури Лезерсоном, Шоном Оуэн, Джошем Уиллсом.

В этой практичной книге четверо специалистов Cloudera по анализу данных описывают самодостаточные паттерны для выполнения крупномасштабного анализа данных при помощи Spark. Авторы комплексно рассматривают Spark, статистические методы и множества данных, собранные в реальных условиях, и на этих примерах демонстрируют решения распространенных аналитических проблем.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments1

Несколько заметок о MySQL

Reading time4 min
Views25K
За время работы с MySQL набралось некоторое количество нюансов и приемов, из которых я составил эту статью в виде набора заметок. Все это не секрет и, разумеется, можно найти в документации.

Буду использовать дефолтные настройки MySQL. Некоторые заметки связаны с PHP, поэтому для примеров буду использовать расширение mysqli.

Для запуска sql-запросов из статьи можно инициализировать таблицы так:

CREATE TABLE IF NOT EXISTS `user_myisam` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `login` varchar(8) NOT NULL,
  `money` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `login` (`login`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

INSERT INTO `user_myisam` (`id`, `login`, `money`) VALUES
(1, 'ivanov', 100),
(2, 'petrov', 200),
(3, 'sidorov', 300);

CREATE TABLE IF NOT EXISTS `user_innodb` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `login` varchar(8) NOT NULL,
  `money` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `login` (`login`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

INSERT INTO `user_innodb` (`id`, `login`, `money`) VALUES
(1, 'ivanov', 100),
(2, 'petrov', 200),
(3, 'sidorov', 300);

Проверить текущие автоинкременты можно так:

SHOW TABLE STATUS;

У обоих таблиц они равны 4. При этом имеется такое подключение к БД:

$mysqli = new mysqli($host, $user, $password, $database);
Читать дальше →
Total votes 44: ↑37 and ↓7+30
Comments0

Математик оптимизировал решето Эратосфена, чтобы искать простые числа с меньшим расходом памяти

Reading time4 min
Views31K

38-летний перуанский математик Харальд Хельфготт три года назад доказал тернарную гипотезу Гольдбаха, а сейчас сумел оптимизировать компьютерный алгоритм для расчёта решета Эратосфена. Фото: Matías Loewy

В III в. до нашей эры древнегреческий математик, астроном, географ, филолог и поэт Эратосфен Киренский придумал гениальный способ поиска простых чисел. Очень эффективный и быстрый метод, который используется до сих пор, получил название решето Эратосфена.

Суть понятна из названия. Решето Эратосфена означает поиск простых чисел методом исключения. Берём список чисел, исключаем из него все составные числа — и получаем список простых чисел, словно просеяв список через решето.
Читать дальше →
Total votes 57: ↑46 and ↓11+35
Comments50

Лекарства от радиации в чрезвычайных ситуациях

Reading time13 min
Views387K
image
Американские учения «Desert Rock» с применением ядерного оружия. 1951 год.

Несмотря на то что человек всегда жил в условиях естественной радиации, с середины прошлого века у него возникла новая радиационная угроза техногенного облучения в чрезвычайных ситуациях. Это может быть ситуация применения атомного оружия, авария на ядерном объекте или террористический акт с применением “грязной” бомбы.

Население в случае подобной серьезной угрозы эффективнее всего спасать путем эвакуации, хотя ряд медикаментов можно применять и им. А вот спасателей и военных, которым придется работать в опасных условиях, обязательно нужно снабжать средствами индивидуальной защиты, в том числе и разными медицинскими препаратами от действия ионизирующих излучений. Ряд таких препаратов, называемых радиопротекторами, и сценарии для их применения я и попытаюсь описать в этой статье.
Total votes 102: ↑102 and ↓0+102
Comments108

Information

Rating
Does not participate
Location
Днепр, Днепропетровская обл., Украина
Registered
Activity