

Alexey
16.03.2019
20:47:45
А мы все также слабы в алгоритмах на бумажках
Так получается что умение решать задачки на бумаге "магическим" образом мапится на умение решать описанные ниже проблемы.
Про наши реальные задачки. Зачем нужно знать алгоритмы.
Могу рассказать про то чем занимается моя группа. В соседних группах проблемы другие, но сложность задач не ниже.
Внешне предметная область кажется достаточно простой: https://habr.com/ru/company/yandex/blog/428972/
Но кроме поддержки особо сложных сценариев, есть много технических проблем: https://habr.com/ru/company/yandex/blog/429956/
Часть проблем:
1) даннные/события нужно обрабатывать near realtime. В мире это называется Stream Processing. Даже если вам это не нужно, все равно полезно почитать https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying
2) обработка событий завязана на состояние. Текущее состояние + событие -> новое состояние + результирующие события. Для старта можно почитать здесь: https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101 и https://www.oreilly.com/ideas/why-local-state-is-a-fundamental-primitive-in-stream-processing. У нас используется много хитрых техник кеширования в памяти. Чаще всего LRU кеши с восстановлением состояния при необходимости.
3) данных достаточно много. Тысячи пре/посткоммитных проверок в день. Сотни тысяч сборок и тестов * кол-во поддерживаемых платформ.
Здесь можно использовать различные техники сжатия. Например словарь int -> int можно очень хорошо сжать, если сортируем пары key-value по ключам, далее считаем дельты, затем zigzag encoding для значений, затем varint.
и т.д.


Dark
16.03.2019
20:47:57

Pavel
16.03.2019
20:48:15
какие-то требования к решению предъявляются? если нет, бери shapely и вперед :)

Google

Pavel
16.03.2019
20:50:39
или тебе bounding box'ы пересекающихся групп нужны (картинка на это намекает)

Dmitriy
16.03.2019
20:51:37
Хочу начать внедряться в питон.
Какая иде лучше полноценная visual studio или pycharm?
Главные требования это отладка, intellisense

Dark
16.03.2019
20:54:19

Deep Sea
16.03.2019
20:54:31

Pavel
16.03.2019
20:57:03
я плохо объясняю) надо как на картинке
ну смотри. если с нуля делать, тебе нужно:
1. выделять группы прямоугольников, которые пересекаются
2. находить для них ббоксы
есть библиотека shapely, в которой этот функционал есть.
но вообще это совершенно базовая геометрия и её несложно написать самостоятельно

oche somali yoba
16.03.2019
20:58:39
В дополнение к своему вопросу выше: сейчас есть идея обнаружить горизонтальные разделительные линии и нарезать изображение на фрагменты, заключенные между их парами, а только потом уже нашинковать строки на ячейки. Вопрос в том, как это можно сделать, если а) изображение слегка повернуто и б) справа/слева от большинства горизонтальных линий есть вайтспейс.

Dmitriy
16.03.2019
21:01:01
pycharm
в чем у него преимущества по сравнению со студией? Мне он показался очень тормазнутым

Alex
16.03.2019
21:06:58

Danylo
16.03.2019
21:08:06
Он сам сохраняет твой код, если пишешь на питоне то на PyCharm е удобнее

Alex
16.03.2019
21:08:19

Danylo
16.03.2019
21:08:45
?

Google

Alex
16.03.2019
21:09:01
PyCharm в целом более заточен под питон, имеет вагон и маленькую тележку инструментов для решения сопуствующих задач.

Pavel
16.03.2019
21:09:05
sublime text тоже все это может (правда не из коробки)

Илон
16.03.2019
21:09:17
Господа , кто-нибудь может подкинуть бд с расширением sqlite/db поиграться

Alex
16.03.2019
21:09:18
Из VSCode можно сделать IDE не сильно хуже, кому что больше нравится.

Илон
16.03.2019
21:09:48
Данные лень искать
Есть kaggle

Danylo
16.03.2019
21:09:57
И да он не тормозит, просто «разыгрей» его

Alex
16.03.2019
21:10:11

Илон
16.03.2019
21:10:18
Но , я хочу что-то оторванное от ML

