
Alexandr
12.01.2017
12:15:35
бля и тем нет
грустно

Dmitriy
12.01.2017
12:15:55
Темы ненужны
Вот ютабчик воспроизводить без браузера это круто!

Google

Dmitriy
12.01.2017
12:16:39
А то пока жирнолис очнется

Alexandr
12.01.2017
12:16:45
да

Igor
12.01.2017
12:29:16
бля и тем нет
они ему не нужны, он просто по умолчанию не выглядит как говно :3

Bandikoot
12.01.2017
12:33:47

Igor
12.01.2017
12:37:59
я два-три дня настраивал IDE чтобы его тупо скомпилить, потому что в репозитории/проекте не указаны все зависимости и/или неактуальный код

V
12.01.2017
12:38:23

Igor
12.01.2017
12:38:38
можно, https://rink.hockeyapp.net/apps/c55f5e74ae5d0ad254df29f71a1b5f0e/

V
12.01.2017
12:39:01
о, пасиб. а там что-то стоящее есть? проблему с бектиками не пофиксили?

Igor
12.01.2017
12:39:13
не пофиксили :))))) и хуй знает когда пофиксят, заебало уже
щас бета от стабильной не особо отличается
но и не падает обычно

V
12.01.2017
12:40:04
эх, вот реально единственное что бесит

Google

V
12.01.2017
12:40:19
у апсторной версии один плюс - автоапдейт
или у беты своя апдейтилка есть?

Igor
12.01.2017
12:42:34
99% софта не из апстора апдейтится через спаркл
он существовал, существует и будет существовать :3333
переживет этот ваш ссаный апстор, отвечаю!

V
12.01.2017
12:43:08
))))

Johnnie
12.01.2017
12:43:30

Igor
12.01.2017
12:43:34

V
12.01.2017
12:43:41
3333

Igor
12.01.2017
12:43:44
а
гггг

V
12.01.2017
12:43:59
коннектимся за автоапдейтами на 3333!

Igor
12.01.2017
12:44:03
мы с друзяшками сервер майнкрафта подняли на :33333 специально из тех же соображений

Letalis
12.01.2017
12:45:20
не могу понять:
a1 = [1,4]
a2 = [43,2]
def merge(l, r):
result = []
i = j = 0
while i < len(l) and j < len(r):
if l[i] < r[j]:
result.append(l[i])
i += 1
else:
result.append(r[j])
j += 1
result += l[i:]
result += r[j:]
return result
почему он просто соединяет 2 списка, не сортируя элемнты в них по порядку? по идее итог должен быть: [1, 2, 4, 43], а у него получается: [1, 4, 43, 2]

Dmitriy
12.01.2017
12:46:26
Гм

Johnnie
12.01.2017
12:46:42
>>> a = [1, 2]
>>> b = [3, 4]
>>> c = sorted(a + b)
>>> c
[1, 2, 3, 4]
:)))

Letalis
12.01.2017
12:47:12
это и так понятно что есть такая функция, да

Igor
12.01.2017
12:49:50
a1 = [1, 4]
a2 = [43, 2]
def merge(l, r):
result = []
i = j = 0
while i < len(l) and j < len(r):
if l[i] < r[j]:
print('l[i] < r[j],', l[i], '<', r[j], '; adding l[i] to the result; i++')
result.append(l[i])
i += 1
else:
print('l[i] >= r[j],', l[i], '>=', r[j], '; adding r[j] to the result; j++')
result.append(r[j])
j += 1
print('appending to result: l[{}:] == {}'.format(i, l[i:]))
result += l[i:]
print('appending to result: r[{}:] == {}'.format(j, r[j:]))
result += r[j:]
print('result:')
print(result)
return result
merge(a1, a2)
первые два раза у тебя срабатывает
result.append(l[i])
добавляя в result первые два элемента - 1 и 4

Google

Igor
12.01.2017
12:50:45
и потом после цикла срабатывает
result += r[j:]
добавляя 43 и 2

b0g3r
12.01.2017
12:53:34
Игорь няша

Letalis
12.01.2017
12:55:06
Все понял, спасибо.

Yan?
12.01.2017
12:55:45
Игорь няша
Бай зе вей
Что можно быстро на джанго накидать, чтобы в резюме засунуть?

v
12.01.2017
13:01:19
Блог, как обычно

