Проект Geant4 продолжает развиваться, поэтому интересно вновь проверить его с помощью статического анализатора кода PVS-Studio. На этот раз проверке будет подвергнута версия 10.2 (предыдущая проверка относилась к версии 10.0-beta).
Читать полностью »
Рубрика «Программирование» - 684
PVS-Studio спешит на помощь CERN: проверка проекта Geant4
2016-07-03 в 16:10, admin, рубрики: c++, CERN, coverity, Geant4, open source, pvs-studio, Блог компании PVS-Studio, открытый код, ошибки в коде, Программирование, статический анализ кодаРазрабатываем систему real-time fulltext-поиска по error-логам на основе ClickHouse от Яндекса
2016-07-02 в 17:03, admin, рубрики: clickhouse, docker, docker он везде, open source, sphinx, полнотекстовый поиск, Программирование, Разработка под Linux, метки: clickhouse, полнотекстовый поискВ этой статье я расскажу о том, как разработать систему для индексирования и полнотекстового поиска error-логов (или любых других логов) на основе СУБД от Яндекса под названием ClickHouse. Про саму базу Яндекс писал на Хабре сначала когда база была закрытой, а потом когда они её заопенсорсили. База данных в первую очередь предназначена для аналитики и для реализации сервиса Яндекс.Метрика, но может на самом использоваться для чего угодно, если вам подходит загружать данные пачками, удалять их тоже огромными пачками и никогда не обновлять отдельные строки.
Что мы будем делать
Мы будем реализовывать систему для индексирования и поиска по error-логам. При этом, считается, что сами логи вы уже сумели доставить на центральный сервер (или несколько серверов) и уже засунули сами тексты сообщений в базу, то есть у вас уже есть таблица в какой-нибудь базе данных примерно следующего вида:
CREATE TABLE Messages (
message_id BIGINT PRIMARY KEY AUTO_INCREMENT,
created_ts DATETIME,
message_text BLOB
)
Мы научимся быстро отдавать результаты поиска по такому логу (то есть, всегда отсортированные по времени) и индексировать его в режиме реального времени.
Фейковая Новелла: новый опыт и работа над ошибками
2016-07-02 в 7:40, admin, рубрики: Gamedev, unity3d, аниме, визуальная новелла, игры, кооперация разработки, локализация, мобильная разработка, перевод, Программирование, разработка, разработка игр, разработка мобильных приложений, Разработка под android, Тестирование игр, управление проектами
Привет! В этой статье я расскажу о результатах публикации одной визуальной новеллы и поведаю о второй, при разработке которой я попытался учесть полученный опыт…
Перед интенсивной разработкой небольшой игры (aka хакатоном) важно решить чего вы хотите: программировать, повеселиться или создать готовый продукт? У меня есть друг, который очень хочет сделать игру, но раз за разом он начинает с создания графического движка, на базе libgdx. Возможно, что такой путь приводит к шедеврам вроде {$TitleCoolIndieGame}. На мой же взгляд, ему просто хочется попрограммировать. Так, что Читатель, если же Вы действительно хотите сделать игру, лучше не начинать с абсолютного нуля или читать эту статью, а приступить к конкретной работе! Тем более, что под катом не success story, а согласование макетов полуголой девушки, вакуумные маффины в коне, безумная работа над переводом сомнительного юмора и ещё более сомнительных отсылок, описание ненормальной соло разработки, да немного программирования, чтобы соответствовать тематике.
Под катом десяток мегабайт графики и более десяти страниц текста.
Читать полностью »
Учите детей программировать — они изменят мир
2016-07-02 в 3:02, admin, рубрики: игры, Исследования и прогнозы в IT, исходный код, обучение детей, Программирование, Учебный процесс в IT
Автор: Джон Вестенберг
Если я умру, пусть мои твиты превратятся в книгу.

