@dlangru

Страница 15 из 719
Oleg
13.06.2016
13:05:08
просто для меня сейчас не совсем ясно, как выбрать из коллекции с помощью map

Dmitry
13.06.2016
13:05:45
map!(u=> u.name.canFind("foo")) как то так вроде бы

Eto
13.06.2016
13:05:48
Никак не выбрать. map для трансформации данных.

Oleg
13.06.2016
13:06:10
вот я про тоже

Google
Dmitry
13.06.2016
13:06:17
разве мой вариант работать не будет с map?

Oleg
13.06.2016
13:06:20
нет

от создаст массив из bool элементов

он*

ну не массив

а диапазон

но смысл в этом

Eto
13.06.2016
13:06:51
разве мой вариант работать не будет с map?
Он выдаст тебе массив bool. Что ты с ним дальше делать будешь?

Короче: auto users = usersFromDB.filter!(e => e.login == login && e.pass == pass); if (users.length == 1) { // users[0] — the user we were searching for }

Oleg
13.06.2016
13:08:33
не надо так...

Eto
13.06.2016
13:08:44
Сойдёт для начала.

Oleg
13.06.2016
13:08:55
а то "сейчас сойдёт" и потом тоже "сойдёт"

Eto
13.06.2016
13:08:59
А потом можно посолить пароль. И даже поперчить.

Google
Oleg
13.06.2016
13:09:02
нужно с самого начала делать всё правильно

как минимум стараться

Eto
13.06.2016
13:09:25
Не спорю.

Хорошо. Пример кода, как правильно использовать соль в данном случае?

Oleg
13.06.2016
13:10:01
блин, я вообще веб не программирую))) просто читал)))

но буду, через месяц

так что мне это тоже понадобится

Eto
13.06.2016
13:10:30
Даже, если ты "программируешь веб", то сам пароли ты не солишь.

Pavel
13.06.2016
13:10:31
ну пасс хешируешь через bcrypt и щастье

Oleg
13.06.2016
13:10:59
а в vibe встроенного механизма нет, как я понимаю

?

Eto
13.06.2016
13:11:05
Я не знаю.

Oleg
13.06.2016
13:11:17
кстати, кто чем занимается в общем?

Eto
13.06.2016
13:11:21
Вроде что-то было.

Oleg
13.06.2016
13:11:33
ну в целом, что делаете на D?

Dmitry
13.06.2016
13:11:37
А какой смысл делать все не через if а auto users =usersFromDB.filter! ...

Oleg
13.06.2016
13:12:17
а какой смысл делать через if?

Pavel
13.06.2016
13:12:23
Я только пишу карманные поделки на несколько десятков строк )

Dmitry
13.06.2016
13:12:44
ну через if и сразу флаг какой-то ставить

Oleg
13.06.2016
13:12:45
@chebotarevp ну хоть тематика какая?

Google
Eto
13.06.2016
13:12:53
А какой смысл делать все не через if а auto users =usersFromDB.filter! ...
Вообще, я бы ожидал типа такого кода: auto user = db.getUser(login); if (!user.isNull && user.pass == pass) { // ... }

Pavel
13.06.2016
13:13:08
я backend web dev по жизни

Oleg
13.06.2016
13:13:34
@chebotarevp на D?

Eto
13.06.2016
13:13:46
ну в целом, что делаете на D?
На работе сервер для одного внутреннего проекта делаю. Вернее делал. Сейчас занят на другом проекте с Node.JS.

Pavel
13.06.2016
13:14:36
@chebotarevp на D?
Нет, всякие postgres, rabbit, redis, jenkins, nginx, php

На D пишу в основном поделки по проксированию HTTP или что-то типа этого

Oleg
13.06.2016
13:15:15
ох как я далёк от всего этого...

Pavel
13.06.2016
13:15:50
А чем ты занимаешься?

Oleg
13.06.2016
13:16:27
сам делал раньше графические свистоперделки, сейчас доделал программу для обработки изображения со спутников

радиометрическая коррекция

ну и мелочи всякие, которые помогают моей девушке в работе

Eto
13.06.2016
13:17:24
Так, если не ошибаюсь, соление пароля будет выглядеть как-то так: if (!user.isNull && applySalt(pass, user.salt) == user.pass_hash) Самый глупый и тупой пример applySalt: md5(pass ~ salt). (Так же не правильно производить сравнение хешей через ==. Нужна функция сравнения с константным временем исполнения.)

Pavel
13.06.2016
13:17:34
Ну круто же) А мне вот со временем стали интересны компилируемые языки

