
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

Google

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

Serge
25.01.2017
11:43:15

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

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
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 там сдвиг

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

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

Serge
25.01.2017
12:03:32

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

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)]

Dmitry
25.01.2017
12:12:33

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

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

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

Serge
25.01.2017
13:00:24

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

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