Опишу два варианта. Первый - когда заголовки и фотографии прибиты намертво к отзыву:
1. все отзывы хранятся в одном файле в формате CSV
2. выглядят так:
title1:photo1:comment1
title2:photo2:comment2
title3:photo3:comment3
3. каждая строка - это объект, каждый объект разделённый одним из спец-символов содержит сразу и заголовок и комментарий и фотографию. Разделитель может быть любым, обычно это :, ::, |, || или что-то вроде того
4. делаем один rand() и достаём нужную строку. Функции для изучения file_get_contents, explode
Вариант второй - всё тоже самое только в файле titles.csv:
title1
title2
title3
В файле comments.csv:
comment1
comment2
comment3
В файле photos.csv:
photo1
photo2
photo3
Как вам работа файнридера под linux? Использую OCR Tesseract как простой вариант подключения к своему софту. Для распознования часто приходится ресайзить изображение в больший и меньший размер что бы получить что-то полезное. Зато удобно и просто. С обучением под консоль пока не заморачивался, но в планах есть.
insekt: интересное замечание, спасибо. Обязательно посмотрю когда буду работать с сетевым стеком поближе. На самом деле иногда про FPGA читаю, но на практике пока нет подходящих проектов.
insekt: юзерспейс по определению медленней для таких операций, потому что происходит как минимум 1 или даже два (не помню точно) обязательных копирований из пространства ядра и обратно.
Можно ведь сделать модуль который подгружается динамически, без перекомпиляции ядра - вполне себе решение. Агрегировать данные и отправлять их уже дальше в юзерспейс для последующей бизнес-обработки.
В общем удачи с решением, расскажите что и как делали:)
www.opennet.ru/opennews/art.shtml?num=41846 В рамках проекта jvm.go развивается вариант JVM, написанный на языке Go
Есть вероятность что и многими любимую Java перепишут на Golang. PHP7 - это ведь по сути тоже переписаный движок PHP, переход на phpng который запилил всего один человек, показал, продемонстрировал прирост скорости и все подхватили. Не важно кто и на чём пишет - важно то что индустрия приходит к пониманию унификации алгоритмов как таковых. Написал стоющий алгоритм? Отлично - он должен работать на любых языках эффективным способом.
abcyu: У Вконтакте около десятка или чуть менее того сервисов написаны на Go, в основном только то что пишется новое, но и старое немного затронули (из видеодокладов месячной или около того давности). По большей части интересен их пример с Push для уведомлений (в основном за счёт большого количества операций).
У Facebook понятия не имею что они там на нём пишут, последний раз общался с ними в 2014том на YaC и разговоров о Golang не было вовсе, но это не значит что они его не используют. Вместо того что бы задавать вопросы - лучше бы поискали на них ответы в общедоступных источника.
Посмотрите есть ли на Golang что-нибудь вот тут https://github.com/facebook или может быть вот тут что-нибудь https://code.facebook.com/projects/
Вообще не понимаю почему вы мне этот вопрос задали? С какой целью? Доказать что Golang не состоятельный или что? Общая тенденция такова что почти все в своих проектах смотрят на то что бы такого переписать на Golang что бы задействовать его многопоточность. Были новости о том что MongoDB часть своих подсистем переписывает на Golang, было это ещё с пол года назад, наверняка что-то уже в коде поменяли.
Хороший код не всегда пишут только на одном лишь Golang. Есть отличные проекты которые написаны на Си, со своей экосистемой, особенностями, часть из применённых там алгоритмов вполне можно перенести в проекты на Golang и получить желаемое. Работы много, в этом и хорошо. Потому что есть чем заняться. И от вас это уже не зависит. Нам (программистам которые пишут на Golang) всё и так ясно - это новый Си со своими особенностями и пару лет не стоит ожидать какого-то другого вектора всеобщего направления, будь то Rust или D или что-то ещё в этом плане.
Если умеете программировать - беритесь. Если не знаете при этом Python и думаете стоит ли он вообще того что бы на нём писать, то вот вам пара аргументов:
1. больше половины всех библиотек и программ для машинного обучения (используются в том числе и в больших интернет-магазинах) написаны на Python.
2. так же там достаточно низкоуровневых возможностей как по кластеризации так и по распараллеливанию задач, не плохая производительность.
abcyu: разве там не написанно причин почему ссылаюсь?:) Потому что вопросов не было бы по отношению к start-stop-daemon и другим подобным приложениям:)
abcyu: да проблема была в том что вы не компетентны в вопросе и судите, вам это даже v- smerti указал назвав вас троллем. Для тех кто хоть немного в курсе как вообще этот механизм (демонизация) работает изначально (в Си если угодно) таких вопросов как у вас не возникает, тем более подозрений о которых вы говорите:)
abcyu: :) А вот сами дойти до этого почитав о том что такое start-stop-daemon не могли?:) Я уже не говорю о том что бы взять и почитать его исходный код... что бы не было причин с кем-то спорить.
abcyu: похоже вы действительно троль. И так, ликбез для вас:
1. да, Golang приложения запускаются точно так же как и все остальные
2. да, я использовал это в продакшине, так же использую supervisord для аналогичных целей если требуется перезапуск в случае возможных падений
3. start-stop-daemon просто делает по сути exec любого приложения что требуется запустить как демон, переходит сам в режим демона и отвязывается от консоли
4. любая демонизация по своей сути:
- это запуск дочернего процесса
- отвязывание дочернего процесса от текущего (основного) процесса
- завершение основного процесса
Иными словами start-stop-daemon и другие подобные софтины работают практически по одному и тому же принципу и сделаны именно для того что бы создавать демоны из любой программы, выполняя лишь одну функцию - отвязка от консоли.
Всё остальное к вопросу не имеет никакого отношения, ни горутины, ни рантайм, ни язык на котором написано приложение.
По медленным соединениям вроде была тулза которая их генерирует и проверяет веб-сервер на прочность. Можно провести тесты nginx vs golang
По поводу gb, жаль что не пошли по пути git.
go init создавал бы каталог .golang и от него бы уже всё плесалось....
Джасур Мирхамидов: Я о том как вы вопросы ставите и не делаете ресёрч. На самом деле напишите потом как что и в каком виде у вас работает. Вдруг будет кому полезно.
Опишу два варианта. Первый - когда заголовки и фотографии прибиты намертво к отзыву:
1. все отзывы хранятся в одном файле в формате CSV
2. выглядят так:
title1:photo1:comment1
title2:photo2:comment2
title3:photo3:comment3
3. каждая строка - это объект, каждый объект разделённый одним из спец-символов содержит сразу и заголовок и комментарий и фотографию. Разделитель может быть любым, обычно это :, ::, |, || или что-то вроде того
4. делаем один rand() и достаём нужную строку. Функции для изучения file_get_contents, explode
Вариант второй - всё тоже самое только в файле titles.csv:
title1
title2
title3
В файле comments.csv:
comment1
comment2
comment3
В файле photos.csv:
photo1
photo2
photo3
Делать 100500 файлов не обязательно.