@ru_python

Страница 1595 из 9768
Aragaer
01.10.2016
12:33:40
и вчера вечером начальница - "Там опять памяти не хватает - добавьте еще семафоров". Я - "Ни в коем случае! Давайте уже использовать нормальный способ"

tosh
01.10.2016
12:33:54
@captainhorse Короче, если ты понимаешь, с чем имеешь дело, и взвешиваешь плюсы-минусы, то для прототипирования не зазорно взять что твоей душе вообще угодно. Но с осознанием, что рано или поздно прототипирование кончится и выбрать нормальную технологию придётся всё равно.

Aragaer
01.10.2016
12:34:27
это если оно вообще выстрелит, конечно 8)

Alex
01.10.2016
12:34:29
Значит лучше не ебать мозги себе и редис использовать только для единственного варианта - {user_name: livesetting}, а всё остальное хранить в монго?

Google
Aragaer
01.10.2016
12:34:55
а зачем сейчас вообще две базы?

или уже есть боттлнек?

tosh
01.10.2016
12:35:08
Классически, редис используется для кеширования, когда уже просто никак не вытянуть специфичный кейс в норм перфоманс

Aragaer
01.10.2016
12:35:23
или "ну надо ж редис, это ж стильно-модно-молодежно"

Alex
01.10.2016
12:36:30
или уже есть боттлнек?
Да вот дело в том что хуй знает. Теоретически есть, но я вообще не имел дела с бд и не имею понятия какая там производительность и что использовать.

tosh
01.10.2016
12:36:34
Если ты только сейчас добрался до баз в принципе, то я бы рекомендовал таки начать с осознания работы реляционок. В них больше всякой тонкоты, и придётся попотеть, но зато этот челленж даст свои плоды потом при работе с любой технологией

Про производительность напомню очень известный факт: при использовании json внутри постгреса, монга сосёт в перфомансе на своём же поле :3

Aragaer
01.10.2016
12:37:49
/me когда-то хранил жсон в скулайте

tosh
01.10.2016
12:38:02
Даже не так. _Даже_ если начать долбиться в жсон, то лучше это делать в постгресе

Aragaer
01.10.2016
12:38:14
правда мне не надо было с ним делать ничего, кроме "полностью прочитать" и "полностью записать"

tosh
01.10.2016
12:38:29
Но если ты не понимаешь, зачем тебе жсон, то скорее всего у тебя классический случай и пора изучать реляционки

Склайт вообще нишевый, но иногда самый адекватный выбор

Google
Alex
01.10.2016
12:38:52
Меня дико подкупает стоимость таких решений и ответ редиса. Технологичненько, прогрессевненько.

К тому же в будущем придется апи-сервис делать, там-то точно нужен редис.

tosh
01.10.2016
12:39:29
нет, не точно

Ну дальше у тебя два пути: купиться на маркетологические выбросы непрофесионнального говна или таки разобраться как оно на самом деле )

Alex
01.10.2016
12:39:40
Даже там? Как так-то?

Но... Редис... Амазон сказал мне что он хорош.... Мемкэш...

tosh
01.10.2016
12:40:17
редис канеш хорош

Поверь, что когда тебе пригодится редис, при наличии мало-мальского опыта, ты поймешь его принцип работы за 20 минут.

Только при необходимости его параллелить тебе придётся посидеть и подумать. Но это вообще отдельная история

Aragaer
01.10.2016
12:41:29
есть же мемкэшд

tosh
01.10.2016
12:41:35
который не нужен

Aragaer
01.10.2016
12:41:44
угу

Alex
01.10.2016
12:41:45
Амазон не сделает за меня слейв сервера редиса?

Мерлин
01.10.2016
12:41:57
Имхо, если не имел дело с бд, и хочется начать, то всё равно надо учить реляционную алгебру и sql, потому что это то, с чем ты будешь работать в 80% случаев. А что касается NoSQL, то там всё равно у каждой хрени все свое и придётся учить с нуля

Aragaer
01.10.2016
12:41:59
ну вобщем когда пригодится, тогда поймешь и прикрутишь

tosh
01.10.2016
12:42:20
Амазон сделает тебе залупу на воротник, скажет что это слейв редиса и оставит ебаться с ним одного

Сам работаю с Амазоном. Лучше ему ваще не доверять лишний раз :3

Повторю, когда ты дойдешь до вопросов масштабирования, должно пройти много времени

Alex
01.10.2016
12:43:06
Не ну я имел дело с бд, на уровне, такблядь, а теперь еще один магазин на опенкарт нахуярю, так блядь, а тут проверка в бд данных, охлел, меня же сейчас хекнут.

tosh
01.10.2016
12:43:13
Если не прошло - ты скорее всего бежишь впереди паровоза )

Google
Alex
01.10.2016
12:45:24
Да, понял. Спасибо, посоны. Буду использовать мемкэш с редисом только если не устроит время ответов реляционной бд.

Bro
01.10.2016
12:48:13
> @x3medima17 Посмотри на Travis-CI > @x3medima17 Там при билде дается код картинки бггг для начала надо еще осилить CI

Alex
01.10.2016
12:48:42
Ну как не устроит, если только бд будет кхуям выбивать от запрсов. Говорят, вордпресс вообще по 250 запросов на один GET выполняет, и ничего, живёт.

Bro
01.10.2016
12:48:47
в монге энтерпрайз есть in-memory storage уже

а в не интерпрайз

можно просто кэш побольше выставить

tosh
01.10.2016
12:49:20
можно просто кэш побольше выставить
И памяти докупить! Ведь она дешевле времени программиста!

Bro
01.10.2016
12:49:31
> @captainhorse Ну как не устроит, если только бд будет кхуям выбивать от запрсов. Говорят, вордпресс вообще по 250 запросов на один GET выполняет, и ничего, живёт. обвешанный плагинами он может и по 1000 делать

