Может просто не нужно идти в IT ради денег, а заниматься тем, что тебе нравится? Те, кто выбрал IT не ради денег, а ради призвания, не испытывают столько проблем, как те, кто выбрал IT ради денег. Хотя проблемы всегда есть, но как и в любой другой отрасли.
Не забывайте делать проверку типов файлов на стороне сервера
Тут скорее не проверка типов файлов. Тут единая точка входа должна быть, то есть в настройках сервера указать, что выполнять можно только один index.php по конкретному пути и всё.
Я компилировал как раз в той ОС, для которой есть описание установки mingw — ArchLinux. mingw и GTK-библиотеки под это компилятор собирались с исходников. Это очень длительный процесс, как там и описано. У меня примерно сутки всё компилилось. Я уже думал, где можно найти готовые бинарники. Но после того как скомпилились все либы компилить само приложение для Windows стало просто.
Я задумываюсь, что если мне придётся заново собирать mingw-библиотеки для GTK+, то это будет кошмар. Я даже задумывался, что может быть под самой Windows компиляция будет проще.
Грид-контроль — это GtkTreeView. К нему есть биндинг в gotk3. Выше я показывал скриншот с приложением, которое делал. Там он есть. Там можно очень много чего накастомизировать.
Richtext-контрол — есть GtkTextView, тоже есть биндинг в gotk3 и пример. Там много возможностей по форматированию. Единственное, что придётся самому все контролы добавлять для этого и написать какой-то код для фоматирования текста.
А вот с графиками не всё так просто. Можно вручную всё рисовать с помощью Cairo, которая идёт с GTK и вроде бы есть биндинги в gotk3. Либо же использовать кастомный виджет (один из: gtkgraph.sourceforge.net/screenshots.html). Но для этого виджета скорее всего не будет биндинга для Go. Поэтому придётся самому биндинг писать. Если же вручную рисовать, то есть пример работы с графикой на gotk3.
Работает. Я на Windows компилировать 32-битное приложение. Вот тут его можете скачать: https://jhekasoft.github.io/insteadman/. Расскажу в продолжении подробнее.
Не устроило то, что они много весят. Ну и ресурсы системы едять порядочно. Компромиссом может быть github.com/zserge/webview. Это нативный вебвью.
Но надо отметить, что Visual Studio Code сделан как раз на Electron с TypeScript. И по сравнению с IntelliJ Idea весит гораздо меньше, да и память не так сильно жрёр. Это говорит о том, что Electron может быть лучше растолстевшего JVM.
Рассматривал. Там даже нет списков, treeview. Не серьёзная вещь пока что. Так, демку можно сделать, но полноценное приложение на нём не получится. По крайней мере то, которое я задумывал.
Нет. Я написал приложение на nw.js (https://github.com/jhekasoft/insteadman2), понял, что такие технологии, в которых нужня тянуть Chromium и node.js меня не устраивают вообще. И поэтому переписал приложение на Go + gotk3 (https://github.com/jhekasoft/insteadman3).
main.glade можно при желании упаковать в бинарник. Но он задуман всё-таки как отдельный файл представления, которое можно поменять не перекомпилируя приложение. При компиляции его парсит GtkBuilder и динамически создаёт объекты.
На GNU/Linux библиотеки будут в системе, на macOS — тащаться с собой нужные библиотеки в бандле (как и во всех других приложениях), под Windows — нужные библиотеки идут в папке с программой. Их вес не сильно велик для современных реалий. Уж точно меньше всяких Электронов. Я об этом рассказу в продолжении.
Всё, что можно сделать с помощью GTK+, можно сделать и на Go. А на GTK+ есть довольно-таки сложные GUI-приложения. Если чего-то нет в биндинге gotk3 для GTK+, то всегда можно добавить. Я делал такое приложение: jhekasoft.github.io/insteadman. Это ланчер для INSTEAD-игр Там ещё окно настроек есть. Возможно не сильно сложное приложение, но я не вижу приград для усложнения.
Тем не менее 3.22 уже как 3 месяца релизнули. Но gotk3 поддерживает версии выше 3.16. У меня свободно компилится.
Там у них для разных версий есть отдельные файлы, в которых только фичи тех версий. Возможно просто что-то напутали в gotk3 с этими версиями и поправят.
Используем программу Androzic — оффлайн gps-карты до сих пор актуальны
IT: Уйти и не вернуться
«Взломать» за 60 секунд или карантинное безумие
Тут скорее не проверка типов файлов. Тут единая точка входа должна быть, то есть в настройках сервера указать, что выполнять можно только один index.php по конкретному пути и всё.
Гирлянда на Raspberry Pi
GUI на Golang: GTK+ 3
GUI на Golang: GTK+ 3
Я компилировал как раз в той ОС, для которой есть описание установки mingw — ArchLinux. mingw и GTK-библиотеки под это компилятор собирались с исходников. Это очень длительный процесс, как там и описано. У меня примерно сутки всё компилилось. Я уже думал, где можно найти готовые бинарники. Но после того как скомпилились все либы компилить само приложение для Windows стало просто.
Я задумываюсь, что если мне придётся заново собирать mingw-библиотеки для GTK+, то это будет кошмар. Я даже задумывался, что может быть под самой Windows компиляция будет проще.
А вы не пробовали под Windows скомпилить по официальной инструкции: www.gtk.org/download/windows.php?
GUI на Golang: GTK+ 3
Richtext-контрол — есть GtkTextView, тоже есть биндинг в gotk3 и пример. Там много возможностей по форматированию. Единственное, что придётся самому все контролы добавлять для этого и написать какой-то код для фоматирования текста.
А вот с графиками не всё так просто. Можно вручную всё рисовать с помощью Cairo, которая идёт с GTK и вроде бы есть биндинги в gotk3. Либо же использовать кастомный виджет (один из: gtkgraph.sourceforge.net/screenshots.html). Но для этого виджета скорее всего не будет биндинга для Go. Поэтому придётся самому биндинг писать. Если же вручную рисовать, то есть пример работы с графикой на gotk3.
GUI на Golang: GTK+ 3
Работает. Я на Windows компилировать 32-битное приложение. Вот тут его можете скачать: https://jhekasoft.github.io/insteadman/. Расскажу в продолжении подробнее.
GUI на Golang: GTK+ 3
GUI на Golang: GTK+ 3
Но надо отметить, что Visual Studio Code сделан как раз на Electron с TypeScript. И по сравнению с IntelliJ Idea весит гораздо меньше, да и память не так сильно жрёр. Это говорит о том, что Electron может быть лучше растолстевшего JVM.
GUI на Golang: GTK+ 3
Под атомом вы имеете ввиду Electron? Я писал, что с ним тащится Chromium + node.js. Это не очень. Плюс ресурсов жрёт много.
GUI на Golang: GTK+ 3
GUI на Golang: GTK+ 3
GUI на Golang: GTK+ 3
Дальше я написал. В общем об этом в продолжении. :)
GUI на Golang: GTK+ 3
Нужны будут динамические библиотеки GTK+, их общий вес не сильно велик по нынещним меркам: github.com/gotk3/gotk3/wiki/Cross-Compiling#deployment. Я дальше об этом расскажу.
GUI на Golang: GTK+ 3
GUI на Golang: GTK+ 3
Вот в документации gotk3 про это: github.com/gotk3/gotk3/wiki/Cross-Compiling#deployment.
GUI на Golang: GTK+ 3
GUI на Golang: GTK+ 3
GUI на Golang: GTK+ 3
Там у них для разных версий есть отдельные файлы, в которых только фичи тех версий. Возможно просто что-то напутали в gotk3 с этими версиями и поправят.