
Владимир
24.05.2018
23:33:07
по факту результат достигнут и ОНО ЖИВОЕ! но удовольствие не доставлено и при одинаковых временных затратах разный уровень трудозатрат

Alex
25.05.2018
01:16:47
писать бэкенд на плюсах? да вы батенька извращенец
а на пхп точно также ступенчато выводишь, такое же нестабильное

Vyacheslav
25.05.2018
03:03:09

Google

Vyacheslav
25.05.2018
03:04:35
Но это если скорость нужна
Или память
В Perl это дело развито json::xs, text::xslate, time::moment и т.д. написаны на C
Только начал читать, годно

Dima
25.05.2018
06:34:55
Хорошая книга.
https://ruby-doc.org/core-2.4.1/Array.html#method-i-7C

Vyacheslav
25.05.2018
07:14:05
если нужно добавить значение в массив, только если его нет в массиве

Dima
25.05.2018
07:14:52
Это просто супер.

Google

Dima
25.05.2018
07:15:50
можно не заморачиваться вместо puts fruits.inspect писать p fruits
стоп стоп стоп.
это не равноценные коды.

Vyacheslav
25.05.2018
07:17:35

Dima
25.05.2018
07:18:50
f = %w{b b c}; f << 'a' unless f.include?(?a) ==> [?b, ?b, ?c, ?a]
f =%w{b b c}; f |= [?a] ==> [?b, ?c, ?a]

Vyacheslav
25.05.2018
07:20:48
кстати да

Dima
25.05.2018
07:21:24

Vyacheslav
25.05.2018
07:21:56
хотя если известно, что все элементы массива уникальны, то норм

Dima
25.05.2018
07:23:49
Т.е. инстурмент для мастера, как большая заточенная бритва.
Как говорит Sendi Metz, "sharp tool"

Felix
25.05.2018
07:26:30

Dima
25.05.2018
07:27:25

Felix
25.05.2018
07:27:36
понятно, спасибо

Dima
25.05.2018
07:30:10
понятно, спасибо
https://stackoverflow.com/a/16641266
Вообще это очень важный вопрос. Потому что я хочу найти документацию где все это рассписано. Потому что в Ruby масса приемов которые изучаешь с опытом. А вот так чтоб была четка документация про % mark notation или про тотже ? перед символом, я вот этого не нахожу.

Vyacheslav
25.05.2018
07:31:04

Dima
25.05.2018
07:34:01
https://ruby-doc.org/core-2.3.0/doc/syntax/literals_rdoc.html

Felix
25.05.2018
07:38:52
огромное спасибо)

Google

Felix
25.05.2018
07:39:04

Roman
25.05.2018
08:04:33

Dima
25.05.2018
08:07:29
а codewars часто Set используют.

Roman
25.05.2018
08:09:18
но в реальных проектах я использовал Set ровно 0 раз

Dima
25.05.2018
08:10:08
https://ruby-doc.org/stdlib-2.5.1/libdoc/set/rdoc/Set.html

Nikita
25.05.2018
08:13:58

Dima
25.05.2018
08:15:56
Рубокоп на такие штуки ругается)
В Рубокопе есть своя логика - селать код лекгочитаемым. Ruby не исчерпывается многофайловыми программами, он еще и в коносле работает, а там такие сокращение помогают.

Nikita
25.05.2018
08:16:42

Dmitriy
25.05.2018
08:22:54

Николай
25.05.2018
08:23:05
Всем привет. Подскажите пожалуйста насчёт загрузки картинок пользователем. Я так понял это очень опасная часть приложения и всякие хацкеры могут загрузить исполняемые файлы итд, даже если пытаться как-то валидировать картинки. Какой самый безопасный способ это реализовать? Пока-что мне самым оптимальным кажется сохранение файлов в директорию, которую nginx в будущем будет просто отдавать напрямую, даже не пытаясь запускать какие-то пумы итд.

Roman
25.05.2018
08:23:28

Николай
25.05.2018
08:24:18

Roman
25.05.2018
08:24:32

Nikita
25.05.2018
08:27:50

Roman
25.05.2018
08:28:33
жив
пейперклип закрывается
можно activestorage и без рельсов юзать вроде

