
Maxim robox
16.01.2016
11:37:41
Мигрировал на postgresql на локальном сервере.

Artem
16.01.2016
11:38:52
не проще как-то так?
with open(sys.argv[1], encoding='u8') as f:
blob = TextBlob(f.read())
sentences = [len(sentence.words) for sentence in blob.sentences]
with open('out.csv', 'w', encoding='u8') as f:
csv.writer(f).writerows(sentences)

Sharkus
16.01.2016
11:39:57
Не, это слишком понятный код.
Надо обфусцировать.

Google

Artem
16.01.2016
11:40:04
вот-вот

Pavel
16.01.2016
11:41:03
TextBlob?

Artem
16.01.2016
11:41:22
хорошая либа, рекомендую

Pavel
16.01.2016
11:42:36
если брать хорошие либы для лабы, то можно старшекурсниковские скрипты в виде либы оформить.

Sharkus
16.01.2016
11:43:16
Ага, тогда все лабы будут вида
print(sdelat_zaebis(x))

Pavel
16.01.2016
11:43:29
мечта..

Whore Amazing
16.01.2016
11:46:27

Sharkus
16.01.2016
11:47:15
С другой стороны, с этим питоновским олл-инклюзив оно зачастую оказывается чем-то в этом роде, по сравнению с каким-нибудь махровым паскалём.

Maxim robox
16.01.2016
11:47:18
Я когда курсач делал, то не заморачивался с гуём для софтины. Она просто генерила результат в несколько png и csv файликов. Я при преподе запускаю скриптец, а она догнать не может, как так, программа без интерфейса. Ну я для наглядности грохнул все файлы в каталоге вывода, перезапустил скрипт, он заново их сгенерил. Препод поверила.
Я потом понял, что с тем же успехом можно было не делать все эти вонючие расчёты на питоне, а просто завернуть готовые результаты и скриптом делать cp в каталог с выводом. xD

Sharkus
16.01.2016
11:47:50
Ну да, простые манипуляции, лишь бы прокатило.

Pavel
16.01.2016
11:48:35
кто не делал otvet=123 далеко справа за границей экрана, тот лабы не сдавал.

Sharkus
16.01.2016
11:49:59
Помню, когда жене диплом писали, её научрук выдал ей коды предыдущих проектов на эту тему, на базе которых нужно было собрать что-нибудь рабочее, до кучи дописав ещё много всякого. "Кэширование" базы было реализовано в основном из них просто офигенно: при старте программки она тупо запихивала все данные из бд в оперативку. Оперативки тогда было в среднем 1-2 гб, база весила раза в два больше. Почему-то тормозило. :)
(Я уж молчу про метод кратосрочного прогнозирования, где было много-много кода, а потом незаметный небольшой рандом от начальных значений поперёк всего.)

Google

Sharkus
16.01.2016
11:51:19
В общем, пришлось переписывать это говно нормально. :(

Maxim robox
16.01.2016
11:51:55
У меня есть ListView, который выдаёт 150 элементов. Страница рендерится 8 секунд на джанго-дев сервере. Это нормально?

Pavel
16.01.2016
11:52:10
пока да, скоро ты узнаешь про select_related

Maxim robox
16.01.2016
11:52:21
У меня с запросами всё ок.
prefetch_related

Pavel
16.01.2016
11:52:34
сори, ник проглядел. :(
показалось, что WA

Maxim robox
16.01.2016
11:52:48
xD

Pavel
16.01.2016
11:55:35
Тормозит рендер в шаблонах или браузере?

Maxim robox
16.01.2016
11:56:20

Pavel
16.01.2016
11:56:42
смотри в debug_toolbar, где аномалия..

Maxim robox
16.01.2016
11:56:54
SQL — 4 запроса за 10мс.
Итого рендерилось 8 секунд. Больше я не вижу, что тут можно посмотреть.

Pavel
16.01.2016
11:57:18
прежде всего, sql но ты говоришь, что ок.
внешних запросов нет из кода?

Maxim robox
16.01.2016
11:59:13
Неа.
Разве что есть статика, которую я тоже через джанго-сервер гоняю.
Статика лежит локально. Но там около 200 картинок.

Pavel
16.01.2016
12:00:00
network monitor в браузере смотрел? f12

Maxim robox
16.01.2016
12:01:15

Google

Pavel
16.01.2016
12:01:31
у тебя там должно быть 201 строка запросов.

Maxim robox
16.01.2016
12:02:25

Pavel
16.01.2016
12:02:44
так где 8 секунд-то набегает? на 200 картинках?

Maxim robox
16.01.2016
12:02:59

Pavel
16.01.2016
12:04:05
в строку запроса страницы тыкни и там справа есть кнопка timing
waiting ttffb 8 секунд?

Maxim robox
16.01.2016
12:04:28
Да

Pavel
16.01.2016
12:04:52
значит тормозит код в жанге.

Maxim robox
16.01.2016
12:05:40
Ну вот мне интересно, это он приемлемо тормозит или нет?
150 элементов всё таки.

terry
16.01.2016
12:06:02

Pavel
16.01.2016
12:08:56

Maxim robox
16.01.2016
12:09:53
значит тормозит код в жанге.
Кажется, разобрался. У меня там в шаблонах include на каждый элемент, а внутри ещё один include.
На каждый уровень вложенности добавляется по три секунды.
Не знал, что нельзя так делать.

Pavel
16.01.2016
12:10:39
всё равно много. покажи settings.template_finder?

Maxim robox
16.01.2016
12:11:10
всё равно много. покажи settings.template_finder?
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'social.apps.django_app.context_processors.backends',
'social.apps.django_app.context_processors.login_redirect',
],
},
},
]
Ты же об этом?