Dmitry
13.06.2016
13:17:40
bool wrongPassword; bool userExists; bool userIsAdmin; if (usersFromDB.filter!(u=>u.login == login && u.password != password)) wrongPassword = true; ... это вообще наркомания или норм?

Eto
13.06.2016
13:18:16
А такой if вообще компилируется?

Dmitry
13.06.2016
13:18:46
@deviator а ты в какой конторе работаешь? Радиометрическая коррекция штука редкая...

Oleg
13.06.2016
13:18:47
@DmitryBubnenkov filter возвращает диапазон

собственно что ты проверяешь?

@DmitryBubnenkov служу РФ

Dmitry
13.06.2016
13:19:18
Военный?

Google
Oleg
13.06.2016
13:19:19
на заводе Зенит

срочник

Dmitry
13.06.2016
13:19:23
а...

Pavel
13.06.2016
13:19:29
Ну D себя позиционирует как язык в котором писать так же легко и удобно как в интерпретируемых языках, при этом он такой же быстрый и низкоуровненвый как c++

Dmitry
13.06.2016
13:20:10
@deviator ну я хочу проверить несколько условий. Логин есть в БД. Пароль не верен. Логин и пароль верны. Пользователь админ.

Oleg
13.06.2016
13:20:13
@chebotarevp не на столько быстрый)

лучше посмотреть как это реализовано в django или ror

@deviator ну я хочу проверить несколько условий. Логин есть в БД. Пароль не верен. Логин и пароль верны. Пользователь админ.

Max
13.06.2016
13:20:50
Если писать как на плюсах – не скажи

Eto
13.06.2016
13:21:03
@chebotarevp не на столько быстрый)
Да ну. Компилятор допилят. GC исправят и будет не медленнее, а то может и быстрее.

Oleg
13.06.2016
13:21:22
не, посоны, не будет)

я как-то тестировал скорость

но это была пиар статья языка D =)

если по честному, то надо было запилить код С++ тоже clang'ом

но скорость сопоставима, я не спорю

сопоставима в пределах 10%

ну не суть

Eto
13.06.2016
13:23:33
Многое упирается в сами алгоритмы и кодогенерацию.

C++ уже хрен знает сколько лет этим занимается.

Oleg
13.06.2016
13:23:58
лучше всего в результате себя показал ldc2

Google
Eto
13.06.2016
13:24:02
но скорость сопоставима, я не спорю
Сопоставима с использованием какого компилятора?

Ага, ясно.

Oleg
13.06.2016
13:24:21
всех распостранённых

dmd (совсем плох), gdc (в 1.5 раза медленней), ldc2 почти догнал на эквивалентном коде

код на С++ компилировался g++

эквивалентный == идентичный с точностью до синтаксических аспектов

Pavel
13.06.2016
13:25:46
10% разница в скорости это прекрасно, а удобств в D на 900% больше

Oleg
13.06.2016
13:26:26
при добавлении оптимизирующих подсказок (pure, nothow) код на ldc2 чуть-чуть обогнал C++ вариант

Eto
13.06.2016
13:26:38
Вообще, меня эти сравнения с C++ мало колышат. Где сейчас C++ используется? Да почти нигде. Куда не плюнь — везде всякая ерунда вроде Java или ещё чего похуже.

Oleg
13.06.2016
13:26:40
поэтому D это мой выбор)

10% разница в скорости это прекрасно, а удобств в D на 900% больше

Eto
13.06.2016
13:27:15
поэтому D это мой выбор)
Ты reply нажимай, а не forward.

Max
13.06.2016
13:27:17
Кстати, final ко всем методам не забыл? (Они в D виртуальные по дефолту)

Oleg
13.06.2016
13:27:23
сорян)

я в курсе

Dmitry
13.06.2016
13:28:43
Павел и чем это плохо то?

Oleg
13.06.2016
13:29:19
@DmitryBubnenkov зачем тебе знать какой логин ввели?

Dmitry
13.06.2016
13:29:22
А что ООП уже не в моде?

Pavel
13.06.2016
13:29:38
Павел и чем это плохо то?
Я не говорю что плохо, это самое простое и естественное решение

Без всяких map/filter

Страница 15 из 719