@proGO

Страница 408 из 1674
Vladimir
15.01.2017
15:55:09
что делает пакет?
Эксперименты по созданию более быстрых каналов

Там есть в репе описание более подробное

https://github.com/google/fchan-go/blob/master/writeup/writeup.md

Roman
15.01.2017
16:40:03
Я снова про мапы: а зачем их лочить на чтение?

Google
Serge
15.01.2017
16:43:58
А ты код то мутексов почитай

Roman
15.01.2017
16:44:27
Но я пока не понимаю как связаны мьютекс и мап

Kirill
15.01.2017
16:45:54
Я снова про мапы: а зачем их лочить на чтение?
реальная блокировка будет только во время блокировки на запись, в это время чтение происходить не будет, и не будет паники из-за одновременного чтения и записи из/в мапы (-у)

Phil
15.01.2017
16:46:22
Я снова про мапы: а зачем их лочить на чтение?
Чтобы не прочитать ползаписи?

Kirill
15.01.2017
16:46:40
Чтобы не прочитать ползаписи?
не прочитаешь, панику поймаешь

Phil
15.01.2017
16:53:28
Но вообще Серега правильно сказал - надо код пойти почитать. Скажи мне, откуда ты про блокировку чтения, я пойду прочту код. Могу вслух

Пойду замаливать грехи. Я сказал, что @lig11 что-то правильно сказал.

Roman
15.01.2017
16:55:19
Phil
15.01.2017
16:58:54
Вот есть мапа, которую читают/пишут из разных гороутин в разных потоках. Что надо лочить?
https://blog.golang.org/go-maps-in-action судя по всему я прав. если я правильно понимаю басурманский, они говорят, что процесс многошаговый и чтение тоже может покрашиться

Google
Phil
15.01.2017
17:02:03
С Go 1.6+, если ты не залочишь и начнешь беспорядочно читать/писать, рантайм будет принудительно крашить программу

Vlad
16.01.2017
07:14:23
Доброго утра есть алиас на тип type ID int64 Как его проинициализировать?

Maxim
16.01.2017
07:15:28
В коде пакета os я обнаружил назначение константы в таком виде: ModeType = ModeDir | ModeSymlink | ModeNamedPipe | ModeSocket | ModeDevice Как это работает? Я ранее такого не встречал. о_0

Антон
16.01.2017
07:17:30
битовое ИЛИ над константами, которые определены чуть выше

Serge
16.01.2017
07:19:11
The Go Programming Language Specification - The Go Programming Language https://golang.org/ref/spec#Arithmetic_operators

Maxim
16.01.2017
07:19:32
Оу

Окей

Честно - впервые за год такое увидел

Serge
16.01.2017
07:21:12
В коде пакета os я обнаружил назначение константы в таком виде: ModeType = ModeDir | ModeSymlink | ModeNamedPipe | ModeSocket | ModeDevice Как это работает? Я ранее такого не встречал. о_0
Если определить константы степенями 2, то битовое или их объединит в одну константу/переменную, которую потом можно проверять по маске через битовое И

Maxim
16.01.2017
07:22:10
Ага, кажется что-то начинаю понимать.

Serge
16.01.2017
07:22:20
Честно - впервые за год такое увидел
Ну, такое бывает. Со временем подобных вещей становится всё меньше и меньше. Это называется "опыт"

