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

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

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

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

OpenFOAM с точки зрения программиста физика
В компании Intel разрабатывается довольно много ПО для моделирования различных физических процессов. В некоторых из них мы используем пакет OpenFOAM, и в этом посте я постараюсь дать краткое описание его возможностей.
Что такое OpenFOAM? Это, пользуясь термином Википедии, открытая (GPL) платформа для численнного моделирования — в первую очередь для моделирования, связанного с решением уравнений в частных производных методом конечных объемов, и в самую первую очередь — для решения задач механики сплошных сред.
КПДВ: эволюция двух несмешивающихся жидкостей разной плотности, изначально разделенных тонкой перегородкой (пример «lockExchange» из стандартной поставки OpenFOAM). Переходные цвета обозначают ячейки сетки, где присутствует доля и той, и другой жидкости (более точно: при симуляции используется метод объёма жидкости).

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

    Мое становление как  программиста началось в 2005 году  и продолжается по
сей  день. Несомненно,  многие  читатели смогут  похвастаться более  обширным
опытом,  но речь  пойдет о  другом.  Мой профессиональный  рост наложился  на
интересный период  - повышение культуры  программирования в рунете,  если это
можно  так  назвать.  Профессионалы  были  всегда,  но сегодня  подкованность
среднего  программиста(во всяком  случае  в сфере  best pracices)  несравнимо
выше, чем тогда.

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

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

Попалась мне в руки такая игрушка
image

Поиграв им немного с телефона, решил сделать управление с компьютера.
Читать полностью »

В середине прошлого лета на программерскую рассылку отдела клиентских игр Mail.Ru Group пришло письмо – «Объявлен конкурс на позицию преподавателя курса Java в нашем совместном проекте с МГТУ им. Н. Э. Баумана». Как программист и сотрудник отдела я это письмо тоже получил. Как выпускник физтеха, а в прошлом преподаватель и научный работник, решил откликнуться.
Так для меня началась история работы преподавателем в Технопарке. Собственно об этом (о работе, о Технопарке, о своем курсе и о студентах) я и хочу вам рассказать.
Разработка сервера браузерной игры… как учебная дисциплина
Читать полностью »

Летняя молодежная школа Intel 0x7DD ждет своих учеников
Стало уже доброй традицией, что в конце апреля – начале мая в блоге Intel мы объявляем об очередном наборе в Летнюю Студенческую Школу Intel; вот, например, как это выглядело в прошлый раз. Не станет исключением и год 0x7DD. Итак, эта информация для вас – студенты старших курсов и аспиранты! Предлагаем всем желающим увлекательно и с пользой провести летнее время, получая новые знания и претворяя их непосредственно в программный код!
Читать полностью »

После приобретения цифровой мыльницы у меня возникла необходимость каталогизировать отснятые файлы хотя бы по временам года. Но, как оказалось, после копирования с камеры дата изменения файла устанавливается в дату копирования и потом для того, чтобы узнать реальное время съемки, необходимо смотреть EXIF информацию или атрибуты файлы. Конечно, любая уважающая себя программа по просмотру файлов умеет извлекать из EXIF дату съемки, но мне данный способ неудобен.
Вот я и решил написать небольшую программу на C# которая ищет *.jpg файлы в текущем или указанном каталоге, извлекает время съемки и, в случае если это время не совпадает с временем изменения файла, то устанавливает это время согласно дате и времени съемки. Надеюсь, найдутся те, кому она пригодится.
Да, возможно есть графические программы в которые встроен аналогичный функционал, но я еще преследовал цель написать чего-нить на C#
Читать полностью »

Небольшое предисловие

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

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

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

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

Недавно, наконец, вышло 8-е издание книги OpenGL programming guide, которую я ждал уже более чем 2 года. Чуть раньше я познакомился с замечательным текстовым редактором Sublime Text 2 и решил настроить его вместо установки тяжелой Visual Studio.

Итак, для начала нам нужен компилятор — я остановился на G++. Он является частью GCC, а его порт под Windows называется MinGW. С него и начнем:
Читать полностью »

Вступление

В своей практике мне довелось участвовать в миграции проекта (codebase имел 5+ лет истории) с централизованной системы управления версиями (centralized VCS — SVN) на распределенную (distributed VCS — Mercurial). Подобные активности часто сопровождаются определенным количеством FUD (fear, uncertainty and doubt) среди команды, вовлеченной в этот процесс. Если технические моменты конвертации (структура новых репозиториев, инструментальная поддержка, работа с большими бинарными файлами, кодировки и т.п.) по большему счету будут решены в определенный момент, то вопросы, связанные с преодолением кривой обучения для команды для эффективного использования новой системы, на момент перехода могут только начинаться.

При таких переходах важно измение взгляда на новую систему контроля версий и ее использование (mindset shift). Тут очень помогает хорошее понимание принципов, на которых основаны VCS. Если разобраться в основах, использование системы заметно упрощается. Соответственно, данный материал будет посвящен различиям в моделировании истории между централизованным и децентрализованным системами управления версиями.
Читать полностью »


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