spectacular

Aug. 1st, 2017 06:25 pm
juan_gandhi: (Default)
[personal profile] juan_gandhi
Today a candidate, during an interview, said that hashes in Python are represented as 64-bit strings. Well, he's a senior architect at Facebook. That's what he says, of course.

Date: 2017-08-02 02:22 am (UTC)
ppk_ptichkin: (Default)
From: [personal profile] ppk_ptichkin
А он не оговорился? Бывает и такое.

Date: 2017-08-02 02:53 am (UTC)
lev: (Default)
From: [personal profile] lev
а какие в питоне хэши?

Date: 2017-08-02 09:39 am (UTC)
irene221b: (Default)
From: [personal profile] irene221b
Я бы на такой вопрос ответила: чувак, делаешь import hashlib, и не поверишь - любые!

Какие в питоне хеши, надо же.

Date: 2017-08-02 12:50 pm (UTC)
dmytrish: (Default)
From: [personal profile] dmytrish
Если вы про реализацию, то каждый объект имеет право реализовать __hash__() как угодно.

Date: 2017-08-02 01:11 pm (UTC)
dmytrish: (Default)
From: [personal profile] dmytrish
Если вы про стандартную библиотеку, то


>>> hashlib.algorithms_available
{'SHA512', 'SHA', 'sha3_224', 'dsaWithSHA', 'md5', 'RIPEMD160', 'MD5', 'sha224', 'sha3_384', 'sha384', 'sha', 'SHA224', 'SHA1', 'sha1', 'blake2b', 'shake_256', 'whirlpool', 'md4', 'MD4', 'sha256', 'SHA256', 'MDC2', 'SHA384', 'blake2s', 'DSA', 'ecdsa-with-SHA1', 'sha3_512', 'shake_128', 'mdc2', 'dsaEncryption', 'sha3_256', 'DSA-SHA', 'sha512', 'ripemd160'}


– и то, от платформы и билда зависит. Просто так бы не сказал.

Если вы про встроенное хеширование строк в интерпретаторе, то https://github.com/python/cpython/blob/de34cbe9cdaaf7b85fed86f99c2fd071e1a7b1d2/Include/pyhash.h#L133 — тоже зависит.

Так что вы хотели услышать-то? Да, путать строки с числами немного смешно, но почему он сразу пациент?

Date: 2017-08-02 09:25 pm (UTC)
From: [personal profile] yussouf
> хаджимемашьте

а что ето, в самом деле?

Date: 2017-08-03 03:07 am (UTC)
lev: (Default)
From: [personal profile] lev
хаджимемашьте? на каком языке? (явно не питон though)

Date: 2017-08-03 04:01 am (UTC)
lev: (Default)
From: [personal profile] lev
должен был знать?

Date: 2017-08-03 03:06 am (UTC)
lev: (Default)
From: [personal profile] lev
string of bits, вполне законное определение в старые времена.

Date: 2017-08-02 05:00 am (UTC)
From: [personal profile] gb0
Такие же примерно, как везде (если речь о dict).

Date: 2017-08-02 09:04 am (UTC)
dmytrish: (wildcat)
From: [personal profile] dmytrish
64-битные, как это ни странно:


In [1]: '%x' % hash('test')
Out[1]: '201d2fb14dfc27b8'
Edited Date: 2017-08-02 09:17 am (UTC)

Date: 2017-08-02 11:44 am (UTC)
From: [personal profile] gb0
Py_hash_t в большинстве реализаций == unsigned long, а уж что оно там на конкретно есть – то как аллах положит.

>>> print '%x' % 'test'.__hash__()
4dfc27b8

или так:
>>> print '%x' % 'test'.__hash__()
201d2fb14dfc27b8

Date: 2017-08-02 12:52 pm (UTC)
dmytrish: (wildcat)
From: [personal profile] dmytrish
Эм, то есть у одного и того же объекта на 64-битной и на 32-битной машине может быть разный хеш? Нехорошо как-то.

Date: 2017-08-02 04:42 pm (UTC)
punk_floyd: (Default)
From: [personal profile] punk_floyd
именно так
мы столкнулись с этим при портирования кода с 32 на 64 битную архитектуру

Date: 2017-08-02 05:25 pm (UTC)
From: [personal profile] gb0
Все так, разве что младшие 32бита одни и те же в рамках одной и той же (cpython, pypy, etc) реализации.

Ничего сильно страшного, на самом деле.