Nikita
25.05.2018
08:29:40
Ещё Шрайн есть
https://github.com/shrinerb/shrine

Google

Николай
25.05.2018
08:32:35
Спасибо, буду смотреть

Alex
25.05.2018
08:59:25

ojab
25.05.2018
09:01:54
от разработчиков

Roman
25.05.2018
09:02:46
Откуда инфа?
https://robots.thoughtbot.com/closing-the-trombone

Alex
25.05.2018
09:03:33
Спасибо

Иван
25.05.2018
09:41:58
Читал на русском, помню перевод был порой настолько кривой что приходилось обращаться к оригинальной версии что бы понять о чем речь.

Vasiliy
25.05.2018
09:45:06

Николай
25.05.2018
09:47:03

Dima
25.05.2018
09:47:56

Vasiliy
25.05.2018
09:48:07
потому что пхп что? имеет возможность выполнять файлы из какой-то директории

Felix
25.05.2018
09:49:09
пхп тоже не дурак, и знает про mime

Vasiliy
25.05.2018
09:49:57
в хпх понятно - /uploads/somefile.php а там криво настроенный язык что есть возможность исполнения из любой папки

Felix
25.05.2018
09:50:45
так еще надо и поменять расширение

Vasiliy
25.05.2018
09:50:48
но это раньше страшилка была, когда апач по дефолту делал все подпапки доступными для исполнение

Николай
25.05.2018
09:51:36
не через возможность загрузки, а через возможность изменения расширения, либо инклюда
ну инклуднуть загруженный пользователем файл по идее можно только через недоработку какую-то. А вот изменение расширения хотелось бы чтобы вообще никак не влияло. То есть пусть хацкер меняет как хочешь, что чтобы максимум что он мог сделать - скачать свой кривой файл, либо получить неработающая картинку, если он загружал аватарку к примеру (и мы допустим не валидировали картинку)

Felix
25.05.2018
09:52:02

Николай
25.05.2018
09:52:31
Я когда статью читал про это, там нормально так запугивали. Типа что бы ты не проверял, все равно можно и картинку валидную подсунуть с исполнимым кодом внутри итд)

Google

rekero
25.05.2018
09:52:40
https://www.opennet.ru/opennews/art.shtml?num=44371
вот это например

Николай
25.05.2018
09:53:00
пермишены на папку со стороны .htaccess и делов
Не, у меня не апач, просто мне хотелось бы четко понимать откуда именно идут все эти взломы. То есть если это только исполнение файла неверно настроенным апачем, то все вроде бы просто, а если есть еще какие-то баги итд то хотелось бы все знать)

Felix
25.05.2018
09:53:09
ну тот же nginx
и конфиг виртуалхоста у него
не суть)

Vasiliy
25.05.2018
09:53:44
у тебя руби, тут приложение загружается сразу и все туториалы учат отдавать статику через нгинкс

Николай
25.05.2018
09:54:43

Vasiliy
25.05.2018
09:55:11
в случае с имейджмейджиком проблема в сторонней либе для обработки того что юзер загрузил, если просто хранить отдавать то проблем не должно быть

Николай
25.05.2018
09:56:07
Ну да, получается самый параноидальный способ: просто сохранять в папку из которой только отдача, и никак не взаимодействовать с файлом)

Vasiliy
25.05.2018
09:57:03
тип того
плюс ты за всем не уследишь всё равно, единственно норм варик - держать зависимости в актуальном состоянии, подломить могут не только с загрузкой файлов
я так думаю это юзается уже тогда когда обнародовано и в режиме роботов, в надежде подцепить тех кто обновиться не успел
количеством проще брать, а индивидуальный сервис проще, опять же я так думаю, подломить через взлом сотрудника, стороннего сервиса что используется, косвенно короче говоря

Oleg
25.05.2018
10:09:10
Смотрю опять был холивар что руби медленный и костыльный
И мол баги
Но дело в том что баги делает программист, а не язык...

Vasiliy
25.05.2018
10:10:20
нет
руби медленный и костыльный

Oleg
25.05.2018
10:11:58
Я тут последний фанат руби остался? :D

Evegeniy
25.05.2018
10:12:09
лучший язык эвар