
Daniel
08.06.2018
09:01:40
https://www.xaprb.com/blog/2006/04/11/bit-values-in-mysql/
Старая шкоал

Konstantin
08.06.2018
09:02:39
спасибо, почитаю)

Daniel
08.06.2018
09:07:45
На самом деле куча статей

Google

Daniel
08.06.2018
09:07:55
Если погуглить

Sergey
08.06.2018
09:16:21
вообще нормальную СУБД возьми которая умеет булы

Evgeniy
08.06.2018
09:16:58
ребят вопросик такой по ларке (у нас 4.2) но мб и для 5.Х актуально, ну или моему говно коду что тут течет по памяти https://pastebin.com/kLQ7k2AV
но если я убираю update то не течет https://pastebin.com/9LHhpvg5 (по крайне мере не так быстро)
в первом случае после миллиона обработанных записей память заканчивается.

Konstantin
08.06.2018
09:18:11

Sergey
08.06.2018
09:18:30
потому что не могу структуры данных в памяти занимать не кратное степени двойки количество байт.
точнее могут но это будет не очень эффективно
а потому под копотом выравнивание
да и часто люди потом бул превращают в битовые маски) хотя это тупо

Konstantin
08.06.2018
09:19:45
ясно, сложный компьютэ-сайнс!

Sergey
08.06.2018
09:20:04
ну и повторюсь - в целом tinyint(1) потому что "а почему бы и нет", всеравно это кастыль

Konstantin
08.06.2018
09:20:14

Google

Sergey
08.06.2018
09:20:35
https://en.wikipedia.org/wiki/Data_structure_alignment
но это только к вопросу что пофигу

Ja
08.06.2018
09:20:59
всем привет!
немного оффтопа в пятницу:
строим сервис который работает через api с криптобиржами. с юзеров собираем их key&secret
вопрос: какой бест вей для безопасного хранения и использования ключей?
если ли какая-то методология хранения приватных данных?
пока вижу один, не очень удачный, как по мне способ, шифровать данные, и давать юзеру его приватный ключь

Sergey
08.06.2018
09:21:54
> вопрос: какой бест вей для безопасного хранения и использования ключей?
хранить только публичный ключ
приватный ключ никак не хранить
либо шифровать секретом который только пользователь знает
если ты там чето с криптобиржами мутишь - надо сделать все возможность что бы ты никак не мог воспользоваться приватным ключем без согласия пользователя.
end-to-end шифрование короч
что бы секретный ключ только на клиенте мог светиться в открытом виде

Ja
08.06.2018
09:24:42
и так каждый раз

Sergey
08.06.2018
09:26:23
более того, подпись транзакции тоже на клиенте
что бы вообще никак и никогда ничего что позволит вскрыть приватный ключ не светить ни по сети ни в памяти сервера
ну а дальше думай что тебе важнее, что бы удобненько или безопасно
как никак с деньгами работаешь

Ja
08.06.2018
09:28:40
https://framework.zend.com/blog/2016-08-19-end-to-end-encryption.html
получается, я храню и публичный и приватный ключь
но пароль от приватного хотит только в request от юзера

Sergey
08.06.2018
09:31:34
пароль от приватного никуда не ходит

Ja
08.06.2018
09:36:49
тогда не понимаю
мне жде нужно доставать пару api key&secret
--
ладно, разберусь сначала в end-to-end – тогда вернусь)

Sergey
08.06.2018
09:38:36
прикол в том что бы транзакции на клиенте подписывать а не на сервере

Google

Sergey
08.06.2018
09:38:52
ну короч я не знаю требований к безопасности на твоем сервисе

Ja
08.06.2018
09:42:22
кейс один – использовать api key&secret максимально безопасно
мне от юзера нужны эти данные, что бы общаться с удаленным сервисом
но не хочется хранить ключи в открытом виде
"транзакции на клиенте подписывать а не на сервере" – грубо говоря, телега, например, никак не имеет доступа к моему ключу, а сам ключ хранится/используется только в клиентах?


Sergey
08.06.2018
09:50:29
а с блокчейнами все проще. у тебя есть приватный ключ, у тебя есть транзакция, ты делаешь приватным ключем подпись, что бы сформировать транзакцию достаточно публичного ключа
то есть
- сформировали транзакцию и отдали ее на клиент
- пользователь вводит приватный ключ (или он дешифруется из того что прислали)
- формируем подпись транзакции и отправляем ее на сервер
- отправляем в блокчейн транзакцию подписанную
ну а на чтение - там только публичный ключ нужен, и то в большинстве случаев только для того что бы айдишку юзера знать
все нормальные блокчейн клиенты юзают подпись на клиенте. Ибо это безопасно более-менее


