@proRuby

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

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

а на пхп точно также ступенчато выводишь, такое же нестабильное

Google
Vyacheslav
25.05.2018
03:04:35
писать бэкенд на плюсах? да вы батенька извращенец
Если делать биндинги к либам для PHP, ruby то норм

Но это если скорость нужна

Или память

В Perl это дело развито json::xs, text::xslate, time::moment и т.д. написаны на C

Только начал читать, годно

Vyacheslav
25.05.2018
07:14:05
https://ruby-doc.org/core-2.4.1/Array.html#method-i-7C
ага кстати для этого дела есть интересный юзкейс: $ ruby -e 'fruits = %w{apple banana apricot}; fruits << "apple" unless fruits.include?("apple"); puts fruits.inspect; fruits |= ["apple"]; puts fruits.inspect'

если нужно добавить значение в массив, только если его нет в массиве

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

стоп стоп стоп.

это не равноценные коды.

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
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]
а ?a чем-то отличается от 'a'? сорри за тупой вопрос, но вижу такое я первый раз

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
Т.е. инстурмент для мастера, как большая заточенная бритва.
Это как в Perl, вспомнил пример поиска минимального значения: $ perl -E 'say "min: ". [2 => 3]->[3 <= 2]' min: 2

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
https://ruby-doc.org/core-2.3.0/doc/syntax/literals_rdoc.html
посмотрю по ссылке, еще что-то полезное для себя найду

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
сокращение. 'a' === ?a
Рубокоп на такие штуки ругается)

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

Dmitriy
25.05.2018
08:22:54
но в реальных проектах я использовал Set ровно 0 раз
сеты вполне юзабельны. Например, для проверки входит ли одно множество в другое

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

Николай
25.05.2018
08:24:18
activestorage
Без рельсов ?

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
Читал на русском, помню перевод был порой настолько кривой что приходилось обращаться к оригинальной версии что бы понять о чем речь.

Николай
25.05.2018
09:47:03
а как ты представляешь что что-то исполняется без твоего ведома?
Ну вот на руби не знаю. Но в мире php я так понимаю большинство взломов было сделано через возможность загрузки файлов. Ну и я подумал, что возможно в руби тоже нужно быть максимально осторожным с загрузкой

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

Это очень интересно, если убрать испольнить chmod a-x filename то как его можно запустить?
даже если не убирать, как человек имеющий доступ только к веб морде может выполнить файл?

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
не через возможность загрузки, а через возможность изменения расширения, либо инклюда
ну инклуднуть загруженный пользователем файл по идее можно только через недоработку какую-то. А вот изменение расширения хотелось бы чтобы вообще никак не влияло. То есть пусть хацкер меняет как хочешь, что чтобы максимум что он мог сделать - скачать свой кривой файл, либо получить неработающая картинку, если он загружал аватарку к примеру (и мы допустим не валидировали картинку)

Николай
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
https://www.opennet.ru/opennews/art.shtml?num=44371
Во, получается не только на настройки сервера надо смотреть, но еще и на баги всего софта, который хоть как-то обрабатывает загружаемый файл :)

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
лучший язык эвар

Страница 1213 из 1594