Блог о программном обеспечении

Зачем оно нужно?
Публиковать для себя разные вещи, чтобы потом не искать их у себя по разным папкам.
И, конечно, - делиться открытой информацией с другими.
Коротко по темам Caelinux - самый инженерный дистрибутив линукс;
CalculiX - мощная программа для расчетов по МКЭ;
OpenOffice Basic - то что легче выучить и затем эффективно использовать
Maxima - символьная математика от Вильяма Шеллтера, профессора Остинского университета. Все прочее - понемногу.

Дистрибуция приложений в linux

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

Итак, рассмотрим некоторое приложение, например консольное - без графического интерфейса. Например, такое как calculix CCX
 Внешне для пользователя на экране данное приложение выглядит как файл (без расширения exe как в Windows). Этот файл запускается через консоль, вместе с файлом модели и в результате расчета производит много других файлов с результатами расчета.
Данная расчетная программа не работает сама по себе на "одном ядре"
у нее есть внешние библиотеки. В линукс они складированы в недрах системы, закрытых для пользователя системных папках. Это файлы с расширением .so (аналог dll в Windows). Работают они аналогично dll, кстати в Windows та же программа выглядит как один exe файл и несколько dll, которые складируются в одной папке с exe
Так вот, в Linux, в принципе можно вытащить so файлы и складировать их в одной папке с экзешником - эффект будет тот же. Папку с файлами можно будет переносить с одного дистрибутива на другой, где они будут успешно работать.
Можно пойти дальше и при компиляции экзешника посредством GCC добавить ключ -static
в этом случае получится экзешник с уже вшитыми в него библиотеками (весить он будет больше на размер всех библиотек)
Статически линкованный файл будет работать на "голом ядре" в любом линуксе, даже, возможно, очень старом.
В linux есть команда file, позволяющая получить информацию об экзешике, является ли он statially linked или dynamically linked (то есть с библиотеками отдельно в системных разделах)

Чуть сложнее обстоит дело с программами, имеющими графический интерфейс. Ну, в общем, все различие в том, что экзешник линкован с библиотеками графического интерфейса. Но некоторые такие библиотеки настолько общие, что они наверняка окажутся любом дистрибутиве (так, что и не потребуется до устанавливать).
Например программы скомпилированные в среде Lazarus имеют в linux зависимость от GTK2, это очень общая и распространенная по умолчанию библиотека. Каких то усилий по портабелизации в данном случае можно не предпринимать.

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

Поэтому распространение софта в портабельном виде, вместе с библиотеками - наиболее распространенный способ.
В linux есть масса примеров распространения софта (в том числе очень сложного, коммерческого, типа  Siemenc NX или GiD pre- postprocessor) или открытого, как Salome-Platform, в портабельном виде, то есть когда все библиотеки идут вместе с приложением и складируются отдельно от системы.
Обычно файлы пакуют в так называемые run файлы - что то вроде setup exe в Windows. Иногда - просто папки в архиве, как qcad или Z88Aurora хотя в этом случае иногда нужно либо запустить скрипт, либо с помощью нескольких команд разрешить файлам и библиотекам выполняться.

В общем, портабельный софт в линукс - обыденная задача. С некоторых пор она даже проще решается чем в windows, где надо до устанавливать Net или среду выполнения программ на C++

Более серьезные сложности могут возникнуть при распространении приложений для разных архитектур (32 и 64 битных), в этом случае компиляторы разные и работа программы может немного отличаться (требуется отдельное тестирование)
Но это - отдельная тема, которая сути вопроса не касается





3д печать зданий

В продаже (в РФ) уже появились серийные принтеры для 3д печати цементными смесями.

http://specavia.pro/articls/2238/

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

Какие потенциальные выгоды это дает?

1) Архитектурное разнообразие - практически Гауди в массовое строительство. Конечно, Гауди - прежде всего вкус и то, что не дается одними технологиями, но мода на разнообразные детали может снова вернуться.

2) Транспортные расходы. Это довольно существенная в сумме всех этапов часть затрат. Вполне возможно, что промышленные принтеры начнут оснащать оборудованием для производства наполнителя смеси из более-менее произвольного "подножного" грунта. Если предположить, что экскаватор выкапывает подвал или бассейн, а затем робот формирует из полученного материала основной массив здания, то это может дать очень существенную экономию, даже если речь идет только о стенах. Конечно вяжущее и добавки все равно придется подвозить на площадку.
Как и в первом случае, этот факт может вернуть назад старую и очень хорошую архитектурную особенность - а именно большую тепловую инерцию ограждающих конструкций и подвалы, выполняющие роль теплообменника с массивом грунта среднегодовой температуры (то есть прохлада летом и тепло зимой). Использование местных материалов - не новая вещь, например землебитный Гатчинский дворец, хотя не для всякой площадки это подходит.

Существующие проблемы 3д печати в основном следующие:

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

- программная часть 3д печати пока слишком примитивна.

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




-