MakeCorner: теперь уголки мне нравятся
Наконец-то мне стали нравится уголки, которые генерирует моя программа MakeCorner, переписанная на Go. Несколько последних постов с фотографиями обработаны именно этой программой. Теперь осталось сделать сохранение EXIF и весь функционал из версии на PHP будет перенесён.
Программа, кстати, автоматически должна стать мультплатформенной. Я не пробовал, но компилятор Go есть для MacOS, FreeBSD, Linux и Windows (и трёх типов архитектур — ARM, i386 и x86-64/amd64).
Правда, для работы требуется библиотека GD, а она вряд ли скомпилируется на ARM.
почему?
Комментарий для zg.livejournal.com:
С программами на Си такое бывает. Завязываются на порядок байт, вызывают ассемблер, рассчитывают на определённый размер int и так далее. 100500 способов написать непереносимую программу.
Комментарий для Евгения Степанищева:
неожиданный переход от GD к «программе на Си».
армы bi-endian. в большинстве телефонов, планшетов, нетбуков — включён как раз littleendian.
в GD нет ассемблера.
размер int’а на армах совпадает с x86.
Комментарий для zg.livejournal.com:
GD — программа на Си.
Я лишь привожу примеры.
GD зависит от кучи других библиотек (libjpeg, freetype, libpng и прочее), которые зависят от другой кучи библиотек (zlib, например) и всё это зависит от библиотек системы.
Причин для несовместимости может быть целая куча.
Комментарий для Евгения Степанищева:
т. е. то что справедливо для любой программы на си, справедливо и для GD, так?
все равно справа внизу уголок не нравится
А зачем вобще модифицировать изображения, подготавливать их для блога? Через CSS никак?
Комментарий для zg.livejournal.com:
Так. И, обычно, если автор проекта специально не заботится о совместимости, программа не совместима.
Ок, значит соберётся.
Комментарий для nikolay:
Вроде он ничем не отличается от всех других.
Комментарий для zencd.livejournal.com:
В общем случае никак.
дело делаешь хорошее, но всё же зачем выкладывать на github makefile со своими hardcode path’ами?
ну пришлось подредактировать, вроде бы даже make отработал без проблем, появился файл _cgo1_.o (собираю под linux), file _cgo1_.o говорит о том, что это нормальный ELF файл, но при запуске он молчит, даже на --help не реагирует.
Комментарий для доброжелатель:
Честно сказать, я редко пишу makefile и не знаю как сделать правильно.
Надо сделать make corner, потом запускать файл «corner»
Комментарий для доброжелатель:
Хм. Я тут подумал, что оно всё же не заработает. У меня там используется jpegtran, скомпиленный под Mac. Видимо надо-таки поработать над Makefile.
В общем, для работы требуется jpegtran, скомпиленный для конкретной платформы, потом сконвертированный jpegtran-convert.go и преобразованный в модуль по образу и подобию jpegtran.go.
Подумаю сегодня как это сделать мультиплатформенно.
Комментарий для доброжелатель:
Вставил в makefile сборку jpegtran, в этой же папке должен лежать файл jpegtran.linux.bz2. Это просто jpegtran ( http://jpegclub.org/jpegtran/ ), переименованный и сжатый bzip2.
Похоже нет никакого смысла в том, чтобы вставлять jpegtran внутрь программы. Гораздо проще сказать, что jpegtran просто нужен для работы программы.
Нужно узнать как люди пишут файл configure.
Комментарий для доброжелатель:
Я описал процедуру компиляции в файле README.
Комментарий для Евгения Степанищева:
обычно, это в сколько в процентах?
ну и как бы это не значит, что не существует программ, авторы которых не заботились о совместимости, а они совместимы.
Комментарий для zg.livejournal.com:
Не знаю. Я в своей жизни много чего собрал руками, собираю руками намного лучше большинства, у меня большой опыт компиляции чего-то, что разрабатывалось под другую платформу. По моему опыту, я чаще сталкивался с тем, что программа не компилируется, чем с тем, что она спокойно компилируется (если проект большой, конечно) под чуждую платформу
Конечно не значит.
Комментарий для Евгения Степанищева:
Я ещё не пробовал компилировать, но за новый makefile и readme огромное спасибо!
Как попробую -- расскажу об успехах.
Комментарий для Евгения Степанищева:
мы всё таки про разные архитектуры говорим.
а почему же вы в таком случае считаете обоснованным переход от обсуждения GD к обсуждению абстрактной си программы?
Комментарий для доброжелатель:
Спасибо! Буду благодарен.
Комментарий для zg.livejournal.com:
Я оперирую вероятностями. Вероятнее всего, что программа на Си (GD — программа на Си) не соберётся под чужой платформой.
Комментарий для Евгения Степанищева:
с какой вероятностью?
Комментарий для zg.livejournal.com:
С большой. Этот вопрос уже задавался: «„обычно“, это в сколько в процентах?» И я уже на него подробно отвечал.
дайте ссылку.
Комментарий для zg.livejournal.com:
Вы издеваетесь что ли или у вас скролл не работает?
Вот ссылка: http://bolknote.ru/all/3257#n27921
нет. вы же написали:
а по ссылке субъективная вода.
Комментарий для zg.livejournal.com:
Это не вода, это моё субъективное мнение, на которое я имею право. Я же не Капитан Статистика.