wuzzapcom
16.01.2017
08:22:14
Всем привет Можно попросить у вас помощи с раскуриванием Rest API? В общем я хочу написать кусок кода, который будет, например, пользоваться ulr shortener`ом от гугла Без библиотек-оберток и прочего, чисто на http протоколе Нагуглить какой-либо вразумительный гайд, который отвечает на мои вопросы, я не смог, читать код гугловской библиотеки-обертки тоже непросто, потому что он сгенерирован автоматически и потому что они используют пачку внешних библиотек, а для понимания хочется только стандартной библиотеки го В общем было бы очень мило, если бы кто нибудь написал простую функцию, которая делает именно это - берет библиотеку http, нафигачивает туда заголовков нужных(или создает json), отправляет его по апи, потом получает обратно ответ, читает(или распарсивает json) и выводит ответ

Daniel
16.01.2017
08:29:22
погоди

во-первых, таких примеров полный интернет

во-вторых, заходить надо от задачи, а не от реализации

и, в-третьих - тебе точно нужен рест?

Roman
16.01.2017
08:30:59
dypa
16.01.2017
08:31:02
"В общем было бы очень мило, если бы кто нибудь написал простую функцию" за много $$$ как я понимаю?

Google
wuzzapcom
16.01.2017
08:31:28
Ну я не очень хорошо владею гуглом, это да :D Ну вот у меня есть задача - заюзать вот эту штуку и получить короткую ссылку https://developers.google.com/url-shortener/v1/getting_started И если я не ошибаюсь, то это должен быть рест, разве нет?

Roman
16.01.2017
08:31:28
Просто все делают рест потому что хайп

wuzzapcom
16.01.2017
08:32:47
Я на этом предположении и сделал предположение, что это тоже рест :D

Просто все делают рест потому что хайп

Вообще если кто нибудь скинет ссылочку на статью с примерами чего то похожего, или просто на код, то тоже будет классно Я пока столкнулся с несколькими проблемами - по http запросу, состоящему из ключа авторизации и longUrl, мне возвращается ошибка(такую структуру взял из гайда гугла) Если делать на самом го, то не очень понятно, как разворачивать вложенную структуру ответа сервера через newDecoder

Daniel
16.01.2017
08:49:12
не надо срезать углы

надо сесть и разобраться

Судзумия
16.01.2017
09:02:29
Хайп на рест прошёл лет так десять назад

Daniel
16.01.2017
09:02:44
не прошел, похоже

Phil
16.01.2017
09:06:40
Вы так говорите, как будто бы это плохо. Вот хайп на xmlrpc это был пиздец

Daniel
16.01.2017
09:08:11
а я вот не согласен

я тут поизучал вынужденно вопрос, и ответственно заявляю: по сравнению с xml все остальные форматы - недоформаты

Судзумия
16.01.2017
09:10:27
xpath -- дар богов

Daniel
16.01.2017
09:11:27
и, кстати, у go штатный парсер xml очень адекватный

прям вот как я люблю

Phil
16.01.2017
09:18:10
я тут поизучал вынужденно вопрос, и ответственно заявляю: по сравнению с xml все остальные форматы - недоформаты
Нет Бога кроме SGML и XML Пророк Его, да благославит его IBM и приветствует. XML формат иньересный, но в подавляющем числе случаев нечитаем и перебор шо пипец. Ну и парсеры, парсеры )) У RPC еще и своих загонов хватает

Roman
16.01.2017
09:18:33
Хайп на рест прошёл лет так десять назад
не прошёл. приходит человек у которого в резюме написано REST. спрашиваешь: "а что это?" - и человек не может ответить.

Google
Phil
16.01.2017
09:20:52
не прошёл. приходит человек у которого в резюме написано REST. спрашиваешь: "а что это?" - и человек не может ответить.
потому что это как облака в некотором смысле абстракция ))) которой строго на самом деле никто не придерживается

Daniel
16.01.2017
09:20:58
ну не совсем так

Phil
16.01.2017
09:21:31
ну не совсем так
не Пророк ? )))

Roman
16.01.2017
09:22:13
Phil
16.01.2017
09:23:33
Я в 2002 году пися, пиша, разрабатывая панель управления петерхоста почему-то решил делать шаблоны страничек на XSLT. Книжки в магазине перепутал и купил про SGML. Не дочитал, она была дурацкая, я вообще ее выбросил. Но звто я знаю такое слово и откуда уши растут

проблема в том, что человек про это не может рассказать ничего.
слушай, люди с nginx путаются и с префорками php, а ты пол REST. есть некие соглашения, они помнят, что делали что-то с частью этих соглашений, пишут в резюме. ты не поверишь, бывают еще "кодеры", и это даже считается не так плохо

DreamingKitten
16.01.2017
09:41:29
протобуферы наше фсё

Admin
ERROR: S client not available

Судзумия
16.01.2017
10:24:36
особенно для бинарных данных, или там, типизированных
Бинарные деревья представляются и в xml. Думаю, человек не утверждал об эффективности формата :)

Alexey
16.01.2017
12:26:25
Тебе больше не придется искать себе заказы и общаться с клиентами, мы сделаем это за тебя! Заполни анкету и жди сообщения от наших менеджеров с пометкой #ROCKETECH https://job.typeform.com/to/I5QJ3e

i
16.01.2017
12:35:10
Работа в typeform?

dypa
16.01.2017
12:36:27
нет конечно, мелкая студия решила набрать удаленных гребцов по цене меньше рынка

i
16.01.2017
12:39:35
если это ROCKETECH, то портфолио у них на лэндинге не айс

Maxim
16.01.2017
13:17:38
Продолжая историю со своей файлопомойкой...

Короче, я юзаю Bolt для хранения данных о файлах. Ужал всю запись до одной пары: FileID=OriginalFileName Ежеминутно прохожусь пакетом filepath.Walk по директории с файлами и проверяю свойство "дата изменения" файла. Если время "дата изменения + 24 часа" меньше текущего времени, то файл удаляется после удаления записи в БД.

Вопрос теперь как мне отдавать файл нормальным именем, если я его сохраняю при загрузке с переименовыванием в его уникальный ID для исключения случайной перезаписи.

Google
Maxim
16.01.2017
13:22:49
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition
Ну, у меня Gin сейчас используется и там только context.File("filepath")

И, как бэ, если файл ещё существует, то он открывается внутренностями в браузере, а не предлагает куда-то его сохранить.

DreamingKitten
16.01.2017
13:25:13
ну так для этого диспозиция и нужна

она может зафорсить сохранение, даже если браузер думает что смог бы отрендерить контент на себе

Maxim
16.01.2017
13:26:15
Хм... Как бы тогда это имплементировать через Gin...

Maxim
16.01.2017
13:38:49
Ага, нашёл c.Header(key, value). Т.е., мне нужно вбить: c.Header("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", file.Name))?

DreamingKitten
16.01.2017
13:39:30
похоже на то

DreamingKitten
16.01.2017
13:45:37
ничо страшного, партов в мультипарте может быть даже один )

Maxim
16.01.2017
13:59:08
Serge
16.01.2017
13:59:49
ну все равно, можно обеспечить уникальность пути с сохранением имени файла средствами fs

Maxim
16.01.2017
13:59:52
а кто мешает сохранять его в путь ".../.../<id>/<filename>", а лучше научить nginx отдавать по урлу ".../.../<id>/<filename>" файл ".../.../<id>"
И мне под каждый файл свою директорию пилить? Как-то не очень. И "шагать" по ним... Meh

Serge
16.01.2017
14:00:29
Maxim
16.01.2017
14:01:14
зачем шагать? ты список файлов показываешь?
Я через filepath.Walk() Сейчас исследую что внутри директории файлов

Serge
16.01.2017
14:01:20
Maxim
16.01.2017
14:01:47
почему не ты владелец сервака?
Потому что денег нет.

Serge
16.01.2017
14:01:59
ой всё. какой-то клуб костылей в условиях ограниченных возможностей...

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