Рубрика «open source» - 300

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

FutoIn — с одной стороны, это «клей» из стандартов/спецификаций разных мастей для унификации программных интерфейсов различных существующих проектов по устоявшимся типам, с другой — это концепция для построения и масштабирования компонентов проекта и инфраструктуры, написанных на разных технологиях, без потребности в добавления этого самого «клея».

AsyncSteps — это спецификация и реализация программного интерфейса для построения асинхронных программ в независимости от выбранного языка или технологии.

Цели, поставленные для концепции:

  • реализация (с оговорками) должна быть возможна на всех распространённых языках программирования с поддержкой объектов и анонимных функций. Репрезентативный минимум: С++, C#, Java, JavaScript, Lua (не ООП), PHP, Python;
  • написанная программа должна легко читаться (сравнимо с классическим вариантом);
  • должны поддерживаться исключения языка (Exceptions) с возможностью перехвата и разворачиванием асинхронного стека до самого начала;
  • требуется удобство для написания асинхронных библиотек с единым подходом для вызова, возврата результата и обработки ошибок;
  • предоставить простой инструмент для естественного распараллеливания независимых веток программы;
  • предоставить простой инструмент создания асинхронных циклов с классическим управлением (break, continue) и меткой для выхода из вложенных циклов;
  • предоставить место для хранения состояния исполняемой бизнес-логики;
  • возможность отменять абстрактную асинхронную задачу, правильно завершая выполнение (освобождая внешние ресурсы);
  • возможность легко интегрироваться с другими подходами асинхронного программирования;
  • возможность ограничивать время выполнения задачи и отдельно каждой подзадачи;
  • возможность создавать модель задачи для копирования (улучшения производительности критичных частей) или использования как объект первого класса для передачи логики в качестве параметра (а-ля callback);
  • сделать отладку асинхронной программы максимально комфортной.

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

image

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

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

Планируя перенос части ИТ-инфраструктуры в сторонний дата-центр, следует решить, каким именно образом все информационные ресурсы организации будут объединены в единую сеть. Решения от ведущих производителей (Juniper, Cisco и других) зачастую стоят дорого; компаниям небольшого и среднего размера они могут оказаться не по карману. В этой связи вполне закономерным и объяснимым является возросший интерес к бесплатным продуктам с открытым исходным кодом, многие из которых по возможностям не уступают платным аналогам, а иногда даже превосходят их.

Важным элементом корпоративной сети является маршрутизатор — специализированное сетевое устройство, предназначенное для объединения сегментов сети и пересылки пакетов между ними. Маршрутизаторы бывают как аппаратные, так и программные. В случае, когда необходимо выстроить ИТ-инфраструктуру с минимальными расходами, использование программного маршрутизатора может оказаться вполне подходящим вариантом.

В этой статье мы расскажем о маршрутизаторе VyOS — интересном и перспективном продукте, к тому же распространяемым по свободной лицензии совершенно бесплатно, и покажем, как его можно использовать для решения практических задач.
Читать полностью »

У популярного веб-сервиса для создания и хранения заметок Evernote скоро появится свободная альтернатива — Paperwork. Благодаря открытым исходникам каждый может установить Paperwork на своём сервере и предоставить доступ пользователям по локальной сети или через интернет.

Демонстрационный доступ открыт по адресу demo.paperwork.rocks. После регистрации создаётся демо-аккаунт для создания и редактирования заметок. Базу данных удаляют ежедневно в 3:00 (CET). Для регистрации можно использовать произвольный email, он не проверяется.

Paperwork: свободная альтернатива Evernote - 1
Читать полностью »

Берём jrxml шаблон и устанавливаем в приложение

В первой части я рассказал о том, как подготовить в iReport шаблон отчёта для библиотеки JasperReports. А эта статья посвящена тому, как получившийся шаблон интегрировать непосредственно в приложение NORD POS. И если в первой части программа нужна была только, как источник данных для построения примера отчёта по справочнику товаров, то в данной статье она будет необходима для интеграции отчёта в интерфейс приложения, а также для демонстрации возможностей взаимодействия бизнес логики приложения и элементов шаблона библиотеки JasperReports.

Отчёты для NORD POS. Часть 2 - 1

Кроме этого, пришлось разделить статью на две части из-за того, что при подготовки материала я обнаружил ошибку печати отчёта в версии 3.0.1CE. Ошибка возникала из-за неправильного вызова диалога выбора принтера при использовании не стандартного оформления из Swing Look&Feel библиотеки Insubstantial. Ошибка не возникала при использовании темы Metal или оформления в стиле операционной системы. Но, так как в NORD POS по-умолчанию используется нестандартная тема CremeSkin, то для написания этой части необходимо было устранить данный баг и выпустить обновлённую версию NORD POS 3.0.2CE. И именно эту версию мы будем использовать во второй части статьи.
Читать полностью »

Наличие USB порта в современных микроконтроллерах открывает широкие возможности для самостоятельного изготовления разнообразных управляемых с компьютера устройств. На практике, однако, выясняется, что поставляемые производителем библиотеки для работы с USB нуждаются в доработке. Если вам интересен опыт подобной доработки для двух популярных семейств МК — добро пожаловать под кат.
Читать полностью »

Десятого января в Уральском федеральном университете на паркете ГУКа были проведены региональные соревнования по робототехнике «Гонки роботов». В соревнованиях приняли участие порядка 300 человек из 25 городов Уральского региона. Соревнования проходили в 3 номинациях:
«Новички», которым роботов для соревнований предоставлял Уральский федеральный университет;
«Любители» участвовали в соревнованиях со своими роботами;
«Профессионалы», для них была подготовлена трасса повышенной сложности.
Читать полностью »

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

Кто-то внедряет systemd, кто-то несогласный делает форки, а кто-то — игры.

Игра про автора systemd — Леннарта Поттеринга - 1
Читать полностью »

Нечто невообразимое творится в мире разработки: популярные программы, фундаментальные библиотеки выкладываются в open source. У обычных разработчиков появляется возможность вносить изменения в известные продукты. Вот и я, устав от ежедневной рутины, решил попробовать что-то новое, почувствовать полёт творческой мысли и приобщиться к великому. Говоря более простым языком, решил подключиться к какому-либо open source проекту.

Почему именно open source? Меня привлекает:

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

В этой статье я хотел бы описать первый опыт работы с двумя проектами: Media Player Classic — Home Cinema и SharpDevelop. Хотелось бы дать общие рекомендации по работе с open source проектом на начальном этапе. Статья не содержит полноценного анализа исходного кода или рекламы новой функциональности, в ней описаны лишь первые впечатления о работе с проектами. Возможно, статья привлечет внимание разработчиков к описанным в ней проектам и к разработке open source в целом.
Читать полностью »

Pivotal прекращает разработку Groovy & Grails с 31 марта - 1
Bad news everyone!

Компания Pivotal, спонсировавшая разработку Groovy & Grails последние годы, объявила о прекращении спонсирования проектов начиная с 31 марта.

Релизы Groovy 2.4 и Grails 3.0 будут последними релизами под крылом Pivotal.

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

На днях была выпущена уже вторая бета-версия Криты 2.9. Этой статьей я хотел бы начать рассказ о том новом функционале, который ждет пользователей в предстоящем релизе.

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

Krita: координаты Грина или как сделать из дракона кенгуру - 1

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


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