У всех людей свой опыт использования Linux десктопа, но лично для меня очень важным является тандем linux desktop + rdesktop в виртуальные машины. Причины тому — определенный софт, который зачастую работает только под Windows, или работает под Windows лучше, а также необходимость тестировать всякие виндовые штуки.

Такая конфигурация рабочего стола ставит назойливую проблему — в Windows свои языки и их переключение, в Linux — свои, соответственно постоянно попадаешь в необходимость 3-4 раза переключиться, пока не получится. Тем более, если в Xorg язык выбирается не пооконно, а глобально.
Читать дальше →

Велопредупреждение

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


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


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


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


select gs::date
from generate_series('2018-01-31', '2018-05-31', interval '1 month') as gs;

gs
31.01.2018
28.02.2018
28.03.2018
28.04.2018
28.05.2018
Читать дальше →

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

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



Некоторое время назад мы представили свое видение умного города — концепцию Smart/Safe City. Под катом — детальный взгляд на нее с позиции бизнеса и технических специалистов.
Читать дальше →



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

Хотел сделать демку с тех самых пор, как познакомился с этим явлением компьютерной субкультуры на классическом примере польской Lyra II. Также регулярно хотел выставить что-нибудь на крупнейшем российском демопати, Chaos Constructions, но каждый раз не доходили руки. Наконец-то удалось удовлетворить обе потребности сразу, в стиле Ван Дамма (двойной удар, с вертушки) — сделать и выставить AONDEMO. В конкурсе ZX Spectrum 640K Demo.


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

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



В 2015 исследователи из Массачусетского Технологического Института (MIT) представили проект по «кооперации нескольких роботов в неопределенных условиях». Они разработали систему, по которой роботы, не имея постоянной связи друг с другом, могут вместе решать задачи, условия которых довольно изменчивы. Например, складские работы, доставка медикаментов и тд.
Читать дальше →

Автор материала провел серию бесед с экспертами в области анализа и обработки данных и сделал выводы о перспективах и направлениях развития дата-сайентистов.


Теория и методы обработки данных упростили решение самых разных задач в сфере технологий. Сюда относится оптимизация поисковой выдачи Google, рекомендации в LinkedIn, формирование заголовков материалов на Buzzfeed. Однако работа с данными может ощутимо повлиять и на многие сектора экономики: от розничной торговли, телекоммуникаций, сельского хозяйства до здравоохранения, грузовых перевозок и пенитенциарных систем.
 
И все же термины «наука о данных», «теория и методы анализа данных» и «специалист по анализу данных» (data scientist) остаются понятны не до конца. На практике они употребляются для описания широкого спектра методов работы с информацией.
 
Что на самом деле делают специалисты по data science? Как ведущий подкаста DataFramed я получил замечательную возможность провести интервью более чем с 30 специалистами в области анализа данных из разнообразных отраслей и академических дисциплин. В числе прочего я всякий раз спрашивал, в чем именно состоит их работа.
 
Наука о данных — это действительно обширная область. Мои гости подходили к нашим беседам со всевозможных позиций и точек зрения. Они описывали самую разную деятельность, в том числе масштабные онлайн-фреймворки для разработки продуктов на booking.com и Etsy, используемые Buzzfeed методы решения задачи многорукого бандита в ходе оптимизации заголовков материалов и влияние, которое машинное обучение оказывает на принятие бизнес-решений в Airbnb. Читать дальше →

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


Одна из основных концепций ActiveRecord состоит в том, что база данных достаточно утилитарна и может быть изменена. Ну, вы такие сидите, пишете свои модельки с использованием MySQL и вдруг где-то прочитали, что можно вот так вот взять и заменить MySQL на MongoDB. Хорошо, не так радикально, но, скажем, на PostgreSQL у вас могут быть причины заменить MySQL. Или наоборот, ничего не имею против MySQL. Тут ActiveRecord утверждает, что сделать вам это проще простого, мол скоупы, before/after фильтры и ассоциации достаточно абстрактны, чтобы не переживать за формирование запросов к базе данных и заботится о логике приложения. Что вместо WHERE is_archived = TRUE вы с радостью напишете where(is_archived: true) и ActiveRecord сделает все за вас. Все примеры будут преведены для PostgreSQL, а не для MySQL, так что пользователи MySQL вынуждены будут изобретать свой собственный велосипед.



Но как бы не так! На практике оказывается, что этот слой абстракции вся напрочь дырявая, как корыто из сказки о Золотой Рыбке. И что многие базовые возможности использовать нельзя, вроде сравнения дат или работы с массивами. И получаются скоупы с вынужденными where("#{quoted_table_name}.finished_at >= ?", Date.current) или where("#{quoted_table_name}.other_ids <@ ARRAY[?]", ids). На что ActiveRecord дает вполне осознанный и логичный ответ: не используйте это. Вместо массивов используйте habtm-связь, а если надо сравнивать даты, живите с этим. Да, и не дай бог вам пропустить quoted_table_name в таком скоупе — первый же includes или joins расставит все на свои места. Проще везде и всегда писать, чтобы руку не сбивать.

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

Как известно, основное визуальное изменение в релизе 18 — это отказ от Unity и переход на Gnome 3. Здесь хочу поделиться своими впечатлениями от перехода с 16 на 18
Читать дальше →



Данная статья посвящена изучению файловой структуры жёсткого диска восьмиканального видеорегистратора с целью массового извлечения файлов с видеозаписями. В конце статьи приводится реализация соответствующей программы на языке С.
Читать дальше →