Pull to refresh

Для пилотов ВВС США разработали умную систему оптимизации расписаний экипажей

Reading time3 min
Views1.3K

Министерство ВВС США совместно с Массачусетским технологическим институтом разработало для своих пилотов инструмент оптимизации AI Accelerator, который помогает составлять расписание для экипажей грузовых рейсов C-17.

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

Разработчик выпустил Wren — минималистичный CLI-трекер задач с поддержкой Telegram-бота

Reading time1 min
Views4.7K

Разработчик Йоав Моше (Yo'av Moshe) представил простой CLI-трекер задач Wren с поддержкой Telegram-бота. Списком задач можно управлять с помощью терминала на компьютере или бота на смартфоне.

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

Стартапы-планировщики объединяются, чтобы держаться на плаву и конкурировать с Google и Microsoft

Reading time1 min
Views2.1K

Облачный планировщик встреч и переговоров Calendly, который в прошлом году ворвался в лигу «единорогов», приобретает платформу для рекрутинга Prelude. Расширяя таким образом свой бизнес, Calendly может преследовать дерзкую цель выйти из огромной тени, которую отбрасывают Google и Microsoft, претендующие на статус глобальной платформы для планирования.

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

Работа с шедулером в Java (Spring)

Reading time4 min
Views50K
Недавно, в процессе работы, я столкнулся с задачей управления шедулерами в работающем приложении. У нас серверное приложение, и в конфигурационных файлах Spring мы указывали, какие задачи запускать по таймеру. Однако, далее появилась следующая задача: убирать из списка выполнения эти задачи или же менять cron-таймер, при этом не тормозя приложение.
В процессе гугления и чтения, я нашел, как это сделать. Всё оказалось гораздо проще, чем я думал. Но для того, чтобы это понять пришлось немного почитать.
Вероятно, эта статья будет полезна новичкам, но, возможно, и мастодонты почерпнут для себя что-то новое.
Читать дальше →
Total votes 13: ↑9 and ↓4+5
Comments10

Scheduling: мифы и реальность. Опыт Яндекса

Reading time10 min
Views46K
В последние пару лет я занимаюсь построением различных планировщиков, и мне пришло в голову поделиться своим нелёгким опытом с коллегами. Речь идёт о двух категориях коллег. Первые — это желающие узнать, как разработать свой scheduler за 21 день. Вторые — те, кому нужен новый scheduler совсем без смс и регистрации, просто чтобы работал. Особенно хотелось бы помочь второй категории людей.

Сундуков А.А. Очередь. 1986. Холст, масло

Сначала, как водится, стоит сказать несколько общих слов. Что такое scheduler (планировщик, или, для простоты, «шедулер»)? Это такая компонента системы, которая занимается распределением ресурса или ресурсов системы по потребителям. Разделение ресурса может происходить в двух измерениях: в пространстве и времени. Планировщики чаще всего фокусируются на втором измерении. Обычно под ресурсом подразумевают процессор, диск, память и сеть. Но, что греха таить, шедулить можно и любую виртуальную ерунду. Конец общих слов.
Читать дальше →
Total votes 86: ↑82 and ↓4+78
Comments8

Круглендарь 2015

Reading time1 min
Views16K
Круглендарь 2015

Друзья, круглендарь 2015 готов!

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

Проект живёт третий год, предыдущие версии публиковались в 2013 и 2014 годах, продолжаю традицию.
Как и прежде, круглендарь на 99% генерируется программно.
Дизайн доработан: улучшена типографика, убраны лишние линии, остались только две: числа (синусоида) и месяцы (гипоциклоида).
Стало ярче и просторнее.

Скачивается с сайта kruglendar.ru, распечатывается на формате А1, серые поля обрезаются.
Сообщество в контакте: vk.com/kruglendar

Буду рад отзывам, мыслям, пожеланиям, предложениям и фотографиям круглендаря в вашем интерьере.
С Новым годом!
Картинки и процесс под катом
Total votes 28: ↑28 and ↓0+28
Comments45

Разработка многозадачной микроядерной ОС — Планировщик

Reading time6 min
Views16K
После того, как вы прочитали базовые шаги по написанию Hello World ядра из цикла имеющихся на Хабре статей, самое время приступить к серьезной разработке самых базовых инструментов: аллокатора кучи и планировщика.

Важно:
1. Эта серия уроков для новичков. Цель — сформировать целостную картину мира. Очень долго у меня в голове была теория Таненбаума и я не мог ее связать с практикой. Тем у кого то же самое — посвящаю эту статью.
2. Код самый простой и тупой, но максимально понятный. Моя цель дать вам понимание чтобы вы смогли написать свое ядро, гораздо более крутое чем это.
3. Репо опубликую как только посчитаю его готовым для широкого круга. Я пишу небольшую часть, отлаживаю, и снимаю видеоурок. У меня нет готового продукта.

Честно говоря я долго думал стоит ли начинать писать статьи и делать видеоуроки на столь изьезженную тему. Но страсть к системному программированию и отсутствие структурированной информации на русском языке все же подтолкнули меня на этот эксперимент. Посему, если труд мой окажется востребованным, статьи планирую выпускать не реже чем раз в месяц и не чаще чем раз в неделю.
Total votes 51: ↑48 and ↓3+45
Comments40

Apache Spark на Kubernetes: чем полезен Apache YuniKorn

Reading time9 min
Views1.8K

Apache Spark на Kubernetes: чем полезен Apache YuniKorn 

Хотя Apache Spark предоставляет множество возможностей для разнообразных сценариев применения, его использование сопряжено с дополнительной сложностью и высокими затратами на обслуживание и администрирование кластера. В планировщике Kubernetes по умолчанию есть пробелы с точки зрения эффективного развертывания пакетных рабочих нагрузок на том же кластере, где также планируется длительная работа других сервисов. Для пакетных рабочих нагрузок из-за требуемого параллелизма вычислений в основном должно планироваться совместное и гораздо более частое выполнение. В этой статье мы подробно рассмотрим некоторые из этих пробелов и исследуем преимущества использования Apache YniKorn вместо стандартного планировщика.

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments5

Идеальная версия недельной сетки календаря для печати

Reading time1 min
Views4.9K
Очень многие люди до сих пор пользуются печатными версиями ежедневников, и дело тут не в том, что существует нехватка онлайн-планировщиков, а в том, что это, скорее, когнитивная потребность.

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

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

Как мы использовали расширенную статистику Postgres и ускорились в 2850 раз

Reading time9 min
Views13K

В этом переводе к старту курса по Fullstack-разработке на Python напоминаем о том, насколько важно знать технологии в деталях, грамотно применять их и планировать работу в целом. Цифра 2850 в заголовке — не преувеличение: ранее занимавший две минуты запрос в базе данных компании Affinity сегодня выполняется за 42 миллисекунды. Подробности, как всегда, под катом. А если вам нужен план развития навыков с большим количеством практики, вы можете обратить внимание на наши курсы.

Читать далее
Total votes 25: ↑22 and ↓3+19
Comments5

Как я проходила очередное собеседование и не прошла

Reading time4 min
Views51K

Привет! Меня зовут Саша, и я хочу стать хорошим системным аналитиком.

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

Читать далее
Total votes 59: ↑42 and ↓17+25
Comments40

Принцип работы планировщика задач в Linux

Reading time5 min
Views26K

Планирование – это процесс распределения ресурсов системы для выполнения задач. В статье мы рассмотрим его вариант, в котором ресурсом является одно или несколько ядер процессора, а задачи представлены потоками или процессами, которые нужно выполнить.
Читать дальше →
Total votes 48: ↑45 and ↓3+42
Comments15

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Level of difficultyEasy
Reading time8 min
Views183K

Привет, Хабр!

Я решил посвятить свою первую статью SQL. Вопросы, рассмотренные ниже мне задавали на собеседованиях на позицию python-разработчика. Естественно отвечать правильно получалось не всегда, а если точнее то чаще не правильно, однако проведя N часов в рефлексии я составил перечень ответов, которыми пользуюсь до сих пор.

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

Читать далее
Total votes 191: ↑184 and ↓7+177
Comments177

Транзакции и механизмы их контроля

Reading time8 min
Views50K

Транзакции


Транзакцией называется последовательность операций над данными имеющая начало и конец


Транзакция это последовательное выполнение операций чтения и записи. Окончанием транзакции может быть либо сохранение изменений (фиксация, commit) либо отмена изменений (откат, rollback). Применительно к БД транзакция это нескольких запросов, которые трактуются как единый запрос.

Транзакции должны удовлетворять свойствам ACID


Атомарность. Транзакция либо выполняется полностью либо не выполняется вовсе.

Согласованность. При завершении транзакции не должны быть нарушены ограничения накладываемые на данные (например constraints в БД). Согласованность подразумевает, что система будет переведена из одного корректного состояния в другое корректное.

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

Устойчивость. После фиксации изменения не должны быть утеряны.
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments10

Почему появились асинхронные веб-сервера?

Reading time5 min
Views9K
Всем привет. На связи Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах, посвященных архитектуре ПО.

Помимо преподавания, как вы могли заметить, я занимаюсь написанием авторского материала для блога OTUS на хабре и сегодняшнюю статью хочу приурочить к запуску курса «Администратор Linux», на который прямо сейчас открыт набор.





Введение


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

К сожалению, мне не удалось найти ни одного материала, позволяющего восстановить разом все причинно-следственные связи в эволюции веб-серверов. Так возникла идея написания этой статьи, которая, как я надеюсь, станет таким материалом.
Читать дальше →
Total votes 13: ↑10 and ↓3+7
Comments6

Бот «Умный планировщик»: понимает с полуслова

Reading time5 min
Views28K
Если вы когда-нибудь желали иметь личного слугу, который бы напоминал вам обо всем, о чем вы ему скажете, но не имели возможности нанять такого, то разработанный мною бот станет ему достойной заменой.



Хотите проверить функционал? Напишите в лс боту по этой ссылке и он ответит вам.

А тем, кому интересно как он работает и как 16-летний школьник смог написать его, я с удовольствием расскажу всё в подробностях в этой статье.
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments41

Алгоритм планирования задач на TypeScript. Теория графов наконец-то пригодилась

Reading time8 min
Views5.5K

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


Когда проект будет закончен?

Более формально проблема звучит так: "Проект состоит из задач, которые могут зависеть друг друга, а также могут иметь один и тех же исполнителей. Когда проект может быть закончен?"


КДПВ Еженедельное планирование

Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments24

Как мы с друзьями собрали сервис для построения маршрутов для походов и велопутешествий ActiveTrip.me

Reading time7 min
Views22K

Всем привет! Меня зовут Александр, я разработчик ActiveTrip.me — cервиса для построения маршрутов для пеших, велосипедных, водных походов и путешествий, а также для хранения и группировки интересных мест в виде меток.

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

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