@proGO

Страница 395 из 1674
Denis
09.01.2017
13:51:51
Либо обратную статистику уровень счастья - яп

Но надо бы еще учесть материальную составляющую

Обратную таким как : яп-зп, яп-вакансий

Ибо что-то фундаментальное в них неверно

Google
Denis
09.01.2017
13:55:09
Яп выбирают от склада ума, и других составляющих, выбирать яп по уровню зп.. ,хм, категорию нуждающихся думаю можно отбросить

Славик
09.01.2017
13:59:53
чем лучше ты знаешь язык программирования, тем больше ты на нем будешь зарабатывать

Славик
09.01.2017
14:00:14
конечный потребитель платит не за выбранные технологии, а за продукт

Denis
09.01.2017
14:00:46
Коммерцию тоже можно отбросить

Phil
09.01.2017
14:00:50
чем лучше ты знаешь язык программирования, тем больше ты на нем будешь зарабатывать
Если бы это работало, я был бы миллионером. Я вон за три дня на java писать стал. В своё-то почтенном возрасте с бременем легаси и ложного опыта

Denis
09.01.2017
14:00:55
Куча опенсорса полезного

Quet
09.01.2017
14:01:55
Vadzim
09.01.2017
14:03:39
И опыт тоже нужен

Quet
09.01.2017
14:07:15
Kirill
09.01.2017
14:08:36
@toby3d интересно, сколько максимум стикеров можно в пак добавить? ?

Google
Phil
09.01.2017
14:12:13
ну это все меняет, извини
за три дня? да конечно меняет

У меня вообще есть только две репы в паблике, кторыми я могу открыто хвастаться. Одна это простейшие тригонометрические функции с точностью 8 знаков после запятой, не больше, на MACRO-11. Это пипец я алгоритмы подбирал. Вторая - на нескольких языках рассчет DNS записи DS. В том числе на двух, которых я не знал

https://github.com/diphost/ds-calc во

Alex
09.01.2017
14:17:11
Народ, пытаюсь закешировать файл и выводить его каждый раз из оперативы. Делаю так, но получаю каждый раз ошибку "invalid argument" func handleSmart() func(w http.ResponseWriter, r *http.Request) { file, _ := os.Open("../templates/smart_multiple.html") return func(w http.ResponseWriter, r *http.Request) { _, err := io.Copy(w, file) if err != nil { log.Println(err) } } }

Alex
09.01.2017
14:18:04
это я уже понял :)

но не понимаю, как оно работает( файл прочитал. Затем отправляю его в w - это моя логика. Помогите понять, как оно на самом деле работает)

Alexei
09.01.2017
14:19:39
логика простая handleSmart вызывается каждый раз при каждом запросе

а не один раз

Alex
09.01.2017
14:20:02
юзаю так: http.HandleFunc("/short/smart", handleSmart())

таки один раз :)

Kirill
09.01.2017
14:20:25
как оно вообще у тебя собралось?

Alex
09.01.2017
14:20:32
а в чем проблема-то?

Alexei
09.01.2017
14:20:42
тебе надо какую-то переменную, в которую до момента старта всосать файлик, а потом просто из нее отдавать данные, если ты хочешь именно файлик закешировать

Alex
09.01.2017
14:20:51
ретурню функцию, которая и встает в handleFunc

Alexei
09.01.2017
14:20:51
глобальную

или принадлежащую структуре

Alex
09.01.2017
14:21:15
не хотел делать глобальные переменные, поэтому и завернул все в замыкание)

Alexei
09.01.2017
14:21:37
хорошо, что голанг - не розетка

Google
Kirill
09.01.2017
14:21:42
естественный отбор работал бы быстрее

Alexei
09.01.2017
14:22:00
Kirill
09.01.2017
14:23:03
и если памяти свободной больше, чем этот файл

Denis
09.01.2017
14:23:34
Он все равно на пейджи делит все

Ось точнее

Ну а если файл больле чем рам

Alexei
09.01.2017
14:24:21
то его все-равно придется читать пачками

