• Покупка сайта (движок)?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Человек продает полностью готовый сайт, наполненный своим контентом.

    Человек продаёт полностью готовый дом с мебелью.

    Могу ли купить у него этот сайт с движком, без контента, добавить свой контент и подключить к своему домену?

    Могу ли купить у него этот дом с фундаментом, но без мебели, занести свою мебель, и повесить на нём свою табличку?


    И сможет он потом этот же сайт продать кому-то ещё?

    А может он потом продать этот дом кому-то ещё?


    Какие подводные камни и риски?


    - Похоже вы не разбираетесь в вопросе совсем, а значит вас могут обмануть по любому из пунктов.
    - Может ли жулик продать Кремль не очень умному человеку? Думаю да. Имеет ли смысл и законную силу такая сделка? Риторический вопрос.
    - На каком движке сайт - не ясно из вопроса.
    - Кто и за какие деньги будет администрировать это сайт - не понятно.
    - Есть ли у "движка" вообще инструменты для управления контентом? Может быть это самопальный движок, или там нет движка вовсе и весь контент отрендерен в статике и всё выдаётся за CMS. Может быть там тильда, и движок вы не купите. А может быть движок и так открытый и бесплатьный. А может быть его кастомизировали так, что в нём теперь черт ногу сломит и вы не разберётесь.

    Мой вам совет: наймите человека, который разбирается в вопросе и сможет выяснить всё необходимое вам у продавца на правильном языке, и не позволит себя обмануть.
    Ответ написан
    9 комментариев
  • На чем построить базу IP-адресов?

    @Everything_is_bad
    Это можно написать на любом современном веб стеке.
    Ответ написан
    1 комментарий
  • Какой хостер может предоставить 10 портов?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    Арендуйте виртуальную машину и делайте там столько портов, сколько угодно.
    Ответ написан
    Комментировать
  • Почему некоторые программисты на GO работают с бд на голом SQL без ORM?

    Не гошник, но расскажу в целом.
    1. На 1 уровень абстракции меньше. При работе с ORM нужно думать одновременно и об особенностях твоей ORM-ки и об особенностях базы.
    2. На сыром SQL некоторые вещи сделать проще, чем с ORM-ками.
    3. Лучше сырой SQL, чем тупая ORM-ка.
    4. Некоторые ORM-ки могут негативно влиять на производительность.

    Если тебе приходится при работе с ORM писать куски SQL-я (например для WHERE), передавать названия колонок в параметрах, и при этом ты не можешь использовать специфику твоей базы не опускаясь до уровня сырого SQL, то это плохая ORM.

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

    Нормальные ормки я пока видел только:
    1. В C# из-за Linq
    2. В Rust из-за макросов.
    Ответ написан
    8 комментариев
  • Как правильно удалить эти коммиты?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    git revert

    1. Получаешь изменения
    2. Выполняешь git revert последовательно для каждого коммита в обратном порядке (т.е. с конца к началу), либо git revert --no-commit HEAD~10..
    3. Коммитишь это
    4. Пушишь


    т.е. примерно так

    git pull
    git revert HEAD~10..
    git commit -m "revert: newbie master push"
    git push


    Вот тут есть подробнее
    Ответ написан
    Комментировать
  • Как сделать strconv.Atoi с проверкой на ошибки, если первая переменная уже инициализирована?

    axifive
    @axifive
    Software Engineer
    Т.е. a, b не напишешь уже через :=

    Просто объявить var err1, err2 error выше, как и a, b
    Ответ написан
    Комментировать
  • Что означает запись [4]byte в языке Go?

    @calculator212
    а как понять, то что перед типом указано - [4] ?
    В го конкретно в данном случае это будет частью типа, по сути это означает, что массив (именно массив а не слайс) - это отдельный тип, который представляет из себя последовательность из 4 элементов.
    Массив считается отдельным типом сам по себе, т.е. [4]byte, [3]byte, []byte это три разных типа.
    Ответ написан
    1 комментарий
  • Что по операционным системам лучше подтянуть Go разработчику?

    @rPman
    Так как вопрос общий и не конкретизирует будущую работу и выбор ОС, то настоятельно рекомендую почитать про сети и типовые конфигурации, с ними больше всего работы и она универсальна, для любой ОС.

    Следующий кандидат на изучение IPC (Inter Process Communication), мультипоточность, синхронизация, семафоры, мьютексы и т.п. Можно полистать про пайпы, они по разному работают в разных ОС т в каком то смысле это одновременно и сети и IPC.

    До кучи - работа со временем, не совсем ОС но она чуть чуть может отличаться от ОС или выбранного фреймворка.

    Ну и совсем голая практика - работа с GUI, базовые отличия и особенности (например почему в linux GUI это сервер, или почему в windows, 'схватив' заголовок окна мышкой, можно поставить на паузу стартовый поток).

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

    Ocelot
    @Ocelot
    12В не считается опасным для человека, но защита лишней не будет. Можно по сигналу с датчика закрывать мосфет в цепи питания. Но под напряжением останется всё до этого мосфета, и есть вероятность, что он откроется снова через утечку на затвор через воду.

    Если хотите упороться по безопасности, поставьте управляемый предохранитель (triggerable fuse, self-control fuse, https://www.eaton.com.cn/cn/en-us/catalog/electron...). В идеале он должен находиться прямо в аккумуляторной сборке.
    Ответ написан
    Комментировать
  • Как в VS Code, быстро создать HTML шаблон?

    @inzor Автор вопроса
    ! и затем нажать enter, или ! и затем мышкой выбрать вариант emmet. Так получилось.
    Ответ написан
    1 комментарий
  • Как на GO из консоли считать нажатие стрелок на клавиатуре?

    В Go можно использовать пакет "github.com/eiannone/keyboard" для считывания нажатий клавиш с клавиатуры, включая стрелки. Пакет keyboard позволяет легко обрабатывать события нажатия и отпускания клавиш и читать нажатые клавиши с помощью функций-обратных вызовов.

    Вот пример кода, который считывает нажатие стрелок с клавиатуры:
    Код

    package main
    
    import (
        "fmt"
        "os"
    
        "github.com/eiannone/keyboard"
    )
    
    func main() {
        // Инициализация пакета клавиатуры
        if err := keyboard.Open(); err != nil {
            panic(err)
        }
        defer func() {
            _ = keyboard.Close()
        }()
    
        fmt.Println("Нажмите стрелку влево, стрелку вправо или Esc для выхода...")
    
        for {
            char, key, err := keyboard.GetKey()
            if err != nil {
                panic(err)
            }
    
            if key == keyboard.KeyArrowLeft {
                fmt.Println("Стрелка влево нажата")
            } else if key == keyboard.KeyArrowRight {
                fmt.Println("Стрелка вправо нажата")
            } else if key == keyboard.KeyEsc {
                fmt.Println("Выход")
                break
            }
    
            if char == 'q' || char == 'Q' {
                fmt.Println("Выход")
                break
            }
        }
    }



    Этот код открывает консоль и ждет нажатия стрелки влево, стрелки вправо или клавиши "Esc" для выхода. Когда нажата соответствующая клавиша, выводится соответствующее сообщение, и программа продолжает ожидать новых нажатий клавиш. Если нажата клавиша "q" или "Q", программа также завершается.

    На MacOS можно использовать пакет "github.com/nsf/termbox-go" для считывания нажатий клавиш с консоли, включая стрелки. Этот пакет предоставляет набор функций для работы с терминалом, включая считывание нажатых клавиш.

    Код

    package main
    
    import (
    	"fmt"
    	"log"
    	"os"
    
    	"github.com/nsf/termbox-go"
    )
    
    func main() {
    	err := termbox.Init()
    	if err != nil {
    		log.Fatal(err)
    	}
    	defer termbox.Close()
    
    	fmt.Println("Нажмите стрелку влево, стрелку вправо или Esc для выхода...")
    
    	for {
    		switch ev := termbox.PollEvent(); ev.Type {
    		case termbox.EventKey:
    			switch ev.Key {
    			case termbox.KeyArrowLeft:
    				fmt.Println("Стрелка влево нажата")
    			case termbox.KeyArrowRight:
    				fmt.Println("Стрелка вправо нажата")
    			case termbox.KeyEsc:
    				fmt.Println("Выход")
    				os.Exit(0)
    			}
    		}
    	}
    }



    Этот код использует пакет termbox-go для инициализации терминала и считывания событий клавиш. В цикле он ожидает нажатия стрелки влево, стрелки вправо или клавиши "Esc". Когда нажата соответствующая клавиша, выводится соответствующее сообщение. Если нажата клавиша "Esc", программа завершается с кодом выхода 0.
    Ответ написан
    2 комментария
  • Почему структура Golang работает не корректно при подключение в другом файле?

    includedlibrary
    @includedlibrary
    Потому что это приватное поле. Приватные поля начинаются с маленькой буквы, публичные - с большой. В рамках пакета вы можете обращаться к приватным полям структур этого пакета, но в других пакетах не можете этого делать
    Ответ написан
    Комментировать
  • При установке "pip install pyinstaller" выдает ошибку. Что делать?

    @maximsemin23
    Напиши pip install wheel, а потом уже pip install pyinstaller
    Ответ написан
    Комментировать
  • Почему меняется работа RWMutex в зависимости от его расположения в коде?

    @Wirusnyy-chel
    У вас в обоих случаях mutex защищает только от одновременной записи и чтения из переменной. Фактически порядок вывода не зависит от этого мьютекса, можете убедиться в этом если запустите исполнение несколько раз или добавите разные слипы в горутинах чтения и записи.

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

    Как упражнение на mutex могу предложить следующее:
    Задать структуру с двумя переменными: где значение первой переменной зависит от второй. Если параллельно обновлять и читать значения можно увидеть следующее:
    Без мьютекса чтение может иногда возвращать несогласованное значение между переменными.
    С мьютексом значение при чтении будет всегда согласованным.

    P.S. В вашем примере для синхронизации переменных достаточно обычного мьютекса. RWMutex будет полезен если читателей больше одного.
    Ответ написан
    4 комментария
  • Есть ли курсы по Go наподобие JavaRush?

    @nakem
    gotour https://go.dev/tour/welcome/1
    Это обязательно для прохождения
    Ответ написан
    Комментировать
  • В чём разница между fmt.Scan и fmt.Scanln, между fmt.Print и fmt.Println?

    @igor6130
    ln означает "добавить в конец строки символ перехода на новую".
    Ответ написан
    Комментировать
  • Для чего в go.mod добовить зависимости если мы указываем полный путь к ним в коде?

    Для указания версий этих зависимостей. Чтобы бралась не последняя версия, а указанная. Обеспечивает повторяемость релизов и стабильность.
    Ответ написан
    Комментировать
  • Как в golang заменить текст в консоли?

    @humoured
    Вы всё на свете найдёте в коробке с карандашами
    Для этого существуют управляющие символы.
    Вот тут описание: https://gist.github.com/fnky/458719343aabd01cfb17a...
    Обновление данных одной строки легко сделать вручную через \x1B[K (ESC + erase line), но есть и готовые модули: https://github.com/gosuri/uilive или даже https://github.com/c-bata/go-prompt
    Ответ написан
    1 комментарий
  • Какую операционную систему поставить?

    @Drno
    идешь на сайт производителя ноутбука, ищешь свой ноутбук
    смотришь есть ли там драйвера под винду, если да - ставь
    Ответ написан
    3 комментария