Задать вопрос
  • Почему не работает регулярка?

    Winsik
    @Winsik
    сис.админ, недопрограммист :)
    А просто написать знак пробела что мешает ? или \s если "любой пробел"
    Regex Tester - Go lang
    Ответ написан
    Комментировать
  • Развертывание web приложения на Go?

    Я тестирую все на локальном сервере под Windows, потом в VirtualBox в Linux Mint собираю для Linux 64-bit.
    Заливаю бинарник и все необходимые файлы на CentOS 7. Там настроен nginx в качестве прокси для отдачи статики.
    Сложности возникли с запуском бинарника как демона. Всякие варианты разбирал примерно день. Остановился на следующем:

    1. Создать файл mysite.service в /usr/lib/systemd/system. Это примитивнейший вариант.
    [Unit]
    Description=MySite HTTP Service
    [Service]
    # Здесь main бинарник GO
    ExecStart=/home/mysite.ru/main
    [Install]
    WantedBy=multi-user.target


    2. Запустить systemctl enable mysite.service
    После изменений mysite.service нужно запускать systemctl daemon-reload

    3. Запустить systemctl start mysite.service

    Всё.
    Прочитать про systemd можно здесь
    www.freedesktop.org/software/systemd/man/systemd.s...
    Ответ написан
    Комментировать
  • Перспективы у языка GO?

    Я считаю, что перспективы у языка есть. Основная ниша Go - веб-приложения. Вместо набора скриптов получается один файл веб-сервер. С этой точки зрения, проводить сравнения, например, с PHP, смысла никакого нет. Тут скорее конкурент node.js.
    Попробуйте для себя решить какую-нибудь задачу на Go и всё поймете. Если не понравится, значит не ваше, а вначале наверняка в языке что-то будет "бесить".
    Ответ написан
    4 комментария
  • Перспективы у языка GO?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    1) Язык - проще некуда. Его собственно и стали разрабатывать как человеческую замену плюсам.
    2) Огромное количество библиотек, любую задачу можно решить на нём уже сейчас.
    3) Скорость и компилируемость.

    Вот поэтому лично я (и не только я, как выяснилось) считаю его лучшим "общим" языком программирования сегодня, именно Go нужно преподавать в школах вместо Pascal. Он прост для понимания и строг как Pascal, и в то же время прикладной, как Python. Вот пруф: Go как первый язык программирования для школьников

    p.s. ответ не топикстартеру, а всем программистам, кто прочитает. Топикстартер явно не программист и не собирается им быть.
    Ответ написан
    5 комментариев
  • Перспективы у языка GO?

    @lavrentiev
    Back-end разработчик
    А мне понравилось, можно выносить трудоемкие процессы на GO. и + кроссплатформенность и все так легко и просто :)
    Ответ написан
    1 комментарий
  • Как правильно сделать удаление комментария?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    При авторизации пишите id пользователя в сессию.
    При комментировании крепите id пользователя к комменту.
    При удалении берете id пользователя из сессии и сверяете его с id пользователя из коммента.
    Если совпадают - удаляете коммент.
    Ответ написан
    6 комментариев
  • Обязательно ли запросы к go проксировать?

    sim3x
    @sim3x
    Стоит
    У nginx больше опыта в таких делах и большая часть проблем с безопасностью уже решена
    Ответ написан
    Комментировать
  • Обязательно ли запросы к go проксировать?

    Владимир, стоит.
    На том же nginx-e вы легко сможете настроить отдачу статики, кеширование запросов, конфигурировать будет проще и не надо будет менять код приложения, ради добавления новых плюшек.
    Касательно безопасности, nginx сможет вам помочь, если вы захотите спрятать код от внешних сервисов ( взлом сервера с nginx, не коснётся сервера с бэкендом ), либо, например, если вас будут атаковать всякие китайцы, то можно без проблем подключить geoIP модуль и настроить фильтрацию по странам ( если китайцы присутствуют на этом ресурсе, то без обид :) )

    Добавлю, что помимо безопасности, установка nginx поможет в будущем, если захотите изменить архитектуру приложения ( добавить несколько бэкендов, настроить балансировку и прочее )
    Ответ написан
    Комментировать
  • Как российскому айтишнику уехать жить и работать в Украину?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Не путайте донбасский регион, где закрылись не IT компании а вообще почти все закрылось, и все остальное. Слушать русское ТВ о ситуации на Украине точно не стоит.

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

    Граждане, которые считают, что в Украине все плохо, видимо пересмотрели телевизор с новостями, сделанными в РФ.
    Война на востоке и жизнь остальной части Украины (особенно крупных городов) - весьма разные вещи.
    Девушка, которой вообще не грозит призыв, избавлена и от этого.
    А вот интернет у нас получше, посвободнее, нет дурацких роскомнадзоров и мизулиных.
    Ответ написан
    8 комментариев
  • MongoDB выбрать из вложенного массива?

    @lega
    Не пытайтесь сделать хитроумные запросы (которые зачастую медленные), часто лучше сделать структуру документа где можно будет легко и быстро доставать данные.

    Например для вашей задачи можно сделать так:
    > db.qtest.insert({
    	date: Date("2013-01-14"),
    	name: "Roma",
    	tags:['python', 'ruby', 'c'],
    	counts: {python: 14, ruby:10, c:4 }
    })

    Поиск:
    > db.qtest.find({tags: 'python'}, {date: 1, name:1, 'counts.python':1}).pretty()
    {
    	"_id" : ObjectId("55a28f4624db1e49cecbc89f"),
    	"date" : "Sun Jul 12 2015 21:01:10 GMT+0500 (YEKT)",
    	"name" : "Roma",
    	"counts" : {
    		"python" : 14
    	}
    }

    Далее можете сделать индекс по тегам db.qtest.ensureIndex({tags: 1}), и этот запрос будет работать быстро когда коллекция будет большая.
    Ответ написан
    Комментировать
  • Что можно написать на Node.js?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js

    Часто применяется для:

    1. Локальные приложения и утилиты командной строки
    • Сборщики и трансляторы
    • Пакетная обработка и сценарии отложенной обработки
    • Скрипты, CLI (интерфейсы командной строки)
    • Генерация документации, отложенное формирование отчетов
    • Сценарии тестирования для других систем

    2. Серверы
    • Серверы веб-приложений и SPA
    • Серверы и API для мобильных приложений
    • Любые другие веб-API (RPC, JSON, REST)
    • Серверы сообщений и трансляция событий (чаты, игры, интерактив)
    • Заплаты на уже готовые системы, написанные на других языках, для реализации вебсокетов, SSE, лонг-пулинга и т.д., т.е. для затыкания дыр, для решения проблем в узких местах уже работающих систем.

    3. Клиенты
    • Оконные приложения (nw.js, node-webkit)
    • Кравлеры, парсеры и сбор данных

    4. Железо
    • Программирование микроконтроллеров (arduino, espruino, tessel)
    • Промышленная автоматизация

    Редко применяется (но подходит) для:
    • CMS, публикация контента (просто ниша уже занята и в этой задаче нода не дает чего-то принципиально нового или сверх соблазнительного).
    • Массовая электронная коммерция и торговля (не применяется для массовых движков магазинов, но используется отдельными крупными компаниями для торговых и платежных задач в качестве дополнительного средства к уже имеющемуся ПО, по сути закрывает узкие места).

    И плохо подходит:
    • Вычисления и моделирование, со скоростью математических операций нода и JS, как не типизированный язык, не дают хороших показателей
    • Научные приложения (по тем же причинам)
    Ответ написан
    10 комментариев
  • Конвертация PNG в SVG?

    Комментировать
  • Golang: как работает тип func?

    Tyranron
    @Tyranron
    Во втором варианте вроде как так. Чтобы объявить тело функции, нужно использовать ключевое слово func и никак иначе, что разумно по своим причинам. Как минимум, Вам не нужно помнить и держать в голове какая сигнатура кроется за каким типом, когда Вы смотрите на тело функции, то есть для каждого тела функции видно явно что оно должно принимать и возвращать. К тому же, дополнительная гибкость (в данном случае: объявление функции через алиасы типов, а не ключевое слово func) - это всегда удар по производительности, в данном случае - вероятное повышении времени компиляции, а для разработчиков языка это один из главных факторов, потому они очень и очень придирчиво относятся ко всем введениям и возможностям компилятора. Вон, от них даже дженериков никак допроситься не могут. Более того, выгода от возможности объявлять тело функции через алиасы типов (type aliases), а не ключевое слово func, крайне сомнительна, Вам так не кажется? К тому же не стоит путать объявление типа и объявление функции. Логично, что всегда сначала должен быть объявлен тип, а потом уже сама функция/переменная/структура, просто синтаксис языка позволяет сократить писанину. А Вы в данной ситуации хотите обойтись только созданием типа. А как тогда будете именовать входные параметры функции при её объявлении, если таковы имеются?

    Выгода же абсолютно такая же, как и при других вариантах применения алиасов типов. В первую очередь - это возможность дополнительного контроля типов.
    Например: Вы разрабатываете библиотеку (свой package) и Вам нужно, чтобы какая-то функция получала на вход только те функции, которые определены у Вас в библиотеке и никакие другие. Тогда Вы создаете алиас типа на сигнатуру функции и делаете его невидимым для внешних потребителей (объявляете с маленькой буквы).
    package mylib
    
    type someFunc func() bool
    
    var (
    	Apple someFunc = func() bool {
    		return true
    	}
    	Dog someFunc = func() bool {
    		return false
    	}
    )
    
    func Consume(f someFunc) {
    	f()
    }

    После этого внешний потребитель не сможет вызвать функцию Consume() передав туда какую угодно функцию, а только те функции, которые Вы ему приоткрыли.
    package main
    
    import "mylib"
    
    func main() {
    	externalFunc := func() bool {
    		return true
    	}
    	
    	mylib.Consume(externalFunc) 	// fail
    	var extF mylib.someFunc		// fail
    	
    	mylib.Consume(mylib.Apple)	// success
    }

    Таким образом, обвязав свою библиотеку дополнительным контролем типов, Вы добились желаемого результата.
    Во вторую очередь - это возможность сделать код более читаемым. Например, у Вас где-то есть достаточно громоздкая сигнатура и её нужно использовать во многих местах, чтобы не писать одно и то же много раз, Вы пишете сигнатуру только при объявлении функции и создании алиаса, а потом жонглируете алиасом.
    Ответ написан
    1 комментарий
  • Как решить проблему с примером для golang goroutines?

    q1t
    @q1t
    play.golang.org/p/J0tgsi0U_E
    проблема была в вводе( может в песочнице не поддерживается ) а может и не в этом, но этот пример рабочий, на локальной машине выполнится корректно.

    в первом варианте для верности можно синхронизировать гоуртины, и тогда результат будет предсказуем.
    Ответ написан
    Комментировать
  • Как работать с PayPal в Украине?

    fanex
    @fanex
    В одностороннем порядке платить с украинских карт можно спокойно. Получать деньги на карту — никак, только для возврата денег.

    Нужна карта с CVV2, можно даже что-то виртуальное, типа той же Visa Virtual в приватбанке.
    Подключаешь к paypal, делаешь проверку — с твоего счета списываются 1.95 доллара (при первой же покупке они вернутся). Теперь тебе нужна выписка из банка (ну или через интернет-банкинг смотришь), ищешь платеж что-то типа PAYPAL*1234. Эти четыре цифры вводишь в соответствующее поле на сайте paypal.

    Ах, да, не забудь узнать в банке насчет лимита на платеж по карте. Иначе могут быть ненужные сюрпризы.
    Ответ написан
    Комментировать
  • Как работать с PayPal в Украине?

    nazarpc
    @nazarpc
    Open Source enthusiast
    У меня Visa Internet от ПриватБанка (в Приват24 бесплатно оформляется виртуальная карта) — легко подключается, работает без проблем.
    Ответ написан
    3 комментария
  • Поможете оценить сроки проекта?

    light204
    @light204 Автор вопроса
    Спасибо всем за ответы, вы все действительно очень помогаете мне. Правда, не понятно, за что так активно минусуют?
    Ответ написан
    3 комментария
  • Поможете оценить сроки проекта?

    AleksDesker
    @AleksDesker
    Все зависит от уровня разработчиков и слаженности команды в общем. Про дизайн говорить не буду, опыта не много, разработка тянет на 100 часов для профи в одно лицо, для слабеньких программистов без отдельного архитектора получиться где-то по 1000 на каждого + 400 на обсуждение и сопряжение кода.
    Ответ написан
    1 комментарий
  • Какой дистрибутив Linux выбрать?

    pentarh
    @pentarh
    Fedora или OpenSUSE. ИМХО, наиболее допиленые. С бубунтой мне чет не везло никогда ) как правило, на мажорных апдейтах. Свистелки-перделки это конечно гуд, но мне лично важнее стабильность.
    Ответ написан
    Комментировать