Alexander
08.06.2018
10:02:13

Evgeniy
08.06.2018
10:03:10
ну и судя по всему там может каждый раз внутри генерируется statment и течет
ну и 3 вариант $builder = DB::table();
а уже внутри цикла юзать этот $builder это тоже мой косяк)
хотя 3 вариант не подойдет будут новые statment генериться, ладно поковыряю еще, но похоже надо на pdo делать

F01134H
08.06.2018
10:29:33
можно ли в пхп узнать (флюент интерфейс), что метод исполняется последним в цепочке?

Evgeniy
08.06.2018
10:31:54
возможно http://php.net/manual/en/function.debug-backtrace.php
но ну его, ты скорей всего что то не так делаешь

F01134H
08.06.2018
10:33:43
наверное да
это ж я

Sergey
08.06.2018
10:37:12
лучше не делать таких API

Google

Nurik
08.06.2018
10:38:20

Evgeniy
08.06.2018
10:38:36
обычный builder

F01134H
08.06.2018
10:38:41
у меня просто есть класс "Process", который запускает процесс и позволяет писать\читать из него. Нужно что бы по окончанию работы - процесс закрывался

Evgeniy
08.06.2018
10:38:41
делайте и не парьте голову

F01134H
08.06.2018
10:38:52
постоянно unset делать - такое себе

Evgeniy
08.06.2018
10:39:10
ну так закрой его по окончанию работы

Nurik
08.06.2018
10:39:16

F01134H
08.06.2018
10:39:20
постоянно закрывать его предопределенным методом - можно забыть, что он там есть

Evgeniy
08.06.2018
10:39:23
не сам же Process себя закрывать должен (метод у него должен быть но запускать тот кто им рулит)
и сделай абстрактный метод который из того метода стартует
сейчас покажу

F01134H
08.06.2018
10:40:39
у меня проблема закрытия, а не старта)

Evgeniy
08.06.2018
10:41:16
ты стартани его так чтобы он гарантированно закрылся
для этого надо изменить запуск
https://pastebin.com/irqfexT7
вот совсем на коленке
некоторые вещи можно спрятать за protected
или на интерфейсах сделать
в payload аргументом $process приходит и тут читаешь пишешь и тд

Google

Evgeniy
08.06.2018
10:45:37
все это еще надо в try обернуть но это мелочи

F01134H
08.06.2018
10:51:11
понял, спасибо

Dmitry
08.06.2018
10:55:31
передавай каллбек, который будет читать и писать... по окончанию - закрываешь

F01134H
08.06.2018
11:28:51
спс, хорошая идея)
Хм, вот у меня получилось что то типа:
$proc = new Process();
$process->execute(function($io) {
$io->write(...);
});
А как в пхп на уровне класса этот самый $io передать в метод?
магический метод?
имеется ввиду без замыкания. 100% как то можно внутри класса передать

Maksim
08.06.2018
11:43:33
какого класса?) много раз перечитал, не понял чё сделать-то хочешь(

Dmitry
08.06.2018
12:09:51
Поделитесь опытом: есть таблица на 25 млн записей и как-то не хочется лишний раз в нее залезать с агрегирующими запросами. Вот думаю сделать отдельную таблицу, куда писать UPSERT'ы, но уже агрегированные по дням и работать с ней. Или есть еще варианты?

Виктор
08.06.2018
12:10:56
Партиционировать, если выборка производится только по части данных

Dmitry
08.06.2018
12:15:13
Квартальные партиции есть, но в них залазиет более 5 млн записей

Виктор
08.06.2018
12:19:45
В таком случае сводная таблица, как сами и написали

Alexander
08.06.2018
12:54:37
Подскажите, а с помощью какой библиотеки сейчас парсят DOM, что-нибудь современное интересует

Dmitry
08.06.2018
12:56:36
https://symfony.com/doc/current/components/dom_crawler.html

Alexander
08.06.2018
12:57:12

F01134H
08.06.2018
14:34:22
По какой причине socket_read() может выполняться вечно?
socket_write при этом работает норм
ладно, с этим разобрался. Теперь другая проблема. Запускаю процесс в режиме демона. Процесс забивает порт, который далее дергает скрипт. Так вот, если завершить скрипт вручную, процесс останется висеть в системе. Как это можно побороть?
или это уже чисто линуховские вопросы