
Sergey
20.09.2017
12:31:26
мне больше всего нравится вариант hmac + рефреш + блэклист
ну и jwt как самый простой способ сделать hmac

Dmitry
20.09.2017
12:32:26
В идеале да, думать должен... но просто бывают случаи, когда тема не такая простая, что бы в ней разбираться. Для того же объяснения, почему md5 плох в идеале нужно даже немного в экономику погружаться, так как напрямую на стоимости железа все завязано

Sergey
20.09.2017
12:32:33
а вот смысла юзать oauth я вот лично не вижу пока (если не буду делать что-то где надо третью сторону аутентировать)

Google

Sergey
20.09.2017
12:33:38
как по мне не сложное объяснение зачем нужны медленные алгоритмы хэширования стойкие к перебору на GPU (убивают параллелизм)
а вообще этому в универах должны учить
а то я помню как мы за семестр научились только шифровать на ксорах да rsa запилили

Dmitry
20.09.2017
12:35:57
на примитивном уровне да, а дальше? как подобрать коэффициенты того же bcrypt или argon2

Sergey
20.09.2017
12:49:16
это так сказать "базовый уровень" который должен быть
а как подбирать параметры - вот ты их подбираешь?

Dmitry
20.09.2017
12:50:50
нет ;) ну иногда "на глаз", а так в принципе хотелсь бы понимать баланс между затратами своих серверов и затратами подбора ;)

Vladislav
20.09.2017
13:16:38
https://github.com/bjeavons/zxcvbn-php
К проверке сложности паролей

Sam
20.09.2017
14:04:51
$a = null;
var_dump($a[1][2][3]);
что произойдет?
notice?

Google

Sergo
20.09.2017
14:06:01
а проверить?

Jimm
20.09.2017
14:06:01
null

Sam
20.09.2017
14:08:23
неуловимый баг, сцуко

Eugene
20.09.2017
14:08:29
$a = [0,1,2];
foreach($a as &$v) {}
foreach($a as $v) {}
var_dump($a);
—----------
array(3) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
&int(1)
}

Sam
20.09.2017
14:08:37
проверень на проде

Eugene
20.09.2017
14:08:44
не подскажете почему так?

Sam
20.09.2017
14:09:04
указатель
http://php.net/manual/en/function.reset.php

Dmitry
20.09.2017
14:12:25

Eugene
20.09.2017
14:12:46
попробовал, но не помогло

Aleh
20.09.2017
14:12:58
Или не используй переменные по ссылке

Eugene
20.09.2017
14:13:02
аааа
точно
сделать ансет $v

Dmitry
20.09.2017
14:14:07
угу... такие грабли походу, на которых каждый сам набивает шишку

Eugene
20.09.2017
14:16:22
чорд, вот как с этим бороться я понял, а вот как это произошло не совсем.((

Vladislav
20.09.2017
14:17:50
magic.gif

Dmitry
20.09.2017
14:27:55
после первого цикла у тебя $v - слинкован с последним элементов массива $a. Второй цикл когда присвает значения в $v - по сути меняет значения в последнем элементе массива $a

Борис
20.09.2017
14:30:08

Dmitry
20.09.2017
14:30:38

Google

Eugene
20.09.2017
14:32:18
@miksir ох как все просто оказалось, спасибо Дмитрий!

Борис
20.09.2017
14:34:24
кем написано?
Да каждый ресурс который хочет показать насколько PHP говно упоминает об этом.

Dmitry
20.09.2017
14:35:01
Бред какой-то...
Причем тут логическая ошибка и говно. "C" тоже говно что ли, потому что можно что-то случайно по указателю записать не туда....

Dave
20.09.2017
14:36:39
Анимированная какаха!

Vladislav
20.09.2017
14:37:08
как-то очень категорично
не забывайте ансетить &$val и всё
причем PHPStorm предупредит, если забыли вроде

Sergey
20.09.2017
14:41:52
KISS
и все такое

Dmitry
20.09.2017
14:42:13
логические ошибки допускет не "что-то", а программист

Sergey
20.09.2017
14:42:36
что бы тебе потом не пришлось разбираться "где там этот удод не поставил unset"

Борис
20.09.2017
14:43:05
"Ежики плакали и кололись, но продолжали есть кактусы" Еще раз, если нужно изменить элементы массива( не просто пробежаться с целью чтения, а именно изменить) я для себя сделал выбор. Сегодня unset завтра удалите следующий элемент или добавите елемент в конец массива, и по нему проедет форич, хотя вы этого не хотели
Вот, серега меня понимает :)

Sergey
20.09.2017
14:44:12
это как спор for vs foreach. Суть не в производительности - суть в том что при использовании for надо учитывать our of range и не проиграть с условиями
все разработчики хотя бы один раз за пратику (а на самом деле не раз) ошибались в условиях циклов

Dmitry
20.09.2017
14:44:48
если есть такой регламент - то и проблемы нет, не писать или ставить unset

Sergey
20.09.2017
14:45:00
мы говорим о том что если у разработчика возникают подобные проблемы со ссылками - наша обязанность попросить его больше не юзать ссылки)

Google

Sergey
20.09.2017
14:45:34
и таким образом сделать код чуть-чуть чище

Dmitry
20.09.2017
14:46:21
а мне казалось - наша обязанность объяснить как все работает, что бы он просто понял проблему и уже не делал таких косяков ;)
вместо того, что бы говорить "просто не делай так, пиши array_walk" :)
кстати, array_walk с генераторами работает?

Sergey
20.09.2017
14:47:01

Crazzy
20.09.2017
14:47:13
/stat@combot

Combot
20.09.2017
14:47:13
combot.org/chat/-1001042383571

Sergey
20.09.2017
14:47:17

Dmitry
20.09.2017
14:47:19

Sergey
20.09.2017
14:47:31

Dmitry
20.09.2017
14:47:36

Sergey
20.09.2017
14:48:09
ну клево
и что ты с ними будешь делать?*)
foreach (xrange(1, 100) as &$number) {}
зачем тебе тут может понадобиться ссылка?
вот расскажи мне
если у тебя генератор ссылки возвращает - ну ок, это на клиетский код не влияет
мы говорим про ссылки в контексте обхода коллекций/итераторов сейчас

Dmitry
20.09.2017
14:50:49
откуда я знаю когда мне это может понадобится, когда понадобится, тогда узнаю

Google

Sergey
20.09.2017
14:52:34
пройтись по коллекции и сформировать новую - это дефолт

Dmitry
20.09.2017
14:53:42
п. 2 и 3 подразумевают знания сайдэффектов
а откуда эти знания, если мы будем учить "не делай так, просто не делай"

Sergey
20.09.2017
14:58:59
как минимум начать с того что бы рассказать о том чем плох стэйт и сайд эффекты)

Dmitry
20.09.2017
14:59:22
А особо с замыканиями, которые и не замыкания вовсе. Забыл в use указать нужную или передачу по ссылке там - вот тебе тоже логическая ошибка. Кстати, а как из array_walk выйти из цикла?

Борис
20.09.2017
15:02:27