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

Зачем оно нужно?
Публиковать для себя разные вещи, чтобы потом не искать их у себя по разным папкам.
И, конечно, - делиться открытой информацией с другими.
Коротко по темам 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д печати вероятней всего станет обыденным уже скоро и стоимость такого решения будет не велика.




-





Начало работы в linux - несколько советов от меня

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

1. Какой дистрибутив выбрать? Это тема для холливаров, а их разводить я не хочу. Я бы сказал для начинающего - выбирайте ubuntu основной стабильной ветки (на данный момент 14). Не kubuntu, не xubuntu и не edubuntu - а именно основной, поскольку он поддерживается Canonical лучше всего и наилучшим образом работает ... с точки зрения начинающего. Не выбирайте никаких минтов - не все то, что рекламируется на каждом углу, является руководством для вас. Это мое персональное мнение. 
PS caelinux в данном случае исключение - выбирать его стоит, если вы хотите попробовать открытые инженерные и математические программы. Правда, в настоящее время нет проблем установить и использовать их где угодно, например Salome-MECA распространяется в портабельном виде для любого дистрибутива.  

2. Ubuntu основной ветки имеет так называемый Unity интерфейс без меню Пуск. Вернее меню пуск есть, но оно реализовано в виде поисковой строки.  Если впечатаете "sys" то будет вам и System Monitor и System Settings. Ярлыки программ показаны сбоку и количество открытых окон соответствует количеству точек на ярлыке. переход между окнами - по клику на ярлык. В общем освоить не так сложно на самом деле. И когда привыкнете - поймете что это удобно на самом деле. Только в filter results можно из категорий убрать все кроме программ, а так - ничего реально раздражающего.
PS Unity интерфейс удачно оптимизирован с точки зрения сокращения движений мышью.  Все действия с операционной системой концентрируются в левом верхнем углу. Удобство ощущается в том случае, если вы захотите поработать на ноутбуке полулежа например.

3. Перходя на линукс с самого начала при установке запишите своего юзера латиницей без пробелов. Не знаю, вообще говоря, можно ли записать юзера кириллицей в принципе. Но даже если можно - то не надо. И научитесь по возможности все имена папок и файлов выражать латиницей без пробелов. Как будто вы бородатый админ из времен ДОСа.
Этот совет к тому, что какая то часть софта под линукс написана в старорежимном стиле, и может просто не работать. Это не очень утомительное правило, и его не сложно соблюдать.
Устанавливайте основным языком английский и потом после установки добавляйте русский/украинский.

4. Программы устанавливать удобней всего из Ubuntu Software Center и из терминала с использованием ppa (если гуглите как установить из ppa, то набирайте гугл запрос типа "sudo ubuntu ..."
Вообще способов установки масса, но перечисленные - самые простые.
Вот например как обновить adobe flash (гуглится одна строчка из сервиса askubuntu)

sudo apt-get update && sudo apt-get install -y flashplugin-installer


5. Windows приложения могут "идти под вайн", а могут и не идти. Я бы посоветовал установить не вайн, а настоящий коробочный виндоус (например XP) под virtaulbox. Это отдельная тема - как, не сложно, но есть детали - не буду касаться. При этом автоматически обновлять в виндоус ничего не надо (и вообще сеть можно отрубить после установки основных программ, благо что интернет работает из линукса, а вирусам в основном кроме интернета прийти неоткуда, если вы флешки в виртуалбоксе втыкать не будете. Вот так ваш добрый старый виндоус будет работать в отдельном окошке со всем софтом.



Вынесу свой пост на форуме сюда (о температурных задачах в строительстве)

http://forum.dwg.ru/showthread.php?p=1534524

Да все довольно просто на самом деле. Когда вы делаете статический расчет то задаете граничные условия - например закрепления и нагрузку (давления, силы). Для материала указывается модуль Юнга и коэффициент Пуассона (в зав-ти что у вас - сталь и т.д.) Решаются уравнения теории упругости и получаются напряжения и перемещения (опорные реакции). В какой бы вы программе не решали - результат один и тот же (согласно теореме об единственности решения).
В данном случае решаются уравнения теплопроводности и граничные условия свои - температуры и теплоотдачи. В результате получается распределение температуры (а вместо опорных реакций - тепловой поток через стены)
Уравнения теплопроводности вообще говоря гораздо проще уравнений теории упругости. То что какая то программа нужна - так их бесплатных больше десятка (Elmer FEM, Agros2D и так далее).
Довольно странно что такого рода стандартные строительные расчеты не реализовали в скадах и лирах (хотя бы для плоского случая).


Годный канал о примитивных технологиях.

Совершенно очевидно, что такое в школах надо преподавать.

https://www.youtube.com/channel/UCAL3JXZSzSm8AlZyD3nQdBA


Интересный момент с рекомендацией о вырубке отверстия между двух сучков для предотвращения раскалывания - это такой достаточно продвинутый сопромат (получение сложного НДС с преобладанием арочного сжатия над сдвигом на границах основного отверстия)