
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

tosh
01.10.2016
12:43:25

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

Dumitru
01.10.2016
12:49:22

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

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
При чем тут это?
Мы играем в "Расскажи рандомный факт про реляционки"?

Alex
01.10.2016
12:54:17

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
а тогда у меня все работает

arisu
01.10.2016
16:58:38

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
сделай класс