@spbpython

Страница 264 из 785
GNU/Docker
25.01.2017
11:42:12
Я не понял, в чем же проблема x*x в пузоне.

Serge
25.01.2017
11:42:27
Когда вижу x << 6 Читаю тут "привет, программист, я тоже программист, как дела?"

Dmitry
25.01.2017
11:42:58
Когда вижу x << 6 Читаю тут "привет, программист, я тоже программист, как дела?"
ужас ) Т.е нужно было по бизнес-логике умножить на 64 и ты написал вот это?

Google
Dmitry
25.01.2017
11:43:03
Скажи мне, что ты шутишь сейчас

GNU/Docker
25.01.2017
11:43:23
Приятный в плане реально приятный?)

Я когда вижу, что человек не думая пишет x*x вместо x**2, я просто отхожу в сторону и предвкушаю приятный code review

Eugene
25.01.2017
11:44:48
https://habrastorage.org/files/bb4/93f/153/bb493f153d3346d6941cfc478bf50c12.png

Serge
25.01.2017
11:45:10
Зависит от задачи.
Если там нечто, что просто магическая константа, то её не существует литералом, оно в константах лежит и мы не знаем какое оно. А вот всякие операции преобразования IP адресов, например, там не может быть чего-то, кроме << 8

GNU/Docker
25.01.2017
11:46:27
А, тогда понятно)

Немного двусмысленно прозвучало.

Serge
25.01.2017
11:46:43
https://habrastorage.org/files/bb4/93f/153/bb493f153d3346d6941cfc478bf50c12.png
Немножко перебор, конечно, но почему бы нет:) Камент бы...

Dmitry
25.01.2017
11:47:02
всё что я могу на это сказать

Serge
25.01.2017
11:47:32
CPython - язык макросов для Си же

Google
Eugene
25.01.2017
11:47:35
Это вроде как код Quake "Быстрый обратный квадратный корень в Quake" Картинка из статьи про оптимизацию на хабре

GNU/Docker
25.01.2017
11:50:53
fast_rsqrt

кажется

я пытался понять алгоритм, но не слишком упорно

принцип понял, а реализацию не до конца)

Roman
25.01.2017
11:53:59
Я когда вижу, что человек не думая пишет x*x вместо x**2, я просто отхожу в сторону и предвкушаю приятный code review
In [18]: %timeit x*x 10000000 loops, best of 3: 37.6 ns per loop In [19]: %timeit x**2 10000000 loops, best of 3: 51.2 ns per loop

In [2]: %timeit x*x The slowest run took 108.80 times longer than the fastest. This could mean that an intermediate result is being cached. 10000000 loops, best of 7: 37.3 ns per loop In [3]: %timeit x**2 The slowest run took 295.37 times longer than the fastest. This could mean that an intermediate result is being cached. 10000000 loops, best of 7: 20.2 ns per loop

для pypy

Dmitry
25.01.2017
11:55:38
ну вот да

ты ещё и рискуешь не угадать с этими premature micro-optimizations

Serge
25.01.2017
11:58:13
это вот как раз не так важно, как я с тобой согласен. но x*x - это уже просто рефлекс должен быть

для pypy
это кстати стоит добавить в оптимизации в pypy. можно же тупо ast переписывать для x*x, если у них x**2 быстрее.

Dmitry
25.01.2017
11:59:36
и кстати, а пайчарм не укажет на x * x * x?

Serge
25.01.2017
11:59:38
видимо, потому что там статические типы и для int64 там сдвиг

и кстати, а пайчарм не укажет на x * x * x?
а вот это не факт, что быстрее x**3

Roman
25.01.2017
12:00:11
In [1]: %timeit 65536 » 2 100000000 loops, best of 3: 13.1 ns per loop In [2]: %timeit 65536 / 4 10000000 loops, best of 3: 36.8 ns per loop

это cpython

Serge
25.01.2017
12:00:33
для pypy
попробуй float и bigint

и кстати, а пайчарм не укажет на x * x * x?
здесь mro дважды отработает

Google
Roman
25.01.2017
12:02:45
попробуй float и bigint
In [7]: x = 3.0 In [8]: %timeit x**3 The slowest run took 103.69 times longer than the fastest. This could mean that an intermediate result is being cached. 10000000 loops, best of 7: 87.4 ns per loop In [9]: %timeit x*x*x The slowest run took 71.28 times longer than the fastest. This could mean that an intermediate result is being cached. 10000000 loops, best of 7: 56.9 ns per loop

Roman
25.01.2017
12:06:35
не для куба;) но результат интересный;)
In [12]: %timeit x*x*x*x*x*x The slowest run took 52.91 times longer than the fastest. This could mean that an intermediate result is being cached. 10000000 loops, best of 7: 113 ns per loop In [13]: %timeit x**6 The slowest run took 103.50 times longer than the fastest. This could mean that an intermediate result is being cached. 10000000 loops, best of 7: 87.5 ns per loop

там ещё интереснее ))