Я научился программировать ещё мальчишкой.
Я выучил C++, потому что на этом языке была написана игра Wolfenstein 3d.
Я был одержим той игрой со всей её красотой крупных пиксельных образований. Модификация игры была моим хобби и всё свободное время я занимался её новыми версиями под ником Raistlin.
В действительности, я учился программировать потому, что это было продолжением того, кем я был: мальчишка, который просто не мог оставить что-либо в покое, который должен был постоянно что-то переделывать, перестраивать, придумывать и мастерить всё новое и новое.
Читать полностью »
Root — робот который помогает детям учить программирование
2016-06-30 в 18:54, admin, рубрики: javascript, python, root, Блог компании ua-hosting.company, машинное обучение, обучение, Программирование, Разработка робототехники, робототехникаБыло бы очень хорошо, если бы дети смогли освоить навыки программирования еще до того, как они закончат младшую школу. Но как упростить процесс понимания программирования детьми, который требует немалых усилий?
Что такое AXON
2016-06-30 в 16:47, admin, рубрики: json, object notation, XML, yaml, ПрограммированиеAXON — это нотация для сериализованного представления объектов, документов и данных в текстовой форме. Она объединяет в себе простоту JSON, расширяемость XML и удобочитаемость YAML.
Есть проект pyaxon на python, с которым можно "поиграться". Впрочем, он создавался таким образом, чтобы не сильно уступать по скорости с модулем json. Поэтому он может сгодиться и для реальных дел.
Зачем AXON?
AXON появился как попытка справиться с недостатками или неудобствами JSON и XML, но сохранить при этом их достоинства и возможности, дополнительно добавив удобочитаемость, присущую YAML.
Математические обозначения: Прошлое и будущее
2016-06-30 в 15:05, admin, рубрики: tex, Wolfram Alpha, wolfram language, wolfram mathematica, аристотель, Блог компании Wolfram Research, бэбидж, вавилон, виет, Древняя Греция, евклид, Занимательные задачки, лейбниц, лингвистика, лопиталь, математика, математическая нотация, математические обозначения, Программирование, Профессиональная литература, римские цифры, системы счисления, Стивен Вольфрам, тьюринг, эйлер
Перевод поста Стивена Вольфрама (Stephen Wolfram) "Mathematical Notation: Past and Future (2000)".
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации
Содержание
Резюме
Введение
История
Компьютеры
Будущее
Примечания
— Эмпирические законы для математических обозначений
— Печатные обозначения против экранных
— Письменные обозначения
— Шрифты и символы
— Поиск математических формул
— Невизуальные обозначения
— Доказательства
— Отбор символов
— Частотное распределение символов
— Части речи в математической нотации
Стенограмма речи, представленной на секции «MathML и математика в сети» первой Международной Конференции MathML в 2000-м году.
Резюме
Большинство математических обозначений существуют уже более пятисот лет. Я рассмотрю, как они разрабатывались, что было в античные и средневековые времена, какие обозначения вводили Лейбниц, Эйлер, Пеано и другие, как они получили распространение в 19 и 20 веках. Будет рассмотрен вопрос о схожести математических обозначений с тем, что объединяет обычные человеческие языки. Я расскажу об основных принципах, которые были обнаружены для обычных человеческих языков, какие из них применяются в математических обозначениях и какие нет.
Согласно историческим тенденциям, математическая нотация, как и естественный язык, могла бы оказаться невероятно сложной для понимания компьютером. Но за последние пять лет мы внедрили в Mathematica возможности к пониманию чего-то очень близкого к стандартной математической нотации. Я расскажу о ключевых идеях, которые сделали это возможным, а также о тех особенностях в математических обозначениях, которые мы попутно обнаружили.
Большие математические выражения — в отличии от фрагментов обычного текста — часто представляют собой результаты вычислений и создаются автоматически. Я расскажу об обработке подобных выражений и о том, что мы предприняли для того, чтобы сделать их более понятными для людей.
Традиционная математическая нотация представляет математические объекты, а не математические процессы. Я расскажу о попытках разработать нотацию для алгоритмов, об опыте реализации этого в APL, Mathematica, в программах для автоматических доказательств и других системах.
Обычный язык состоит их строк текста; математическая нотация часто также содержит двумерные структуры. Будет обсуждён вопрос о применении в математической нотации более общих структур и как они соотносятся с пределом познавательных возможностей людей.
Сфера приложения конкретного естественного языка обычно ограничивает сферу мышления тех, кто его использует. Я рассмотрю то, как традиционная математическая нотация ограничивает возможности математики, а также то, на что могут быть похожи обобщения математики.
Читать полностью »
Теория и практика AOP. Как мы это делаем в Яндексе
2016-06-30 в 13:47, admin, рубрики: android development, aop, aspectj, java, Блог компании Яндекс, Программирование, Разработка под androidОдна из ключевых особенностей работы в Яндексе — это свобода выбора технологий. В Авто.ру, где я работаю, нам приходится поддерживать большой пласт исторических решений, поэтому любая новая технология или библиотека встречается двумя вопросами коллег:
— Насколько это увеличит дистрибутив?
— Как это поможет нам писать меньше и эффективнее?

Сейчас мы используем RxJava, Dagger 2, Retrolambda и AspectJ. И если о первых трёх технологиях слышал каждый разработчик, а многие даже применяют их у себя, то о четвёртой знают только хардкорные джависты, пишущие большие серверные проекты и разного рода энтерпрайзы.
Передо мной стояла цель ответить на эти два вопроса и обосновать использование AOP-методологии в Android-проекте. А это значит — написать код и показать наглядно, как аспектно-ориентированное программирование поможет нам ускорить и облегчить работу разработчиков. Но обо всём по порядку.
Как разравнять Пирамиду смерти
2016-06-30 в 11:02, admin, рубрики: javascript, Блог компании ua-hosting.company, оптимизация кода, Программирование, Совершенный кодНастроить webpack по мануалу, запрограммировать ангуляр и даже послать json по ajax — кажись каждый может, но вот как взглянешь на сам код… В этом посте будет показана разница между нововведениями.
Итак вы открыли ноду и увидели, что почти все функции «из коробки» последним аргументом принимают колбэк.
var fs = require("fs");
fs.readdir(__dirname, function(error, files) {
if (error) {
console.error(error);
} else {
for (var i = 0, j = files.length; i < j; i++) {
console.log(files[i]);
}
}
});
Пирамида смерти
Читать полностью »
Разбор задач отборочного раунда RCC 2016
2016-06-29 в 15:27, admin, рубрики: mail.ru, rcc, Russian Code Cup, Блог компании Mail.Ru Group, Программирование, разбор задач, Спортивное программирование
Завершился очередной — отборочный — раунд международного чемпионата программистов Russian Code Cup 2016. И по сложившейся традиции мы предлагаем вам ознакомиться с решениями задач, которые предлагались конкурсантам в последнем раунде. На этот раз задач было шесть, хотя на их решение по-прежнему выделялось два часа. За выход в следующий раунд сражалось 604 человека. RCC впервые проводится в том числе для англоязычных участников. Результат не заставил ждать — русскоговорящим программистам будет составлена серьезная конкуренция. В финал прошло 50 человек и из них 19 человек — не русскоговорящие участники. Среди финалистов представители России, Украины, Беларусии, Литвы, Словакии, Армении, Польши, Швейцарии, Финляндии, Японии, Китая, Южной Кореи.