Pavel
16.01.2016
12:11:39
пора мне мигрировать на современную джангу. :(
django_bootstrap при рендере формы на форму дёргает инклюд, а внутри на каждый филд ещё один инклюд. не было просадок никогда.

Google

[Anonymous]
16.01.2016
12:31:44
так так так
а приведите мне полезный пример из жизни с lamdbda пожалста

Artem
16.01.2016
12:32:34
какой-нибудь интересный ключ для сортировки

Whore Amazing
16.01.2016
12:32:52

[Anonymous]
16.01.2016
12:33:04
да??

Kolyann
16.01.2016
12:33:07
отвечаю

Whore Amazing
16.01.2016
12:33:19
?

[Anonymous]
16.01.2016
12:35:00
колян смотри
print filter(lambda x: x % 3 == 0, [x for x in range(1,20)])

Admin
ERROR: S client not available

[Anonymous]
16.01.2016
12:35:09
?
отработало — из скопа брысь! все такое функциональное!

Kolyann
16.01.2016
12:35:37
сраный наркоман это делается через range(0,20,3)
ты чо думал наебать меня этой дешёвой лямбдой?!

[Anonymous]
16.01.2016
12:36:02
довай дорогую лямбду

Kolyann
16.01.2016
12:36:12
не дам
я жадина-говядина

Whore Amazing
16.01.2016
12:36:27
жадина-лямбдина

Kolyann
16.01.2016
12:36:31
у меня все лямбды на работе остались

[Anonymous]
16.01.2016
12:36:41
:(

Whore Amazing
16.01.2016
12:36:48

Google

Kolyann
16.01.2016
12:37:12
есть, на людей бросаюсь

Maxim robox
16.01.2016
12:37:56
student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
sorted(student_tuples, key=lambda student: student[2]) # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

Maxim
16.01.2016
12:41:07
Где мона про лямбды почитать что за звери?

Whore Amazing
16.01.2016
12:41:19
у лутца

Sharkus
16.01.2016
12:41:50
Функции да функции. Можно функцию отдельно заdefить и туда подставить. Но это засирает нэймспейс и вносит кучу необходимости туда-сюда глядеть.

Maxim robox
16.01.2016
12:41:58
Просто однострочная анонимная функция.

Мерлин
16.01.2016
12:42:31

Whore Amazing
16.01.2016
12:43:39
http://tproger.ru/articles/rage-way-of-killing-processes/

Sharkus
16.01.2016
12:43:40
Например:
def f1(x):
return x**2
def f2(x)
return x*(x+1)
opers = {'f1' : f1, 'f2': f2}
и
opers = {'f1': lambda x: x**2, 'f2': lambda x: x * (x + 1)}
Что тебе потом будет проще понять?

Maxim robox
16.01.2016
12:44:40
Лямбду в словарь?

Sharkus
16.01.2016
12:44:48

Maxim robox
16.01.2016
12:46:24

Pavel
16.01.2016
12:46:54
def operation_f1(x):
pass
def operation_f2(x):
pass
opers = {f1:operation_f1, f2:operation_f2}
и тестировать будет проще, и если завтра f1 станет больше, то переписывать меньше.

HAOS 001
16.01.2016
12:47:04
извращенцы

Sharkus
16.01.2016
12:47:38
Аккордеон.

Maxim robox
16.01.2016
12:48:16
Ну и, собственно, несмотря на то, что лямбды можно чему-то присвоить, не стоит этого делать. Для этого есть функции.
Лямбды должны быть анонимными.