Author Archives: elwood
Конец семестра приблизился как всегда незаметно. И, как водится, начались напряги со сдачей лабораторных работ по информатике. В семестре их всего 3 (надо сдать за 4 занятия), так что я с друзьями не особо сильно беспокоился о них и, в итоге, проспав первые 2 занятия и сдав одну на третьем, оказался в нехорошем положении, узнав о том, что преп свалил на конференцию, а 4ое занятие отменили. Оставалось ещё 1+1доп занятие с другой группой, на которых мне предстояло сдать 2 лабы. С нашим препом задача не из лёгких. Ну со второй я кое-как разобрался, а вот последняя представляла из себя программу, эмулирующую работу простейшей трёхадресной ЭВМ, поддерживающей команды ввода/вывода данных, арифметические операции и даже (!) условные переходы. По ходу выполнения работы студент должен пошагово выполнить несколько команд, указывая действия типа Чтения Счетчика Команд, Запись Адреса Команды на Шину Адреса и т.п. муть. Каждый тип команды (их 8) состоял из последовательности 8-15 операций, которые надо было по порядку запомнить. Шпора по этой лабе занимала лист тетрадного формата и легко палилась препом (из некоторых студенток он вытаскивал по 3 шпоры)) ), так что учить всё это желания не было, и я решил пойти другим путём. Результаты выполнения работы отображались на экране, надпись гласила о том, на каком месте программа завершила работу и о количестве допущенных студентом ошибок плюс общее кол-во ответов. Похожая табличка выводилась в лог проги. Зная, что прогу на компе в аудитории можно без проблем подменить, я составил адский план сдачи работы)).
За долгое время необновлений блога было сделано немногое, но все же считаю нужным написать об этом немногом пару слов.
Во-первых, мы зарелизили первую версию libvlcnet, библиотеки для удобной работы с плеером VLC с использованием C#. Библиотека получилась небольшой, функциональной, и надеюсь, пригодится людям, которые хотели бы встроить в некую программу (допустим, WindowsForms) функционал воспроизведения видео/аудиофайлов. Проект решили залить на SourceForge.net, все ок, только статистика периодически глючит, отказываясь работать.
Сайт проекта http://sourceforge.net/projects/libvlcnet
И, во-вторых, я наконец сваял тулзу для упаковки сборок, теперь она называется NBox и расположена на CodePlex’e. NBox представляет собой небольшую утилиту для упаковки нескольких сборок в одну, которая при запуске будет их извлекать прямо из памяти, не выгружая на диск. Помимо стандартных managed-сборок, можно также добавить и другие файлы (например, нативные DLL) таким образом, что при загрузке приложения они будут извлечены рядом с программой (либо в системной директории). Все настраивается из конфигурационного XML файла. Используя эту приблуду, можно уменьшить кол-во файлов, требуемых для запуска приложения (если не лень, то можно все файлы закинуть внутрь), ускорить запуск программы, ну и уменьшить общий размер файлов (в NBox используется алгоритм LZMA, дающий превосходные результаты по степени сжатия и скорости декомпрессии).
Сайт проекта : http://nbox.codeplex.com
Решил написать о своем творении статью на хабрахабр в надежде, что она будет небесполезной некоторым разработчикам. Публикую также и в своем блоге.
Представляю вниманию товарищей-дотнетчиков библиотечку собственного написания, с помощью которой можно легко обращаться с несложными математическими функциями, переводя их из строковой формы инфиксной записи в обработанное представление, составленное в постфиксной нотации, и обратно. Для чего это может понадобиться ?
К примеру, можно написать приложение, которое принимает ввод функции пользователем в виде строки, анализирует корректность синтаксиса, вычисляет его значение в указанных точках, оптимизирует введенное выражение, минимизируя количество операций, требуемых для вычисления, и может выдавать результат в виде строки, представляющей собой корректное строковое представление оптимизированной функции. В качестве конкретных применений можно отметить различные специализированные калькуляторы (в том числе, построенные наподобие программируемых), приложения, используемые для построения графиков или других отчетов, требующие задания начальных функций, или как оригинальное средство для построения защиты от спама / автоматических регистраций.
4