Slava
вы понимаете что если мы ответим что 2+2=4, вы скажите "хаха - лохи, в только не в системе исчисления с основанием N" 🙂
Моя задача не завалить или поднять своё самомнение, а отобрать нормальных программистов
Dmitry
гребцов на галеру
Slava
им гребцы на галеру нужны видимо
Вообще-то нет. Нам нужны люди, которые не юлят, а четко понимают задание или уточняют, если не поняли
🏁Александр
мы и немного уточнили 🙂
Dmitry
ты мог уточнить только тип идентфикатора! спросил что то другое - не программист!
🏁Александр
2 + 2 = 11 если что
🏁Александр
если основание 3 🙂
саша
Хоть что можно уточнять
Ну вот я уточняю - какую проблему вы хотите этим решить
Slava
Пассивно агрессивные люди тоже не проходят, к счастью
Dmitry
Ну вот я уточняю - какую проблему вы хотите этим решить
не сметь думать ! пиши по тз и не выебывайся !
Slava
Ну вот я уточняю - какую проблему вы хотите этим решить
Есть диапазон цифровых идентификаторов, из них надо выдавать эти самые идентификаторы и возвращать их же обратно в пул
Slava
не сметь думать ! пиши по тз и не выебывайся !
У нас здесь стараются не матерится
Dmitry
хорошо, я постараюсь
Aleksandr
генерить без оглядки на коллюзии?
коллюзия. пять джунов этому господину.
🏁Александр
*Коллизия
🏁Александр
но мы уже дошли до предметного спора? 🙂
саша
Есть диапазон цифровых идентификаторов, из них надо выдавать эти самые идентификаторы и возвращать их же обратно в пул
RBTree для занятых идентификаторов, незанятый выбирается рандомно и проверяется на вхождение в дереве. Все это обернуть мьютексом. Самый простой вариант. Если нужно что-то более сложное и эффективное, то стоит покурить то, как устроены современные аллокаторы памяти, тот же jemalloc, например.
саша
Вообще многое зависит от того, сколько всего идентификаторов в пуле и сколько из них будет в среднем занято.
саша
Опять же, если это 128 битный int, то смело можно просто рандомно выдать и не хранить у себя что там занято, а что нет.
Slava
Это тоже кандидат должен рассказать
Slava
Какие плюсы и минусы
🏁Александр
Нет, к сожалению нужно трекать, так как диапазон настраиваемый
генерим случайные id и кладем их в небуфиризированный канал 🙂
🏁Александр
забранные считаются занятыми
🏁Александр
изи катка!
Slava
Канал ))
Slava
Может хоть queue?
🏁Александр
а что есть какие то скрытые условия? 🙂
🏁Александр
вы же сами сказали сделать решение в ваакуме
саша
генерим случайные id и кладем их в небуфиризированный канал 🙂
> гочат > канал > вместо очереди/btree/heap'а Почему я не удивлён?
🏁Александр
поясните вашу мысль более развернуто
саша
Не раз уже в этом чате встречал сообщения, где предлагалось вместо нормальных структур данных и алгоритмов использовать горутины/каналы
🏁Александр
давайте вы сделаете "как правильно", а потом померим? 🙂
babelby
народ, а кто как функциональные тесты на го пишет?
Dmitry
короче самое простое решение (без тредсейва) - выдавать идешники увеличеные на единицу(последний ид хранить), при возврате идешника помещать в лист. при выдаче вначале брать из листа по порядку.
🏁Александр
Может хоть queue?
и да я вкурсе что это приведет к блокировкам 🙂
🏁Александр
но я специально довел до абсурда реализацию
🏁Александр
мы можем завести переменную типа int и увеличивать ее 🙂
🏁Александр
мутекс тормоз!
🏁Александр
только атомик
Dmitry
ну тут уэе вариации, поэтому и не стал писать тредсейв
саша
только атомик
А мутекс это что такое по твоему?
🏁Александр
мутекс это надстройка над атомик
🏁Александр
она уже по определению будет тормознее
Maksim (Ellrion)
О пречистый уже и сюда добраться)
🏁Александр
предлагаю новый холивар
🏁Александр
использовать ли defer для коннектов в бд 🙂
🏁Александр
ну с одной стороны - да надо, но с другой стороны если 1 коннект на все приложение (да я знаю что там пул) то пофиг
🏁Александр
1 строчку в main экономим 🙂
Dmitry
о-оптимизация
🏁Александр
вот если мы хедлере или еще где "на лету" бд создаем - без вариантов
🏁Александр
загадим просто базу открытыми соединениями
Alexander
атомик!
спинлок!
Alexander
холиварить, так по полной
🏁Александр
fight!
Petr
уже во флуде подрались бы
babelby
Люди, как функциональные тесты на го писать?
Aleksandr
Гугл чё сказал?
🏁Александр
ээм
Slava
до и после Go
Alexander
до и после Go
можно вместо =)
ThunderAL
для серверной части приложения надо скринить страницу сайта в определённом разрешении без вывода звука на устройство. подскажите, как реализовать это на go. надо скрин страницы с указанным user-agent и, возможно, кукисами и с определённым разрешением. а так как у моего сервера есть колонки я бы не хотел, чтобы звуки страницы туда попадали. таркет: ос windows
rakachun
первая ссылка в гугле https://github.com/benbjohnson/phantomjs#rendering-web-pages
ThunderAL
@smuzi4 а у него есть вункция "подождать загрузки страницы, подождать 30(или минуту) сек и скринштонуть"? ибо приложения на spa не всегда выглядят как надо сразу после загрузки страниц
rakachun
да наверняка ты можешь просто это сделать слипом
ThunderAL
и будут ли работать такие вещи как анимации, всякие плейеры итп.
Alexander
@smuzi4 а у него есть вункция "подождать загрузки страницы, подождать 30(или минуту) сек и скринштонуть"? ибо приложения на spa не всегда выглядят как надо сразу после загрузки страниц
да, такая возможность есть, можно подождать до загрузки какого-то определенного тега например и делать скин, ну на крайняк - слип
Alexander
если речь про сайт - то да, слайдеры и прочее работает
ThunderAL
да. например: кликнуть на кнопку, подождать и заскринить
Alexander
такое возможно
rakachun
phantomjs умеет кликать