Alex
16.03.2019
21:11:11

oche somali yoba
16.03.2019
22:01:31
Вот существенно более простой вариант моей сортировки: что характерно, результат он дает аналогичный выложенному выше
def sort_contours_2d(cnts):
cnts = sorted(cnts, key=lambda c: (cv2.boundingRect(c)[0], cv2.boundingRect(c)[1]), reverse=False)
return cnts
Поскольку таблица может быть смещена, иногда n-я ячейка какой-либо колонки имеет более высокое значение y-координаты, чем n-я ячейка другой колонки и сортировка вклинивает ее в чужое место.
Можно ли как-то составить трехмерный colmns такой, что вызывая columns[n][m][p] мы получим p-й параметр m-й ячейки n-ного столбца? Выше я уже пытался написать такой код, но он, похоже, не работает.

Nikolay
16.03.2019
22:59:42

Tishka17
16.03.2019
23:14:38
Первый раз слышу

Владимир
16.03.2019
23:23:14

Tishka17
16.03.2019
23:31:18
Я думаю где-то в два- три раза медленнее
Хотя это такая мелочь на общем фоне

Владимир
16.03.2019
23:35:22
А за счет чего ускорение? В тройке же переработали словари, чтобы меньше занимали памяти как раз в ~3 раза.

Google

Tishka17
16.03.2019
23:36:35

Владимир
16.03.2019
23:39:41

Tishka17
16.03.2019
23:39:48
Да
Одна или две
Это предположение

Kopyl
17.03.2019
02:48:52
Какой SSH клиент посоветуете на iOS?

Гейб
17.03.2019
05:03:54
Здравствуйте, у меня не работает Windows form в Visual studio на Iron python, что делать?

Проксимов
17.03.2019
05:45:08

Kopyl
17.03.2019
05:45:19

Проксимов
17.03.2019
05:45:26

Kopyl
17.03.2019
05:45:45
Или я чет не расчехлил?(

Проксимов
17.03.2019
05:46:06
Там фичи некоторые платные, втч сфтп

Aragaer
17.03.2019
05:58:03
8)

Kopyl
17.03.2019
06:20:30

Проксимов
17.03.2019
06:35:47

Kopyl
17.03.2019
06:36:04
Да
Спасибо :)
Тогда вопрос снят))

Проксимов
17.03.2019
06:36:06
Там и SSH ключ сохраняется

Kopyl
17.03.2019
06:36:36

Google

Dark
17.03.2019
06:45:14
matches: = [array([ True, True, True, True])]
if True in matches: name = "Match"
The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
добавляю all или any - говорит что аргумент не найден

sickboi
17.03.2019
06:59:22
Делаю форк одной либы, появилось несколько вопросов: как мне быть с копирайтом, могу ли я залить доделаланную мной либу для установки через pip?

hachiman
17.03.2019
07:08:05

Nikolay
17.03.2019
07:08:56
у битка есть лицензия?

?? Eugene
17.03.2019
07:09:04
Зависит от лицензии. Если никакой лицензии нет - лучше не связываться если планируешь развивать либу

sickboi
17.03.2019
07:09:09
# Copyright (c) 2009-2018, Mario Vilas
# All rights reserved.
Как минимум, там есть такое. И ещё много текста внизу

?? Eugene
17.03.2019
07:09:14
Если есть - смотри что она позволяет

Nikolay
17.03.2019
07:09:29

?? Eugene
17.03.2019
07:09:39
Копирайт - это не лицензия =)

sickboi
17.03.2019
07:09:49
А где можно лицензию посмотреть?

?? Eugene
17.03.2019
07:10:05
ну в исходниках, или в документации

sickboi
17.03.2019
07:10:29
В каком формате она должна быть?
__license__
- это оно?

hachiman
17.03.2019
07:10:42

Nikolay
17.03.2019
07:10:59
???

sickboi
17.03.2019
07:11:48
LICENSE.md
Такого нет. Но мне всё равно хотелось бы допилить одну фичу, которую я потом использовал бы в своем проекте

hachiman
17.03.2019
07:12:14