Date: 2017-08-02 09:24 pm (UTC)
From: [personal profile] yussouf
там еще какие-то приколы с питоновской реализацией хэша были

кажется, он у них принципиально недетерминирован
точнее, детерменирован только для конкретного запуска интерпретатора

Скажите

Date: 2017-08-03 03:33 am (UTC)
From: [personal profile] andy_ivanov
Там хоть порядок бит всегда в одну сторону, или тоже в каждом запуске случаен?
Edited Date: 2017-08-03 03:34 am (UTC)

Re: Скажите

Date: 2017-08-04 07:34 pm (UTC)
From: [personal profile] yussouf
да при чем тут порядок бит?

хэш-value недетерминирован, от запуска к запуску
они его "солят" случайным числом

вроде как боролись с неким security flaw (довольно виртуальным, как по мне) который позволиет ддосить питон-приложения устроив множественные hash-collisions

ЗЫ подробностей не спрашивайте, я не питонист

Date: 2017-08-02 04:25 pm (UTC)
pappadeux: (Default)
From: [personal profile] pappadeux
в хэшлибе все есть, на выбор - от 32битных до ша1 и мд5

Date: 2017-08-02 03:53 am (UTC)
garote: (chips challenge eprom)
From: [personal profile] garote
Facebook: Fake it 'till you make it!

Date: 2017-08-02 04:15 am (UTC)
From: [personal profile] icekane
Ну так проверить наверно несложно?

Date: 2017-08-02 05:43 pm (UTC)
From: [personal profile] icekane
не магистр индийского университета случайно?

Date: 2017-08-02 04:25 am (UTC)
zuka: (Default)
From: [personal profile] zuka
Он видит большое, мелкие детали - удел младших программистов :)

Date: 2017-08-02 04:57 am (UTC)
zuka: (Default)
From: [personal profile] zuka
Принцессы не какают! он на них амброзию и нектар своих бесценных знаний и опыта распространяет. Просто над цветом, вкусом и запахом им еще предстоит поработать.

Date: 2017-08-02 04:57 am (UTC)
From: [personal profile] gb0
Прям строками по 8 байт? Интересно. Хотя вопрос несколько странный, кмк.
Edited Date: 2017-08-02 05:01 am (UTC)

Date: 2017-08-02 09:44 am (UTC)
pbl: (Default)
From: [personal profile] pbl
He meant 64-bit bitstrings.

Date: 2017-08-02 05:27 pm (UTC)
From: [personal profile] gb0
на LE (или BE/LE-flexible) машинах особенно забавные битстринги выходят :)

Date: 2017-08-02 06:22 pm (UTC)
pbl: (Default)
From: [personal profile] pbl
Какая разница, вы ж его не про машинное представление спрашивали, а HLL от эндианнесс арча обычно не зависит. Я, конечно, не знаю, что он там на самом деле думал, и вообще много дивных зверушек скачет по interview circuit. Просто мое исходное предположение показалось мне любопытной гипотезой.

Date: 2017-08-02 06:21 pm (UTC)
cema: (Default)
From: [personal profile] cema
Вообще-то на интервью можно иногда и не такое сказануть.

Date: 2017-08-03 03:38 am (UTC)
From: [personal profile] andy_ivanov
Да. А меня не взяли на ФУПМ. Я на собеседовании сказал, что скорость компьютеров ограничена скоростью света. А сейчас сказал бы, что пространством.
Edited Date: 2017-08-03 03:38 am (UTC)

Date: 2017-08-03 05:49 pm (UTC)
cema: (Default)
From: [personal profile] cema
А вопрос был, чем ограничена скорость компьютера?
cema: (Default)
From: [personal profile] cema
Какого же ответа они ожидали от школьника?
From: [personal profile] andy_ivanov
Это ж физтех. Там искали нестандартно мыслящих. Ну как в Гарварде, или в МТИ. Как я сейчас понимаю, искали тех, кого учить легче. Самостоятельных. Сами научатся. А надо было искать тех, кого учить трудно. Им не соврёшь, приходится объяснять всё сначала. Ну вот например, египетский треугольник (с катетами 3 и 4 и гипотенузой 5м). меряю рулеткой периметр, получаю 15 м. Объясните, почему.
Edited Date: 2017-08-03 07:52 pm (UTC)

Profile

juan_gandhi: (Default)
juan_gandhi

October 2017

S M T W T F S
1 2 3 45 6 7
8 910 11 12 13 14
15 16 17 18192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 18th, 2017 08:33 pm
Powered by Dreamwidth Studios