Dmitry
12.01.2017
13:01:53
помогите разобраться с json.dump, пожалуйста. Есть такой код:
def create_stoplist_file(url=stop_list_url):
with open('stoplist.json', 'w', encoding='utf-8') as stoplist:
data = requests.get(url)
stoplist.write(json.dumps(data.text, sort_keys=True, indent=3, ensure_ascii=False))
return print('returned:', stoplist)
Вот кусок входящего json:
{"stopList":[{"deliveryTerminalId":"12a0eeeb-c76c-3ada-014d-ff5b68ad160f","items":
Вот то, что в файл записывается:
"{\"stopList\":[{\"deliveryTerminalId\":\"12a0eeeb-c76c-3ada-014d-ff5b68ad160f\",\"items\"
Как поправить то, что пишется в файл?

Igor
12.01.2017
13:02:21
у объекта Response в requests есть метод json() если чо
а, у тебя там куча всего происходит - sort_keys, indent, ensure_ascii, сорри
погоди, а как ты проверяешь то, что записывается в файл?

Dmitry
12.01.2017
13:05:44
смотрю в файл

Igor
12.01.2017
13:06:03
из питона? или в стороннем текстовом редакторе?

Dmitry
12.01.2017
13:06:21
в редакторе

Igor
12.01.2017
13:07:00
сорри еще раз ))

Dmitry
12.01.2017
13:07:25
если взять stoplist = data.json(), то все нормально декодируется, но в файл не пишется, т.к. write() не используется

Denis
12.01.2017
13:07:26
json.dumps(data.json попробуй

Igor
12.01.2017
13:07:49
а, я понял
да, че-то я трижды туплю :))

Denis
12.01.2017
13:08:01
Потому что text это просто строка

Google

Igor
12.01.2017
13:08:03
data.text - это строка

Dmitry
12.01.2017
13:08:22
спасибо!

Ivan
12.01.2017
13:14:05
Парни, а вот как быть в данном случае - лежит в папке файлик, питон сгенерировал его ранее (скриншот, например), и нужно мне ссылку на скачивание сделать - что порекомендуете? )
только не хочу никуда заливать в облака, прямо с сервера
Я так понимаю, что нужно какой-нибудь веб-фреймворк запускать

Igor
12.01.2017
13:15:39
веб-фреймворк нафиг не нужен для раздачи статических файлов
подойдет любой веб-сервер, nginx например

Denis
12.01.2017
13:15:59
Кидаешь его в статик твоего веб-сервера, если он есть
А если нет, в библиотеке питона есть простой сервер

Igor
12.01.2017
13:16:21
если хочешь обойтись самописным питоном, то можешь посмотреть в сторону SimpleHTTPServer ))
во :)

Ivan
12.01.2017
13:16:37
Так, nginx, окей. Тоже подойдёт. А как будет выглядеть ссылка? http://ip_сервера/путь/до/файла ?

Igor
12.01.2017
13:16:52
можно так, можно хоть http://ip_сервера/жопа/говно/путь/до/файла
можно просто http://ip_сервера/имяфайла.png

Ivan
12.01.2017
13:17:44
Окей, спасибо) NGINX полез изучать.. )

Igor
12.01.2017
13:23:27
т.е. питон генерирует файлик и кладет, например, в папку /opt/http/screenshots/
а конфиг nginx'а (/etc/nginx/sites-enabled/screenshots, например, если убунта) в таком случае будет примерно такой:
server {
listen 9999;
root /opt/http/screenshots/;
}
тогда файл /opt/http/screenshots/screen1.png будет доступен по http://ip-сервера:9999/screen1.png
только убедись, что у питона есть права на запись в папку /opt/http/screenshots/, а у nginx есть права на чтение туда же
(грубо говоря, можно chmod -R 755 /opt/http/screenshots/ сделать)
или 644

Denis
12.01.2017
13:24:56
На папку лучше всегда +x ставить

Google

Igor
12.01.2017
13:25:01
во, спасибо

Bandikoot
12.01.2017
13:28:17

Dmitry
12.01.2017
13:28:24
как сравнить 2 jsonа? Моя логика такая:
1) json.load оба файла
а вот дальше не могу одуплить что делать.
суть вопроса такая: В одном json стоп-лист:
"items": [
{
"balance": -11.0,
"productId": "66fb5fc5-8615-4074-85b6-d00ee3969fa9"
},
{
"balance": 0.0,
"productId": "a22f7552-0f91-45f2-a95f-c0b0816b2e37"
},
в другом json заказы и тоже "items" каждого заказа. Задача сравнить позиции из стоплиста с позициями в заказах, и если они совпали, то вывести сообщение.

Denis
12.01.2017
13:29:21
wat
http://unix.stackexchange.com/questions/21251/execute-vs-read-bit-how-do-directory-permissions-in-linux-work

Bandikoot
12.01.2017
13:32:15
но всё же первый коммент к топ ответу

Dmitry
12.01.2017
13:34:34
это понятно. Вопрос в коде. Делать через:
for i in json1:
if i['items']['balance'] == 0 and i['items']['productId']:
for j in json2:
if j['items']['productId'] == i:
...
так?

Bandikoot
12.01.2017
13:35:09
целиком оба json'а же можно
ну или jsonN['items']

Denis
12.01.2017
13:36:07
Обычно всякие такие сравнения делаются проще, чем вложенными циклами
Но без примера двух жсонов ничего сказать не могу
Для каждого заказа нужно определить, есть ли он в стоплисте?

Dmitry
12.01.2017
13:54:46
у каждого заказа внутри есть товары('items') с уникальным id. Нужно понять, есть ли этот товар в стоплисте. Если есть и значение "balance" <=0, то нужно вернуть номер заказа в котором находится товар
Эта группа больше не существует