• Как организовать общение между приложениями golang на одном компьютере?

    VGrabko
    @VGrabko
    Golang, Php, Js
    unix socket

    Но если юзаете винду то тут только через tcp.
    Вот моя реализация связи https://github.com/v-grabko/Core/wiki/TcpClientServer
    Ответ написан
    Комментировать
  • Как на golang передать видео с веб камеры и звук с микрофона с одной программы на другую и потом в браузере это отобразить?

    @IllusionTurtle
    1) идем в гугл и ищем: "golang video camera"
    -> первая ссылка: https://github.com/blackjack/webcam
    2) идем по этой ссылке там написан пример...
    -> обратите внимание что используется Си и этот вариант только для LINUX

    впрочем есть другой способ использовать opencv(тоже Си) и биндинги через go.
    в любом случае с кросс компиляцией клиентской части будут проблемы.

    далее все проще, берем получаемые данные отправляем на сервер на сервере поднимает веб-сервер который в браузере отображает полученные от клиента данные.

    Подведем итог: важно знать ОС у клиента\пользователя.
    Ответ написан
    Комментировать
  • Как настроить ngnix + go?

    Просто делайте приложение как обычный http-сервер. Через http.ListenAndServe, например. В nginx делаете так:
    server {
        listen       80;
        server_name  MyDomain.ru;
        location / {
            proxy_pass http://127.0.0.1:9000;
            proxy_set_header  X-Real-IP         $remote_addr;
        }
    }


    X-Real-IP нужен, чтобы ваше приложение видело, какой у пользователя айпишник, ибо к приложению всегда будет обращаться nginx. "X-Real-IP" будет одним из заголовков запроса к приложению.
    Ответ написан
    5 комментариев
  • Как не остаться на месте?

    AloneCoder
    @AloneCoder
    [object Object]
    "Ну а здесь, знаешь ли, приходится бежать со всех ног, чтобы только остаться на том же месте, а чтобы попасть в другое место нужно бежать вдвое быстрее." Алиса в Зазеркалье
    Перепишите ваш движок, прокачайтесь, сделайте нормально
    Ответ написан
    3 комментария
  • Как переиспользовать net.Connect?

    @FireGM
    Потому что tcp.Close() закрывает соединение.
    Ответ написан
    1 комментарий
  • Что использовать: IPv4 или IPv6?

    @none7
    У 90% пользователей Интернета и 99% рунета, нет доступа к IPv6(не Teredo). Делать сервера без IPv4-адреса можно только из желания популизировать IPv6 или для личного пользования. Но с другой стороны особых проблем в настройке обоих протоколов нет, если нечем заняться можно добавить и его. Google, Facebook, Yandex, Vkontakte уже добавили, чем Вы хуже?
    Ответ написан
    Комментировать
  • Парсим/грабим веб-страницы без мусора?

    @beatleboy
    Apist - отличная вещь! Позволяет с легкостью парсить страницы, обращайся к элементам в стиле jquery. Пример парсинга Хабра:

    public function index()
    {
    	return $this->get('/', [
    		'title' => Apist::filter('.page_head .title')->text()->trim(),
    		'posts' => Apist::filter('.posts .post')->each([
    			'title'      => Apist::filter('h1.title a')->text(),
    			'link'       => Apist::filter('h1.title a')->attr('href'),
    			'hubs'       => Apist::filter('.hubs a')->each(Apist::filter('*')->text()),
    			'author'     => [
    				'username'     => Apist::filter('.author a'),
    				'profile_link' => Apist::filter('.author a')->attr('href'),
    				'rating'       => Apist::filter('.author .rating')->text()
    			]
    		])
    	]);
    }


    Возвращает данные массивом:
    {
        "title": "Публикации",
        "posts": [
            {
                "title": "Проверьте своего хостера на уязвимость Shellshock (часть 2)",
                "link": "http:\/\/habrahabr.ru\/company\/host-tracker\/blog\/240389\/",
                "hubs": [
                    "Блог компании ХостТрекер",
                    "Серверное администрирование",
                    "Информационная безопасность"
                ],
                "author": {
                    "username": "smiHT",
                    "profile_link": "http:\/\/habrahabr.ru\/users\/smiHT\/",
                    "rating": "26,9"
                }
            },
            {
                "title": "Курсы этичного хакинга и тестирования на проникновение от PentestIT",
                "link": "http:\/\/habrahabr.ru\/company\/pentestit\/blog\/240995\/",
                "hubs": [
                    "Блог компании PentestIT",
                    "Учебный процесс в IT",
                    "Информационная безопасность"
                ],
                "author": {
                    "username": "pentestit-team",
                    "profile_link": "http:\/\/habrahabr.ru\/users\/pentestit-team\/",
                    "rating": "36,4"
                }
            },
            ...
        ]
    }

    Тут подробнее
    Ответ написан
    Комментировать
  • Высокий la но все летает, как это?

    @arakchi
    LA - это, грубо, количество процессов в бывших в статусе R (и не только в нем, например еще значение имеет стутс D) в единицу времени. Т.е. если у Вас есть несколько вялотякущих процессов не нагружающих физические подсистемы сервера то, но при этом не могущих быстро завершиться, например из-за медленного поступления данных по сети, то LA высок, хотя по факту физические ресурсы сервера занружны не будут. Но это не точно и не совсем так, это грубо. И исходя из такой ситуации LA может быть высок, но полезные запросы обрабатываться быстро, т.к. по факту ресурсы есть.
    Как сказал Ян, нормальным считается LA 0.8-1 на ядро. Но в любом случае если поводо к нагрузке нет, т.е. на нормальный (т.е. оптимизированный не тяжелый) сайт заходит пара тройка челоек в день, высокий LA это не нормально и Вы правильно озадачились.
    Тут можно Вам посоветовать, начать смотреть через top, htop процессы в статусе R и D, как я уже упоминал, и найдя такие, просматривать через strace и lsof, что они делают и куда ломятся. Это самое простое, но часто помогает.
    Плюс еще может помочь atop с опцией -r в режиме через кнопку p (вроде, она должна отвечать за суммарное количество ввзванных процессов в промежуток измерения, по умолчанию 10 минут), ибо вдруг процессы быстро запускаются и завершаются, быстрее чем в промежутке обновления top/htop(особенно учитывая, что у Вас wa небольшой). Стоить заметить, что в 5 и 6 центоси atop как демон автоматически не запускается после установки и не добавляется в автозапуск. В седьмой не знаю.
    Ну а вообще, да, это как лечить болезнь по фотографии, без просмотра самого серевера ничего не сказать. Но нвчните с упомянутого, вдруг натолкнёт на дельную мысль.
    Ответ написан
    Комментировать
  • Как PM может помочь Open Source? С чего начать?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Вариант А: на основной работе (только согласовав с высшим руководством) пролоббировать публикацию исходников ПО, которое не влияет на бизнес.
    Вариант Б: включиться в развивающийся проект и там пролоббировать публикацию не бизнесовых подсистем.
    Вариант В: искать команду, которая хочет в OS но при этом без менеджера.
    Вариант Г: начать собственный проект, решающий конкретную бизнес задачу с расчетом на публикацию исходного кода + искать однодумцев.
    Вариант Д: тоже, что и [Г], только не однодумцев, а людей за денюшку.
    Вариант Е: вот вы пользуетесь неким СПО? Если есть идеи как улучшить, замечены ошибки и т.д. - пишите об этом в баг трекер разработчика.
    Ответ написан
    1 комментарий
  • Как PM может помочь Open Source? С чего начать?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    С поиска багов и feature-request'ов. Тем более можно смешивать с изучением кода проектов в частности и программирования в целом.
    Ответ написан
    Комментировать
  • Как работает кэш в Laravel?

    muhammad_97
    @muhammad_97
    PHP-разработчик
    Можно прибавить к ключу идентификаоор пользователя.
    Ответ написан
    1 комментарий
  • Как реализовать drag&drop?

    @Beltoev
    Живу в своё удовольствие
    Копать в сторону гугла по запросу "drag and drop jquery"

    UPD:
    Первый же результат по этому запросу выдает ссылку https://jqueryui.com/draggable/

    Переходим и видим, что задача:
    Причем так, чтобы при перетаскивании блока в контент, он мог упасть либо перед, либо после, либо между уже существующими блоками в контенте

    Уже успешно решается по этой ссылке: https://jqueryui.com/sortable/

    Задача с перетаскиванием в контент показана по ссылке: https://jqueryui.com/droppable/
    Ответ написан
    Комментировать
  • Как правильно объявить переменную, что бы все функции имели к ней доступ?

    uvelichitel
    @uvelichitel Куратор тега Go
    habrahabr.ru/users/uvelichitel
    var session *sessions.Session
    /*-------------------------------------------------------*/
    func checksession() {
        var err error
        session, err = store.Get(r, "infoUs")
        if err != nil {
            http.Error(w, err.Error(), http.StatusInternalServerError)
        }
    }
    Ответ написан
    9 комментариев
  • Как узнать с какого ip пришел запос?

    fastpars
    @fastpars
    https://golang.org/pkg/net/#Conn

    // RemoteAddr returns the remote network address.
            RemoteAddr() Addr


    ln, err := net.Listen("tcp", ":8080")
    if err != nil {
    	// handle error
    }
    for {
    	conn, err := ln.Accept()
    	if err != nil {
    		// handle error
    	}
    	fmt.Println(conn.RemoteAddr()) // <---------------
    	go handleConnection(conn)
    }
    Ответ написан
    Комментировать
  • Почему вместо выпонения команды ищет файл?

    uvelichitel
    @uvelichitel Куратор тега Go
    habrahabr.ru/users/uvelichitel
    Попробуйте
    cmd  := exec.Command("cmd", "/C", "start", "", strings.TrimSpace(c[1]))
    Ответ написан
    Комментировать
  • Как лучше получать деньги из-за рубежа (в т.ч. фриланс) в РФ на 2016 год и дальше?

    Sindorian
    @Sindorian
    Программист
    Есть же PayPal, которым пользуются все буржуи, и который выводит без комиссии в любой российский банк.
    Ответ написан
    3 комментария
  • Велосипед "ORM" для автоматизации. Следует ли продолжать и в каком направлении? Интересно ли?

    Denormalization
    @Denormalization
    Какой-то мозгодробильный синтаксис у where/select/order. Что за наследие брейнфака?
    Я бы побоялся такое использовать. Лишняя скобочка не там, и гг.
    Ответ написан
    Комментировать
  • Скрипт фон паутинка которая двигается под мышью?

    trampick
    @trampick
    Веб-разработчик
    Как на этом сайте?
    seolead.pro

    seolead.pro/wp-content/themes/seolead/js/pollyfill.js сам скрипт.
    <div id="introR" class="super_back"><canvas id="pollyfill-canvas"></canvas></div>

    блок для вывода.
    Ответ написан
    4 комментария
  • Как переслать 10ТБ в Китай?

    dimasmagadan
    @dimasmagadan
    А китайский аналог дропбокса попробовать не хотите?
    Вот эти https://www.weiyun.com/ предлагают 3Тб
    Можно сделать несколько аккаунтов и разбить файлы на части, или заливать по частям.

    Как минимум проблем с скачиванием в Китае с этого сервиса быть не должно.
    Ответ написан
    Комментировать
  • Парсим/грабим веб-страницы без мусора?

    @mik222
    Эта задача называется data region mining и является довольно хитрой проблемой, т.к. верстка может быть везде разной, а вы решаете задачу поиска основного контента на сайте(т.е. обрезать рекламу, навигационные блоки, левые вставки, спрятанный контент и прочее)
    Вот вам на вскидку алгоритм:
    1. Для каждой html ноды в дереве, вычислить её площадь(рендерите через phantom.js и вычисляете площадь через Element.getBoundingClientRect())
    2. Удаляете все, что меньше средней площади на этом уровне. (Вычищаем не имеющие значения блоки)
    3. Спускаетесь вниз на один уровень и повторяете алгоритм


    В результате получите набор текстовых блоков, которые имеют максимальный объем на странице.

    Вам нужно будет эмпирически до настроить алгоритм под ваш use case:
    Например, если перед вами регион с большим количеством текстовых блоков, то достать текст из всех дочерних и уложить в регион(таким образом мы избегаем вырезки bold italic текста).

    Дальше за вами стоит задача объединить эти регионы в статью/статьи(в случае с лентой).
    --------
    Существуют и более любопытные алгоритмы по вычислению попарной similarity между произвольными дочерними нодами с целью найти data region
    Но это вам нужно читать опубликовынные статьи на эту тему, например:
    dl.acm.org/citation.cfm?id=1060761
    Ответ написан
    Комментировать