Denis
09.01.2017
14:24:22
То его прога ее не прибавит

Denis
09.01.2017
14:24:29
Ага

Alex
09.01.2017
14:25:44
На самом деле, так все работает огонь. Давайте представим, что все норм. Я даже переписал это на глобал варах, только не работает все равно. Ошибка та же: invalid argument. var f *os.File func handleSmart(w http.ResponseWriter, r *http.Request) { _, err := io.Copy(w, f) if err != nil { log.Println(err) } } func createRoutes(db *sql.DB, rootURL string) { f, _ = os.Open("../templates/smart_multiple.html") http.HandleFunc("/short/smart", handleSmart) }

Alex
09.01.2017
14:26:44
в байты?

просто не могу вкурить, зачем тогда нужен io.Reader и io.Writer

с байтами все ок будет

Alexei
09.01.2017
14:27:17
чтобы читать и писать, а не хранить

Google
Denis
09.01.2017
14:27:36
Можешь из байтов сделать ридер

Если очень хочется

Alex
09.01.2017
14:28:04
а таки для чего они нужны? Работают эффективнее?

Alexei
09.01.2017
14:28:18
просто не могу вкурить, зачем тогда нужен io.Reader и io.Writer
ты держишь открытый дескриптор, по сути. а если у тебя их миллионы будут?

Kirill
09.01.2017
14:28:23
Admin
ERROR: S client not available

Denis
09.01.2017
14:28:29
Памятью распоряжаются эффективнее

Alexei
09.01.2017
14:28:36
поэтому я предлагаю людям сперва учить си ???

Alex
09.01.2017
14:28:54
таки если бы были миллионы, я бы не держал

Kirill
09.01.2017
14:28:57
говорю же, жаль, что гошка не розетка...

Alex
09.01.2017
14:29:08
а так он один на весь проект

Alexei
09.01.2017
14:29:47
а так он один на весь проект
вечно открытый файл, из которого ты читаешь, чем это отличается, в сущности, от открытия файла каждый раз для чтения?

Denis
09.01.2017
14:29:54
ioutil.ReadAll

Вроде

Получишь байты

Байты напрямую в респонс

Alex
09.01.2017
14:30:58
да в байты читать не проблема, говорю ж)

интересно было почему не работает напрямую, а мне тут предлагают учить си)

Denis
09.01.2017
14:31:36
Так ответ был получен ?

Google
Alex
09.01.2017
14:32:17
нет)

f, _ := os.Open("...") io.Copy(w, f)

Alexei
09.01.2017
14:32:54
интересно было почему не работает напрямую, а мне тут предлагают учить си)
давай на примере объясню. допустим, что ты любишь кататься в такси по городу, вместо того, чтобы записать номер такси и вызывать машину по потребности - ты за ноздри держишь таксиста вместе с автомобилем, а потом удивляешься почему таксопарк недоволен )))

Kirill
09.01.2017
14:33:06
f, _ := os.Open("...") io.Copy(w, f)
ну зачем ты опять об открытии файла?

Denis
09.01.2017
14:33:17
Ставь nginx, sendfile on;

Kirill
09.01.2017
14:33:18
ты закешировать хочешь, или открывать?

Ставь nginx, sendfile on;
не давай плохих советов

Alex
09.01.2017
14:33:53
да с кешом уже понятно все - конвертирую в байты и храню. а если я хочу просто напрямую послать, то как?)

Quet
09.01.2017
14:33:54
или все же много раз?

Kirill
09.01.2017
14:34:07
Ставь nginx, sendfile on;
после этого начинают вместо правки кода тюнить систему, а потом на язык гонят, типа знатоки прям.

Quet
09.01.2017
14:34:13
если много раз то каждый раз делай open+copy

в хендлере

Alex
09.01.2017
14:34:43
таки не работает.

Quet
09.01.2017
14:35:09
ну выложи код на play

Alex
09.01.2017
14:35:16
ща

Denis
09.01.2017
14:35:23
Так зачем каждый раз вручную открывать

Страница 395 из 1674