все CMS хуярят запросов дохуища

к БД

Alex
01.10.2016
12:50:11
>обвешанный плагинами он может и по 1000 делать Пиздец, а я тут над каждым запросом ебусь.

Bro
01.10.2016
12:50:46
> @the_tosh Повторю, когда ты дойдешь до вопросов масштабирования, должно пройти много времени бля вот я дошел

сижу масштабирую

tosh
01.10.2016
12:51:02
Ну как не устроит, если только бд будет кхуям выбивать от запрсов. Говорят, вордпресс вообще по 250 запросов на один GET выполняет, и ничего, живёт.
Кстати, если интересно, мы вот юзаем редис так: в реляционке куча табличек с разномастными данными. На один из серверов ломятся несколько тыщ запросов, для обработки которых нужно все эти данные из табличек иметь вотпрямщаз. Поэтому раз в пару минут, в редис складывается "сборная солянка" из необходимых данных, и именно с ними работает нагруженный сервер

Эти данные имеют короткий срок жизни (потому что регулярно обновляются) и имеют нефиксированную структуру (функционал нагруженного сервера меняется, поэтому поля в редис-структуре тоже добавляются/удаляются)

Bro
01.10.2016
12:52:41
я думаю в реляционке можно это сделать без редиса

tosh
01.10.2016
12:53:05
Вот чуть опередил тебя и описал, почему не нужно

Bro
01.10.2016
12:53:23
реляционки тоже данные кэшируют

Google
Bro
01.10.2016
12:53:29
есть еще процедуры

хранимые

tosh
01.10.2016
12:53:35
При чем тут это?

Мы играем в "Расскажи рандомный факт про реляционки"?

tosh
01.10.2016
12:54:34
Что значит "сконфигурировать"?

Кстати, пардон, но через 5-10 минут покину вас в лучший мир (пойду бухать)

Alex
01.10.2016
12:55:05
Ну хуй знает, время через которое кэшируется, опрос слейв если мастер не отвечает~

tosh
01.10.2016
12:55:38
Сам редис ничего не кеширует. Это просто хранилище. Какие данные туда попадут и сколько они будут жить решается программно

А слейв/мастер тут вообще ни при чём

Admin
ERROR: S client not available

Bro
01.10.2016
12:56:10
cassandra ftw

Vi
01.10.2016
14:52:41
: sq dup * ;

Bro
01.10.2016
15:29:34
чето смотрю kubernetes жжет

попробую кластер поднять на нем

Subbotin
01.10.2016
16:25:44
Пацаны, чё-то я туплю. Хочу кастомный тип. чтобы вида a=A('ololo') a.b = 1 b = a + '-trololo' а потом print(b.b) выводило 1, а "#".join([a, b]) выводило ololo#ololo-trololo как лучше сделать?

Aragaer
01.10.2016
16:36:25
перегрузка операторов?

ммм... что б такого пожелать. В аду сгореть наверно

но ваще надо что-то вроде def __add__(self, other)

http://blog.teamtreehouse.com/operator-overloading-python

Google
b0g3r
01.10.2016
16:38:16
__add__(self, other) 

И еще __str__ переопределить

Subbotin
01.10.2016
16:45:28
это понятно что __add__. что там писать?

join кстати вызывает не __str__

я пробовал так: class Variant(str): def __init__(self, string): self.str = string def __add__(self, other): self.str += other print(self.str) return copy.copy(self) def __str__(self): return self.str

Aragaer
01.10.2016
16:48:45
join вполне может вызывать __radd__

по крайней мере sum вызывает его

еще есть __repr__

Subbotin
01.10.2016
16:49:34
нифига не работает. джойнится не изменяемое значениее self.str а хранящееся непонятно где первоначальная строка

repr тоже не при том

Aragaer
01.10.2016
16:49:49
короче там тонна всех этих внутренних вещей

Subbotin
01.10.2016
16:50:05
счас попробую __radd__

Bro
01.10.2016
16:50:07
> @mr_tron Пацаны, чё-то я туплю. Хочу кастомный тип. чтобы вида чем меньше такой магии тем лучше. явное лучше не явного. это в фрэймворках можно делать, где 100% test coverage и документация, чтобы не лезть смотреть что же там происходит.

Aragaer
01.10.2016
16:55:50
а у меня джоин ваще отказывается есть что-либо, кроме строк

Subbotin
01.10.2016
16:56:00
мне надо формировать список из таких вариантов. в которые надо дописывать другие строки либо дописывая их к текущим вариантам либо добавляя новые варианты по сложному набору правил. обычно строки меня устраивают всем кроме того что мне нужно хранить и размножать несколько булевых признаков у этих строк. я вот не вижу как явно сопоставить.

Aragaer
01.10.2016
16:56:06
просто заявляет "это не строка, сами конвертните"

Subbotin
01.10.2016
16:56:24
угу. там по этому и есть наследование от str

Sergey
01.10.2016
16:57:45
проверка вот здесь происходит https://github.com/python/cpython/blob/c9d5642f0ef824f63db945a218e8d2c25e9d709d/Include/unicodeobject.h#L471

Aragaer
01.10.2016
16:57:45
а тогда у меня все работает

Sergey
01.10.2016
16:58:41
а вот код самого джойна https://github.com/python/cpython/blob/master/Objects/unicodeobject.c#L9871

Aragaer
01.10.2016
16:58:51
#!/usr/bin/python class C(str): def __init__(self, s): self._s = s def __add__(self, other): return C(self._s + other) if __name__ == '__main__': a = C("test") b = a + "post" print(" ".join([a, b]))

Bro
01.10.2016
16:59:24
сделай класс

Страница 1595 из 9768