Рубрика «Программирование» - 433

Современные методы биоинформатики позволяют довольно точно восстанавливать эволюционные истории на основании последовательностей генов или белков ныне живущих организмов. А благодаря технологиям секвенирования нового поколения последовательности производятся быстрее, чем их успевают анализировать. Вот только эволюционная реконструкция – дело вычислительно дорогое и неплохо бы уметь получать репрезентативные выборки пригодного для анализа размера. Как это сделать и что вообще такое в данном случае “репрезентативная” – под катом.
Древо жизни по Hug et al. 2016
Читать полностью »

12 марта 2018 г., спустя 4 месяца после прошлой версии, вышел Apache Ignite 2.4. Этот релиз примечателен целым рядом нововведений: поддержка Java 9, множественные оптимизации и улучшения SQL, поддержка платформой нейронных сетей, новый подход к построению топологии при работе с диском и многое другое.

Apache Ignite Database and Caching Platform — это платформа для распределенного хранения данных (оптимизированная под активное использование RAM), а также для распределенных вычислений в близком к реальному времени.

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

Примеры использования: быстрый распределенный кеш; слой, агрегирующий данные из разрозненных сервисов (например, для Customer 360 View); основное горизонтально масштабируемое хранилище (NoSQL или SQL) оперативных данных; платформа для вычислений и т.д.

Далее рассмотрим основные новшества Ignite 2.4.
Читать полностью »

Бесконечность проблемы обратной совместимости - 1
(с)

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

Обратную совместимость легче выполнять, если предыдущие версии системы были разработаны с поддержкой встроенных функций, таких как хуки, плагины или API, которые позволяют добавлять новые возможности вашему софту, однако все из области backward compatibility (c упором на back) может стать головной болью для разработчиков.

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

Разработчик каждый раз принимает трудное решение: должен ли продукт быть обратно совместимым. «Объективно правильного» решения здесь просто нет — в мире достаточно примеров успешной обратной совместимости и отказов от нее. Возможно, чей-то опыт поможет сделать вам правильный выбор прямо сейчас.

Читать полностью »

Краеугольный камень псевдослучайности: с чего начинается поиск чисел - 1
(с)

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

Когда речь заходит о генераторах случайных (или псевдослучайных) чисел, рассказ всегда строится вокруг поиска истинной случайности. Пока серьезные математики десятилетиями ведут дискуссии о том, что считать случайностью, в практическом отношении мы давно научились использовать «правильную» энтропию. Впрочем, «шум» — это лишь вершина айсберга.

С чего начать, если мы хотим распутать клубок самых сильных алгоритмов PRNG и TRNG? На самом деле, с какими бы алгоритмами вы не имели дело, все сводится к трем китам: seed, таблица предопределенных констант и математические формулы.

Каким бы ни был seed, еще есть алгоритмы, участвующие в генераторах истинных случайных чисел, и такие алгоритмы никогда не бывают случайными.

Читать полностью »

Ищем спикеров на Front-End MeetUp 28 марта - 1

Наше внутреннее Front-end сообщество в Райффайзенбанке активно развивается, коллеги регулярно встречаются для обмена опытом и полезными полезными знаниями. Мы знаем, как важно общаться с людьми из других команд и проектов, иметь возможность спросить совета, обсуждать только что появившиеся технологии и поделиться опытом. Поэтому 28 марта мы организуем Front-End MeetUp. Приглашаем спикеров! Подробности под катом.
Читать полностью »

precut

WebRTC — не самая простая штука. Только недавно API стали поддерживать все основные браузеры, но с оговорками и «нюансами». Добавим к этому темное наследие VoIP телефонии в виде торчащего наружу SIP, борьбу между Ёжиком и SIP с применением oRTC, падающие при неудачном сочетании звезд браузеры — и получаем штуку, которую не в любом коворкинге за вечер запилишь. Цахи, бессменный автор bloggeek.me и старый телеком-разработчик, продолжает писать как все это правильно готовить. А мы в Voximplant адаптируем перевод для Хабра, основываясь на собственном многолетнем опыте голосовых и видеозвонков с участием браузеров.
Читать полностью »

image

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

Мем об аналитике: - Их аналитика этого не умеет; - Сделай свою; - Долго, да и данных много; - А облако?; - Ты что белены объелся? Дорого!; - $300 за 1kk DAU

На рынке много продуктов, подходящих для игровой аналитики: Mixpanel, Localytics, Flurry, devtodev, deltaDNA, GameAnalytics. Но все же многие игровые студии строят свое решение.

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

Ответы на вопросы "Почему?", "Как это сделать?" и "Сколько это стоит?" вы найдете под катом.

Читать полностью »

image
Привет, обитатели ХабраХабр!

Возможно, по сути статьи я ошибся ресурсом, за мое 9 летнее отсутствие появился некий geektimes, возможно, я должен написать это там, но напишу сюда — на хабрахабр. Если не прав — не бейте ногами.

Я люблю делать простые как топор вещи, но одновременно жутко полезные, например, как прошлая статья 9 летней давности — Установка Ubuntu Linux с винчестера. Скрипт, вот и сейчас настал час для такой деятельности.
Под катом вы найдете подробнейшую инструкцию как на основе Arduino и дешевых и доступных средств автоматизировать подачу чистой свежей воды в кофемашину, а также организовать отвод жидкости из поддона кофемашины, на которой не предусмотрено подключение к внешним коммуникациям.
Читать полностью »

image

Знание правил шахматной игры еще не делает человека гроссмейстером, знание языка программирования еще не делает человека программистом. А чего в обоих случаях недостает? Ищем ответы на оба вопроса у признанных мастеров и пытаемся иллюстрировать собственными примерами.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js