Serge
25.01.2017
12:07:09
ну где то же должен был конец этому безобразию придти:)

Roman
25.01.2017
12:08:33
ну где то же должен был конец этому безобразию придти:)
меня больше позабавил вот этот вариант для pypy: In [1]: %timeit 3*3*3 1000000000 loops, best of 7: 1.13 ns per loop In [2]: %timeit 3**3 1000000000 loops, best of 7: 1.13 ns per loop

Serge
25.01.2017
12:08:54
:)

Danil
25.01.2017
12:10:24
на порядок с Cpython

Serge
25.01.2017
12:10:57
мне тут показали в коде последнего проекта x = ("no", "yes")[bool(cond)]

мне тут показали в коде последнего проекта x = ("no", "yes")[bool(cond)]
я даже сначала испугался, что я мог такое написать... думал придется набор употребляемых мной веществ пересматривать:)

Serge
25.01.2017
12:12:50
Dmitry
25.01.2017
12:13:12
ну точнее наверное вообще не нужно представление писать в питоне

вернуть cond as is

а представление вместе с локализацией где-то по-человечески сделать

но это уже так, wild guess

Тимур
25.01.2017
12:14:17
дичь

Serge
25.01.2017
12:15:05
ну точнее наверное вообще не нужно представление писать в питоне
ну, я не понмю что там было, это я тут для понятности написал

но мысль то меня в связи с этим в другом. мне регулярно не хватает reviewer в git. так вот мне рассказали, что есть практика, что мержит ветку её ревьювер с --no-ff

тогда по мержкоммиту можно понять кто не досмотрел:)

Google
Dmitry
25.01.2017
12:18:14
хм, я задумался как это делают гитлаб и битбакет

Serge
25.01.2017
12:18:22
ну типа получается у этой ветки сразу появляется еще maintainer

Dmitry
25.01.2017
12:18:40
должны с --no-ff

Serge
25.01.2017
12:18:50
в гитлабе проверял

а у гихаба же есть теперь rebase в UI, да?

Admin
ERROR: S client not available

Serge
25.01.2017
12:21:20
@nazarov_tech ой, зачем удалил?;)

Dmitry
25.01.2017
12:21:39
не совсем та ссылка

Serge
25.01.2017
12:21:46
ну вполне в тему

это продолжение идеи с rebase

такие люди обычно еще squash любят

Dmitry
25.01.2017
12:22:26
рибейз как-то неудобно через интерфейс должно быть делать

если он с конфликтами, хочется всё же локально

но я не пробовал ещё, если честно

Serge
25.01.2017
12:22:54
рибейз как-то неудобно через интерфейс должно быть делать
подозреваю, что там только безконфликтый проканает

ну вот я предпочитаю руками пользоваться git flow в консоли;)

Dmitry
25.01.2017
12:23:30
я тоже

разве что конфликты удобней в IDE

Eugene
25.01.2017
12:27:41
а у гихаба же есть теперь rebase в UI, да?
Разве? У них появилась возможность конфликты решать при merge.

Google
Eugene
25.01.2017
12:30:58
Если речь об этом https://github.com/blog/2293-resolve-simple-merge-conflicts-on-github

Dmitry
25.01.2017
12:31:28
после такого хочется как минимум тесты прогнать

т.е их прогонит допустим CI, но тогда develop-ветка будет сломанная

Serge
25.01.2017
12:48:30
разве что конфликты удобней в IDE
у меня для этого есть великолепный Meld ;)

GNU/Docker
25.01.2017
12:50:26
magit

Serge
25.01.2017
12:50:27
http://meldmerge.org/
Getting it Meld is packaged for most Linux/Unix distributions, including Fedora, Ubuntu, and Suse. Unless you want the absolutely latest version, you should install Meld through your package manager. Windows users should download the MSI, or for older releases, check out the Meld installer project. On OS X, Meld is not yet officially supported. For pre-built binaries, these OS X builds are the best option. You can also get Meld from MacPorts, Fink or Brew; none of these methods are supported.

GNU/Docker
25.01.2017
12:50:34
для всего есть магит

ухахаха.

Eugene
25.01.2017
12:57:54
https://github.com/blog/2243-rebase-and-merge-pull-requests
Я думал, речь о том, как заребейзить фича-ветку на мастер. Типа обновить её из мастера без обратного мержа

Dmitry
25.01.2017
13:02:12
вот кстати про использование гита очень правильный диалог на собеседовании

(как по мне)

Roman
25.01.2017
13:06:34
https://morepypy.blogspot.ru/2017/01/leysin-winter-sprint-2526th-feb-4th.html

The main topic is Python 3.5 support in PyPy, as most py3.5 contributors should be present.

Andrey
25.01.2017
13:07:18
такие люди обычно еще squash любят
так ты за сквош или против?

Serge
25.01.2017
13:08:57
(как по мне)
ну да, главное только не быть упертым и понимать, что в разных командах могут существовать разные flow. И важнее соблюдать один общий, чем чтобы он был именно твоим любимым.

Страница 264 из 785