Задать вопрос
  • Можно ли скомпилировать программу на go для запуска на машине без установленного go?

    @gaxetasok
    1. На разных операционных системах - свои правила.
    2. Когда ты компилируешь, не указывая где будешь использовать - тебе компилирует под ту операционную систему, на которой ты и запускаешь компилятор.
    3. В такой ситуации как у тебя нужно явно указывать на какой операционной системе ты собираешься запускать программу.
    4. Это называется кросс-компиляция. Ищи в интернете по этому слову.
    5. Тебе здорово повезло, что ты имеешь дело с Go, в противном случае пришлось бы иметь дело со специальными dev-истралляциями и/или тулчейнами.
    6. Тебе нужно выставить 2 переменные среды окружения - GOOS=linux и GOARCH=amd64, то есть указать формат создаваемого файла. А затем запускать компилятор.
    Ответ написан
    1 комментарий
  • Как в Golang передавать в функцию массивы структур разных типов?

    @dinegnet
    Не надо так.

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

    В лоб: можно заменить интерфейсом-итератором, конкретная реализация которого будет отличаться для разного типа, но сигнатура интерфейса будет та же самая, поэтому его можно будет легко передать в функцию.

    Меньше писать, но некрасиво - передавать разных типов массивы в разных по счету параметрах
    Ответ написан
  • Получение вложенного JSON в Go?

    akzhan
    @akzhan
    нет
    Ответ написан
    Комментировать
  • Как получить дату?

    nikonor
    @nikonor
    Программист go, perl
    t := time.Now().Format("02.01.2006")

    в t будет строка.
    Ответ написан
    2 комментария
  • Как лучше реализовать смену 3D модели?

    @Espleth
    Правильно - это добавляем топор как отдельный объект и муч... а не, погодите, просто делаем его дочерним объектом кости, которая является ладонью персонажа, и топор будет двигаться вместе с этой костью.

    Upd: а, ну да, RedHairOnMyHead в своем комменте так и сказал
    Ответ написан
    Комментировать
  • Как лучше реализовать смену 3D модели?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    Если у вас будет смена оружия, то логичнее, как мне кажется, привязывать его к персонажу. А если же топор как был, так и будет всегда, то в модель зашивать.
    Ответ написан
    2 комментария
  • На чем писать сервер чтобы усложнить декомпиляцию?

    @dinegnet
    Переписывать все - не круто.
    Достаточно небольшой кусок с ключевыми алгоритмами.
    Не обязательно весь сервер целиком.

    Декомпиляция возможна всегда, но вопрос - на каком уровне будет декомпилированный код. Если ты получишь почти что ассемблер - смысла в декомпиляции мало.
    Любой компилируемый в native подходит - Go, C/C++, Pascal, Haskell на порядки лучше, чем Python, Java, NodeJS.

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

    Но в конечном итоге все упирается насколько занитересован человек.
    Если продукт очень массовый или очень дорогой - больше интереса взламывать.

    А что, заказчик идиот?
    Если он хочет заполучить сервер как некий гарант, то разве он не хочет еще и исходники?

    Имхо, поддержка разработчика (устранение багов, которые и год спустя могут быть выявлены) существенный плюс, чтобы оставаться с вами.
    Ответ написан
    Комментировать
  • Как перенести модели Blender с одной машины на другую?

    cronk
    @cronk
    Делаю графику для кино. Роботы, взрывы, пиу-пиу!
    Можно запаковать текстуры в сам бленд файл.

    File > External Data > Pack All into .blend

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

    Еще вариант попробовать поменять пути с абсолютных на относительные. Т.е. все пути будут задaваться относительно бленд файла. Я обычно пользусь этим методом.

    File > External Data > Make All Paths Relative
    Ответ написан
    Комментировать
  • Как создается 3D модель с возможностью выбора квартир?

    @ehs
    Architect / 3d designer
    Я не знаю как там конкретно но вам с 3D точно не придется тут работать. Дадут картинку, обведете области и все, никакого 3д.
    Ответ написан
    Комментировать
  • Как использовать vuejs и golang?

    uvelichitel
    @uvelichitel Куратор тега Go
    habrahabr.ru/users/uvelichitel
    Вы можете поменять разделители {{.}} в Go template на любые другие https://golang.org/pkg/html/template/#Template.Delims
    myTemplate.Delims("<<", ">>")
    Ответ написан
    Комментировать
  • На чем писать сервер для игры?

    @taktik
    Sr. QA automation | SDET
    Я бы выбрал Go, он отлично подходит для разработки серверной части игр.
    Для общения с клиентом можно использовать protobuf.

    Вот пример ммо игры, в которой сервер на Go - https://habrahabr.ru/post/321148/
    В комментах есть ссылка на видео-доклад, в котором раскрываются технические детали сервера.
    Ответ написан
    Комментировать
  • Как вызывать и работать с exe файлом с помощью golang в windows?

    tiabc
    @tiabc
    Бизнес-партнер и консультант по технологиям
    В дополнение к ответу Александра, если требуется не только прочитать какие-то данные из сторонней программы, но еще и что-то ввести в ее стандартный поток ввода (как я понял, основная задача именно в этом), можно поступить так:

    package main
    
    import (
    	"fmt"
    	"log"
    	"os/exec"
    )
    
    func main() {
    	cmd := exec.Command("cmd", "/C", "C:/gopath/src/script/for.exe")
    
    	// Чтобы вводить что-то в стандартный поток ввода другой программы, нужно получить ее pipe.
    	pipe, err := cmd.StdinPipe()
    	if err != nil {
    		log.Fatal(err)
    	}
    	// Куда впоследствии можно что-то писать.
    	pipe.Write([]byte("piggybank"))
    	// После ввода всех данных нужно обязательно его закрыть.
    	pipe.Close()
    
    	// Самый простой способ получить вывод другой программы, использовать:
    	output, err := cmd.Output()
    	if err != nil {
    		log.Fatal(err)
    	}
    	fmt.Print(string(output))
    }
    Ответ написан
    1 комментарий
  • С чего начать ребёнку программировать?

    MrNexeon
    @MrNexeon
    Вообще-то сервера в Minecraft'e не кодят.. но это так, к слову.

    Хочу предложить немного другой подход, который возможно вас заинтересует.

    К сожалению, интересы ребенка могут отличаться от ваших планов, но, если уж очень хочется, то в 7 лет лучше уделить внимание модам в Minecraft. Например: GregTech, Build Craft, Industrial Craft 2 - отлично развивают логику.

    Когда процесс уже пойдет активнее, попробуйте предложить ему мод Computer Craft, это что-то вроде виртуальной машины внутри игры, которую можно программировать - очень увлекательно.

    maxresdefault.jpg
    Ответ написан
    2 комментария
  • С чего начать ребёнку программировать?

    Neznayka1979
    @Neznayka1979
    Интересы - IT, психология...
    Есть такое мнение, что практическое применение какого-либо яп в конечном итоге влияет на мышление человека...
    Для начинающих лучшим решением пожалуй будет освоить первым - функциональный яп.
    Почему функциональный ? Потому что функциональный яп не содержит "ничего лишнего" и тем самым поможет освоить суть алгоритмов и выработать соответствующее мышление, т.е. научит мыслить Логически.
    Подводя итог вышесказанному начинающим программистам лучше начать с изучения одного из функциональных яп - Haskell или Scala, Lisp...
    А уже после можно переходить на яп С (Си), который поможет понять многие другие очень важные детали...
    И уже освоив на достаточном уровне яп С можно переходить на другие яп (С++, Java, С#...)
    Да, и ещё желательно (обязательно) освоить англ.яз и параллельно осваивать - Дискретную математику.
    Но учитывая возраст вашего ребёнка (7 лет) можете купить данную книгу:
    www.ozon.ru/context/detail/id/32092949
    А если интересует геймдев (разработка игр), то посмотрите тут:
    https://thequestion.ru/questions/205745/chto-uchit...
    https://habrahabr.ru/company/miip/blog/313326/
    https://habrahabr.ru/post/319582/
    https://dou.ua/lenta/articles/gamedev-for-programm...
    Ну и видео:
    https://www.youtube.com/playlist?list=PLR4wcBxrUGP...
    Ответ написан
    Комментировать
  • Как связать PHP и GO?

    @djay
    Вопрос - как данные из php скрипта отдать программе на go


    Воспользоватся технологиями которые предназначены именно для таких задач - XML/JSON через REST API.
    Ответ написан
    Комментировать
  • Как учитывать теги структуры при выдаче JSON в gin-gonic?

    @FireGM
    Для этого достаточно убрать пробел в в `json: "id"`. Должно быть `json:"id"`
    P.s. И для net/http ваш пример так же не работал бы.
    Ответ написан
    1 комментарий
  • Почему так долго отрабатывает горутина?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    пинг до гугла <35мс?
    Куда еще быстрее-то?
    Ответ написан
    3 комментария
  • Как сделать чтоб программа не завершалась?

    kondr1
    @kondr1
    golang, js, c++
    Можно в конце создать блокирующий канал. Так ты сам решишь когда завершится программе. Она будет работать пока не получит пустую структуру из end
    end := make(chan struct{})
    
    <- end
    Ответ написан
    2 комментария
  • На чём бы лично вы разрабатывали программу вроде автокада?

    sim3x
    @sim3x
    Если у тебя есть опыт в такого рода проектах на жс и команда, которая потянет, то вперед

    А в реальности проще будет сделать плагин для SketchUp
    Ответ написан
    Комментировать
  • Как реализовать интерфейс в Go?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Вы реализовали интерфейс для типа "указатель на IPAddr", а распечатываете тип "IPAddr".

    С этим возникает сложность из-за двойных стандартнов, принятых в Go, хотя и логичных. Запомните навсегда:

    Pointer type can access the methods of its associated value type, but not vice versa. That is, a *Dog value can utilize the Speak method defined on Dog, but as we saw earlier, a Cat value cannot access the Speak method defined on *Cat.


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

    Объясняется это просто - если метод реализован для указателя, он, скорее всего, может что-то менять в объекте по этому указателю, поэтому передавая объект по значению, а не по указателю - он бы менял не в самом объекте, а в его копии, которая бы делалась при передачи по значению. Это явно не то, чего ожидал писатель метода.
    В обратном же случае, если метод определён для типа по значению, а не по указателю, очевидно что метод ничего в самом значении не меняет (если бы попытался, то менял бы опять же в копии значения). А раз он там ничего не меняет, можно смело передать наш объект под ссылкой.

    Тут объясняется всё подробно: https://github.com/golang/go/wiki/MethodSets
    Ответ написан
    8 комментариев