Podcasts about carrierwave

  • 8PODCASTS
  • 12EPISODES
  • 36mAVG DURATION
  • ?INFREQUENT EPISODES
  • Jul 20, 2022LATEST

POPULARITY

20172018201920202021202220232024


Best podcasts about carrierwave

Latest podcast episodes about carrierwave

All Ruby Podcasts by Devchat.tv
Managing Files and Text in Rails with ActiveStorage and ActionText - Ruby 555

All Ruby Podcasts by Devchat.tv

Play Episode Listen Later Jul 20, 2022 44:48


Today on the show, Charles shares about his current projects and inner workings related to managing files and text on his various podcast portals.  The panel discusses their history with legacy platforms, their personal tool preferences, and the pros and cons of ActiveStorage and ActionText. In this episode… Paperclip, Attachment_Fu, CarrierWave, ConfiguringFog and other legacy tools FTP for file storage CDN support and preferences Digital ocean servers Trix compared to other rich text editors Sponsors Avo Raygun | Click here to get started on your free 14-day trial Top End Devs Links Add markdown support or state that it will not be added · Issue #626 · basecamp/trix Active Storage Overview - Ruby on Rails Guides Picks Charles- Marvel Legendary Dark City Board Game Charles- Vistaprint US Online Printing: Business Cards, Signage & More John- Glen Scotia 15 Year Old Scotch Whisky : The Whisky Exchange John- Drag and Drop File Uploads with Dropzone and StimulusReflex Valentino- Creating Excellent Developer User Experiences with Github Actions Valentino- Useful utilities and toys over DNS Valentino- doitlive - doitlive 4.2.1 documentation

Ruby Rogues
Managing Files and Text in Rails with ActiveStorage and ActionText - Ruby 555

Ruby Rogues

Play Episode Listen Later Jul 20, 2022 44:48


Today on the show, Charles shares about his current projects and inner workings related to managing files and text on his various podcast portals.  The panel discusses their history with legacy platforms, their personal tool preferences, and the pros and cons of ActiveStorage and ActionText. In this episode… Paperclip, Attachment_Fu, CarrierWave, ConfiguringFog and other legacy tools FTP for file storage CDN support and preferences Digital ocean servers Trix compared to other rich text editors Sponsors Avo Raygun | Click here to get started on your free 14-day trial Top End Devs Links Add markdown support or state that it will not be added · Issue #626 · basecamp/trix Active Storage Overview - Ruby on Rails Guides Picks Charles- Marvel Legendary Dark City Board Game Charles- Vistaprint US Online Printing: Business Cards, Signage & More John- Glen Scotia 15 Year Old Scotch Whisky : The Whisky Exchange John- Drag and Drop File Uploads with Dropzone and StimulusReflex Valentino- Creating Excellent Developer User Experiences with Github Actions Valentino- Useful utilities and toys over DNS Valentino- doitlive - doitlive 4.2.1 documentation

All Ruby Podcasts by Devchat.tv
RR 320 Shrine and File Uploads with Janko Mahronic

All Ruby Podcasts by Devchat.tv

Play Episode Listen Later Jul 25, 2017 43:31


RR 320: Shrine and File Uploads with Janko Mahronic Jerome Hardaway, Dave Kimura, and Charles Max Wood discuss Shrine with Janko Mahronic on this episode of Ruby Rogues. Janko is a Ruby developer. He is the creator of Shrine, which handles file uploads. Shrine tries to solve existing problems and gives many ways to upload files. It tries to accommodate and provide every option for whichever types of file you may be uploading. Tune in to find out more about Shrine! Questions [00:03:56] What does Shrine do that CarrierWave doesn’t do? One of the main reasons Shrine was created was to support background jobs. CarrierWave was missing support for background jobs. There is a CarrierWave extension for uploading in back-end but it doesn’t work reliably. It doesn’t delete files in the background and is missing the ability to have stable basic grounding capability. Shrine was created because of this reason. [00:06:06] Does Shrine have good support for Rails? Yes, you can hook up any backgrounding library. It has a designed interface in the way that Shrine can realize data for you. Shrine can call the background library directly. It can be an active job or custom background library. Inside the job, call Shine again to load all objects back up to finish the job. [00:07:40] Does Shrine work across multiple file types or is it geared towards images? Shrine works for any types of files. It is called the Ruby method. It can be implemented in any way you want. It has a functional style. You give the original file for the input and then move it to the processed files on the outputs. The processing can be anything: as long as you produce a file object on the output, you can call whatever you want to call, even an external service. [00:09:04] What’s the biggest file that you’ve tested Shrine with? Have you run into any kind of memory leaks? In Shrine nothing is done through memory, everything is done via streaming. When you’re streaming you don’t lose anything. It works for both small and large files. [00:11:48] Explain what goes into building a file upload system. What are the concerns? The framework handles the way the file is uploaded for you. Once the file is uploaded it’s stored into a temporary file. A gem handles most of the heavy work. Shrine makes a wrap around it. A lot of work goes into deciding which file attraction process needs to go in which order. It is important that you don’t upload in a data based transaction (?) 14:41 if processing lasts for longer time, whole time. There is a lot of time and decisions about what to do when. [00:15:10] Do you have any blog posts about a migration plan? Do you have a good way to switch to Shrine? Yes, Janko wrote migration guides. They include what codes you need to have to transition to Shrine. None of them involve re-uploading file because files are already there, they just need to be assigned ids. Then records can be updated with the file in a way that Shrine would be able to find them, just need to do record updates. [00:17:29] What do you think active storage will do to the future of Shrine? Janko may not be the best person to ask. He created Shrine for people who are not using Rails. It is difficult to tell at this point what active storage will do for the future of Shrine. [00:19:50] How is the community adoption implementation? What is your process with that? There is a Google group for people to ask questions. The setup doesn’t look that much different. Adoption is more that Janko tries to write a lot of blog post emphasizing some of the things that are better in Shrine. Most of the adoption started from the Go Rails screencast. When the author started to release videos. People were able to see what it looks like from start to finish. Go Rails is a great way to bring a library closer to a wide population. [00:23:26] What stack are you using? The preferred web framework is Roda and Sequel. [00:25:00] Is there anything out there that you feel that these uploading that you adding to Shrine? He feels like there is integration missing, which would be nice to have but he started working on he already knew what he wanted Shrine to support up front. Most of those features were added in the first and second release of Shrine. People won’t find on demand processing in Shrine because he decided not to add that. [00:29:54] Security Points of Shrine Uploads have to be authenticated. If a file is uploaded to a URL another person should not be able to review that file. If you want to authenticate files, you need to serve the files from your Rail set. [00:32:55] How much time have you spent doing Shrine? Two years. Picks: Dave: Wallabag: https://wallabag.org/en Charles: Stair Points Skil Saw: http://www.amazon.com/dp/B0731Q92BY/?tag=chamaxwoo-20 Janko: Event Machine: http://www.rubyeventmachine.com/ Links: GitHub: https://github.com/janko-m Twitter: https://twitter.com/jankomarohnic?lang=en

Devchat.tv Master Feed
RR 320 Shrine and File Uploads with Janko Mahronic

Devchat.tv Master Feed

Play Episode Listen Later Jul 25, 2017 43:31


RR 320: Shrine and File Uploads with Janko Mahronic Jerome Hardaway, Dave Kimura, and Charles Max Wood discuss Shrine with Janko Mahronic on this episode of Ruby Rogues. Janko is a Ruby developer. He is the creator of Shrine, which handles file uploads. Shrine tries to solve existing problems and gives many ways to upload files. It tries to accommodate and provide every option for whichever types of file you may be uploading. Tune in to find out more about Shrine! Questions [00:03:56] What does Shrine do that CarrierWave doesn’t do? One of the main reasons Shrine was created was to support background jobs. CarrierWave was missing support for background jobs. There is a CarrierWave extension for uploading in back-end but it doesn’t work reliably. It doesn’t delete files in the background and is missing the ability to have stable basic grounding capability. Shrine was created because of this reason. [00:06:06] Does Shrine have good support for Rails? Yes, you can hook up any backgrounding library. It has a designed interface in the way that Shrine can realize data for you. Shrine can call the background library directly. It can be an active job or custom background library. Inside the job, call Shine again to load all objects back up to finish the job. [00:07:40] Does Shrine work across multiple file types or is it geared towards images? Shrine works for any types of files. It is called the Ruby method. It can be implemented in any way you want. It has a functional style. You give the original file for the input and then move it to the processed files on the outputs. The processing can be anything: as long as you produce a file object on the output, you can call whatever you want to call, even an external service. [00:09:04] What’s the biggest file that you’ve tested Shrine with? Have you run into any kind of memory leaks? In Shrine nothing is done through memory, everything is done via streaming. When you’re streaming you don’t lose anything. It works for both small and large files. [00:11:48] Explain what goes into building a file upload system. What are the concerns? The framework handles the way the file is uploaded for you. Once the file is uploaded it’s stored into a temporary file. A gem handles most of the heavy work. Shrine makes a wrap around it. A lot of work goes into deciding which file attraction process needs to go in which order. It is important that you don’t upload in a data based transaction (?) 14:41 if processing lasts for longer time, whole time. There is a lot of time and decisions about what to do when. [00:15:10] Do you have any blog posts about a migration plan? Do you have a good way to switch to Shrine? Yes, Janko wrote migration guides. They include what codes you need to have to transition to Shrine. None of them involve re-uploading file because files are already there, they just need to be assigned ids. Then records can be updated with the file in a way that Shrine would be able to find them, just need to do record updates. [00:17:29] What do you think active storage will do to the future of Shrine? Janko may not be the best person to ask. He created Shrine for people who are not using Rails. It is difficult to tell at this point what active storage will do for the future of Shrine. [00:19:50] How is the community adoption implementation? What is your process with that? There is a Google group for people to ask questions. The setup doesn’t look that much different. Adoption is more that Janko tries to write a lot of blog post emphasizing some of the things that are better in Shrine. Most of the adoption started from the Go Rails screencast. When the author started to release videos. People were able to see what it looks like from start to finish. Go Rails is a great way to bring a library closer to a wide population. [00:23:26] What stack are you using? The preferred web framework is Roda and Sequel. [00:25:00] Is there anything out there that you feel that these uploading that you adding to Shrine? He feels like there is integration missing, which would be nice to have but he started working on he already knew what he wanted Shrine to support up front. Most of those features were added in the first and second release of Shrine. People won’t find on demand processing in Shrine because he decided not to add that. [00:29:54] Security Points of Shrine Uploads have to be authenticated. If a file is uploaded to a URL another person should not be able to review that file. If you want to authenticate files, you need to serve the files from your Rail set. [00:32:55] How much time have you spent doing Shrine? Two years. Picks: Dave: Wallabag: https://wallabag.org/en Charles: Stair Points Skil Saw: http://www.amazon.com/dp/B0731Q92BY/?tag=chamaxwoo-20 Janko: Event Machine: http://www.rubyeventmachine.com/ Links: GitHub: https://github.com/janko-m Twitter: https://twitter.com/jankomarohnic?lang=en

Ruby Rogues
RR 320 Shrine and File Uploads with Janko Mahronic

Ruby Rogues

Play Episode Listen Later Jul 25, 2017 43:31


RR 320: Shrine and File Uploads with Janko Mahronic Jerome Hardaway, Dave Kimura, and Charles Max Wood discuss Shrine with Janko Mahronic on this episode of Ruby Rogues. Janko is a Ruby developer. He is the creator of Shrine, which handles file uploads. Shrine tries to solve existing problems and gives many ways to upload files. It tries to accommodate and provide every option for whichever types of file you may be uploading. Tune in to find out more about Shrine! Questions [00:03:56] What does Shrine do that CarrierWave doesn’t do? One of the main reasons Shrine was created was to support background jobs. CarrierWave was missing support for background jobs. There is a CarrierWave extension for uploading in back-end but it doesn’t work reliably. It doesn’t delete files in the background and is missing the ability to have stable basic grounding capability. Shrine was created because of this reason. [00:06:06] Does Shrine have good support for Rails? Yes, you can hook up any backgrounding library. It has a designed interface in the way that Shrine can realize data for you. Shrine can call the background library directly. It can be an active job or custom background library. Inside the job, call Shine again to load all objects back up to finish the job. [00:07:40] Does Shrine work across multiple file types or is it geared towards images? Shrine works for any types of files. It is called the Ruby method. It can be implemented in any way you want. It has a functional style. You give the original file for the input and then move it to the processed files on the outputs. The processing can be anything: as long as you produce a file object on the output, you can call whatever you want to call, even an external service. [00:09:04] What’s the biggest file that you’ve tested Shrine with? Have you run into any kind of memory leaks? In Shrine nothing is done through memory, everything is done via streaming. When you’re streaming you don’t lose anything. It works for both small and large files. [00:11:48] Explain what goes into building a file upload system. What are the concerns? The framework handles the way the file is uploaded for you. Once the file is uploaded it’s stored into a temporary file. A gem handles most of the heavy work. Shrine makes a wrap around it. A lot of work goes into deciding which file attraction process needs to go in which order. It is important that you don’t upload in a data based transaction (?) 14:41 if processing lasts for longer time, whole time. There is a lot of time and decisions about what to do when. [00:15:10] Do you have any blog posts about a migration plan? Do you have a good way to switch to Shrine? Yes, Janko wrote migration guides. They include what codes you need to have to transition to Shrine. None of them involve re-uploading file because files are already there, they just need to be assigned ids. Then records can be updated with the file in a way that Shrine would be able to find them, just need to do record updates. [00:17:29] What do you think active storage will do to the future of Shrine? Janko may not be the best person to ask. He created Shrine for people who are not using Rails. It is difficult to tell at this point what active storage will do for the future of Shrine. [00:19:50] How is the community adoption implementation? What is your process with that? There is a Google group for people to ask questions. The setup doesn’t look that much different. Adoption is more that Janko tries to write a lot of blog post emphasizing some of the things that are better in Shrine. Most of the adoption started from the Go Rails screencast. When the author started to release videos. People were able to see what it looks like from start to finish. Go Rails is a great way to bring a library closer to a wide population. [00:23:26] What stack are you using? The preferred web framework is Roda and Sequel. [00:25:00] Is there anything out there that you feel that these uploading that you adding to Shrine? He feels like there is integration missing, which would be nice to have but he started working on he already knew what he wanted Shrine to support up front. Most of those features were added in the first and second release of Shrine. People won’t find on demand processing in Shrine because he decided not to add that. [00:29:54] Security Points of Shrine Uploads have to be authenticated. If a file is uploaded to a URL another person should not be able to review that file. If you want to authenticate files, you need to serve the files from your Rail set. [00:32:55] How much time have you spent doing Shrine? Two years. Picks: Dave: Wallabag: https://wallabag.org/en Charles: Stair Points Skil Saw: http://www.amazon.com/dp/B0731Q92BY/?tag=chamaxwoo-20 Janko: Event Machine: http://www.rubyeventmachine.com/ Links: GitHub: https://github.com/janko-m Twitter: https://twitter.com/jankomarohnic?lang=en

Teahour
#79 - 隐居大理钻研技术的 hacker

Teahour

Play Episode Listen Later Aug 30, 2015 109:52


本期由 Terry 主持,采访到了 思客教学 的创始人 Howard。 他生于台湾,学在加拿大,边环游世界边 coding, 现在隐居大理钻研技术和做教学。 和这样酷酷的 hacker 聊聊 Web 前后端技术趋势以及技术教学,还有他酷酷的生活。 The 4-Hour Workweek Prolog UML Struts Paul Graham Practical Common Lisp Continuation-passing style Ruby on Rails Flask Django Sinatra Paperclip CarrierWave CakePHP Laravel Meteor DDP Rich Internet application GraphQL Strikingly Flux Redux Om 思客教学 railscasts-china Sketch 妹尾河童 窥视厕所 Traction DuckDuckGo Special Guest: Howard.

Ruby NoName podcast
Ruby NoName Podcast S06E17

Ruby NoName podcast

Play Episode Listen Later Oct 8, 2014 42:55


Расшифровки Интервью с Аароном Ярослав Так, ладно, поехали. Аарон Паттерсон с нами, привет Аарон! Аарон Привет! Ярослав Так, ладно, с чего бы начать. Ты первый раз в Москве? Как тебе? Аарон Да, я первый раз в Москве, и, кстати, первый раз в России. Все потрясающе, здорово. Красивый город, вкусная еда, да и пожаловаться не на что. Ярослав Хорошо — это прямо как в Сиэтле? Аарон Ну, еда — еда совсем другая, город намного больше. Кстати, по погоде сейчас очень похоже. Я слышал, тут очень холодно бывает, так что вот. Ярослав Ага. Аарон К счастью, в Сиэтле так холодно не бывает. Не думаю, что здешнюю зиму я бы пережил. Ярослав Как у тебя впечатления о нашей руби тусовке? Это локальная группа (LUG — прим. пер.), или что-то большее? Аарон Не, намного больше. Намного больше, чем обычная локальная группа. Больше, чем наша группа в Сиэтле, это уж точно. Но да, здорово — тут столько компаний разных. Кажется, в Москве сообщество рубистов процветает. Ярослав Ага, ладно. Для начала — можешь рассказать о своей новой работе? Аарон Да-да-да. Я перешел на работу в RedHat.. недели две назад, кажется. Нет, три. Я работаю в команде, которая.. В общем, мы делаем продукт, систему управления виртуальными машинами. Да, в общем, и все — если у вас есть ферма серверов, можно поставить наше приложение и рулить всем из одной точки. Ярослав Оно на ванильных Rails, или как? Аарон Это Rails приложение. Прямо сейчас у нас есть ветка с нашими собственными патчами, и моя работа, часть моей работы — взять все наши патчи, слить их с апстримом Rails, и перевести приложение на основную версию Rails. Вот когда я с этим закончу, будет ванильный Rails. То есть, мы возьмем все изменения RedHat и запушим их в апстрим. Ярослав А какая часть твоей работы — именно опенсорс? Я могу ошибаться, но, насколько я знаю, в AT&T Interactive ты все рабочее время занимался только опенсорсом в Rails. В этот раз — это частично работа над продуктом, частично опенсорс? Аарон Вообще, продукт — все равно опенсорс, так что формально я в любом случае занимаюсь опенсорсом. Но прямо сейчас.. Не знаю, в основном работаю над Rails, в оставшееся время — над продуктом, может, 30-40% времени. Моя цель — взять продукт, перевести его на Edge Rails (последнюю версию — прим. пер.), и использовать его как контрольный пример для самих Rails. Ярослав А значит ли это.. Ну, помимо того, что продукт будет работать на последних рельсах, будут ли какие-то новые фичи в самих Rails? Так же, как Дэвид пробует кучу вещей в Basecamp, и потом вливает их в апстрим? Аарон Да, конечно. У нас есть фичи — в нашей ветке, есть разные фичи, которых нет в Rails, так что вот их я и буду вливать в апстрим. Будут новые фичи, да. Ярослав Вопрос, который меня очень интересует — работаешь ли ты плотно с ребятами из JRuby? Потому что многие в России, ну, многие из нас пришли из Java, и многим нравится JVM, потому что это явно один из самых сложных когда-либо созданных проектов.. Аарон Точно, точно. Ярослав Поэтому многие думают, что главный способ сделать Ruby быстрее и Rails быстрее — сделать так, чтобы Rails лучше работал с JRuby, и речь не о том, чтобы мьютекс просто запихнуть поглубже. Аарон Я работаю с ними немного и не напрямую. Проще говоря, я разговариваю с командой TorqueBox — мы смотрим, как сделать, чтобы Rails лучше работал на TorqueBox. И там точно будут улучшения, но это не то, чтобы.. В смысле, моя работа в RedHat — сотрудничать со всеми командами, которые используют у нас Ruby, поэтому я работаю с командой JRuby, но не только с ними. Ярослав Ага. Еще вопрос: мы начали с вопроса про Ruby комьюнити и все такое, хочу немного спросить о Seattle Ruby Brigade (Seattle.rb — прим. пер.). Вы, ребята, кажется, самая известная и хорошо организованная руби бригада, да и одна из первых, верно? Аарон Да. Ярослав Так вот как у вас.. Ну, в чем секретный рецепт, как у вас получилось все это организовать, локальную руби группу? Я спрашиваю, потому что у нас тут в Москве до сих пор есть только коммерческая конференция — уже 5 лет — с классными спикерами, но просто конференция — люди не собираются вместе, чтобы над чем-то поработать. Аарон Думаю.. Ну, честно, это все Райан Дэвис. В этом только его заслуга. Вот, что он говорит — у него был доклад на эту тему — секретный рецепт в том, чтобы собираться каждую неделю. Приходить всегда, назначить определенное время, и приходить; приходить, даже если никто еще не собирается, посвещать этому время. И тогда будет приходить все больше людей — так наша группа и выросла, она была очень маленькой, но мы постоянно встречались, каждую неделю; кто-то приходит, кто-то уходит, но мы начали собирать все больше и больше людей. Ярослав Ага. У меня есть немного спорный вопрос, он больше к докладу относится, но его пока еще не было, так что спрошу прямо сейчас. И может потом, для аудитории, ладно? Извини что спрашиваю, но Джош Пик (Josh Peek) однажды затвитил, что решение строить Rails на базе Rack было худшим его решением. Ну, он правда так сказал. Аарон (смеется) Ярослав Думая о названии твоего доклада, не мог перестать вспоминать тот твит. Получается, что чтобы перейти к Rack 2.0, поддерживать стриминг, надо переделать все API, сверху донизу. Так что ты думаешь о решении, которое было принято, когда Rails мигрировал на Rack? Это было умное решение, или может быть, или?.. Аарон Ну, я думаю.. Это было умное решение. Думаю, что у Rack не очень хорошее API, но решение было очень хорошим, например, для того, чтобы поддерживать разные веб-серверы, да? Из-за Rack можно использовать, знаешь, Unicorn, Puma, Thin, да что угодно. Любой веб-сервер, и это очень мощная фича. Так что это самая важная вещь, которую позволил сделать Rack. Так что хорошо, что Rails перешел на Rack, но теперь надо развивать API дальше. Стали ясны недостатки в API, так что надо двигать его дальше. Это была хорошая идея, но надо делать все постепенно. Ярослав Думаешь ли ты, что так называемый успех Node.js (не будем отвлекаться на порку Node.js) — это было.. Ну, проще говоря, одной из причиной этого стало отсутствие реального стриминга в Rails? JavaScript не то чтобы хороший язык, и не будем больше об этом, но.. Аарон Ну, весь бум, большой бум с Node.js — это возможность делать стриминг и все такое, и их API.. Вообще, в своем докладе.. Ты увидишь API, который я предлагаю для Rack 2.0, и там будет видно, что я вообще-то краду многое из Node.js. Я серьезно думаю, что у них хороший API. Он классный для стриминга, чтобы на нем писать простые, несложные веб-сервера, и это то, что нам стоит у них позаимствовать. Ярослав Ты сказал, что главная фича Rack, использования Rack — это то, что можно использовать разные веб-сервера. Я думаю, что одна из самых больших фич — это то, что сейчас у нас есть куча разных веб-фреймворков, большинство из них — просто микрофреймворки, но они все работают на Rack, и им не нужно переизобретать все заново, да и они могут работать на разных веб-серверах. Вот что я хочу спросить — появляется ли шанс у новых фреймворков, которые сейчас развиваются, например, как его.. От Люка Гуиди, как он называется? Кир ..?! Ярослав Так, щас (гуглит). Lotus, он называется Lotus. Видел? Аарон Неа. Ярослав Ладно, скину ссылку, это хорошая вещь. Там идея в том, что лучше бы вам, ребята, использовать паттерны, и использовать их на полную катушку, без рельсизмов. Аарон Ага. Ярослав Так вот, пока Rails переходит на новое API, есть ли шанс, что разовьются фреймворки, которые скажут — знаете, Rails вам больше не нужен. Потому что вам не нужен ActionView, раз уж куча приложений работает на JavaScript интерфейсах.. Аарон Угу. Ярослав .. куча вариантов с ORM, как Sequel, например, так вот, будет ли большая конкуренция? Аарон Ээ, думаю, будет большая конкуренция, но конкуренция и так есть, и будет еще больше. Но, это очень хорошо. Я имею в виду, это будет пушать Rails вперед еще больше. Штука с Rails — не нужно принимать решения вроде «какую бы ORM мне использовать?», или там, какой шаблонизатор — ты абстрагирован от таких проблем и можешь сосредоточиться на самом приложении. Не нужно об этом думать. Но, если будет больше рельсоподобных фреймворков, они будут двигаться вперед и будет конкуренция — это хорошо. Ярослав Еще одна штука про Rails — ну, тролинг, но все-таки — куча людей говорят, что Rails, то есть, Ruby — он только хорош для Rails, знаешь? Точно есть фреймворки для управления конфигурацией, большинство из них работает на Ruby — Chef на Ruby, Puppet на Ruby, да и скриптования на Ruby куча — насколько я слышал, в Amazon куча скриптования внутри на Ruby. Думаешь ли ты, что Ruby должно быть намного больше в каких-то областях? Больше скриптования, или эмбеддинга, чего-нибудь такого? Аарон Ммм. Мне сложно сказать, я веб-чувак. Мне нравится Ruby на вебе использовать, но, в смысле.. Мне Ruby для всего нравится использовать. Скриптование, просто скриптование. Разработка для встраиваемых систем — mruby для этого лучше, конечно, но знаешь.. Я везде использую Ruby, и думаю, что большему количеству людей тоже стоило бы так делать. Неправильно говорить, что Ruby — это только для Rails, совсем. Есть куча примеров, как ты и говорил, Chef и Puppet — все это показывает, что есть куча способов использовать Ruby, где бы ты не работал. Ярослав Точняк. Так.. Аарон (продолжает синячить портвейн) Хорошая штука! Ярослав Серьезно? Аарон Да, мне нравится. Порто А-ле-гро? Ярослав Порто Аллегре, да. Аарон Порто Аллегре Руби. Хорошая штука! Кир Когда я был в Португалии, взял с собой семь литров. Семь бутылок. Аарон (довольно зевает) Ярослав Долейте чуваку. Аарон Извините, что прерываем подкаст такими разговорами. Ярослав Да, это была хорошая идея. Ребята думали, что я шутил, когда спрашивал, брать одну бутылку или две. Аарон (смеется) Ярослав Ладно, еще вопрос. Есть такая штука с русскими митапами по Ruby — по крайней мере половину времени мы говорим о языках, отличных от Ruby. Иногда больше, чем половину времени. Обычно люди интересуются функциональщиной. Аарон Угу. Ярослав То есть, Erlang, Clojure, Scala; Elixir — это горячая тема. Аарон Rust! (смеется). Go, Rust, ну да. Ярослав Функция была представлена неделю назад и безнадежно устарела — вот тебе Rust. Аарон (смеется) Да, точняк. Ярослав Так тебе нравятся какие-то языки кроме Ruby, что ты используешь? Какие именно? Аарон Да-да. Что мне нравится в Ruby сообществе — так это то, что мы не замыкаемся на самом Ruby, всегда смотрим на другие языки и вообще изучаем программирование. Ярослав Ну, с Ruby началась революция «у нас есть задача, надо подобрать под нее язык». Аарон Да. Ну вот, я в последнее время учил Rust. Пытаюсь учить Elixir. Но вообще я много пишу на Scheme. Ярослав То есть, раз нравится Scheme, нравится и Clojure, наверное? Аарон Да, ну, Clojure клевый. Мне очень нравится Clojure. Главная причина, по которой я использую.. Я использую CHICKEN Scheme, главная причина — я в свободное время много пишу для встраиваемых систем, так что нужна хорошая поддержка C. И там хорошая поддержка C-библиотек и всякое такое. Но да, Clojure клевый. Ярослав Тебе нравятся языки на JVM, например, или просто все подряд? Аарон Все подряд, мне плевать, на чем оно работает. C, JVM, Erlang, мне все равно. Главное, чтобы язык нравился. Ярослав Еще вопрос. У меня есть, вроде как, любимый вопрос для опенсорс знаменитостей. Глупый немного, но думаю, с этой проблемой сталкивался любой, кто начал заниматься опенсорсом, или, может быть, даже закончил заниматься из-за этого. В общем, многие, кто занимается опенсорсом, особенно популярными проектами, сталкиваются с кучей негатива, да? Аарон Угу. Ярослав В общем, люди часто тебе говорят, что код у тебя отстой, и подход твой отстой, и надо делать все по другому, и вообще сходил бы ты подучился. Есть люди, которые к тебе относятся, как будто они твои заказчики.. Аарон Да-а-а. Ярослав И вот они тебе объясняют, что ты обязан что-то сделать, и они расчитывают, что ты управишься к понедельнику, знаешь? Так вот, как ты с таким негативом борешься? И ты вроде как — не знаю, как по-английски — расстрельный человек? (я имел в виду расстрельную должность — прим. пер.) — в общем, человек, на которого все пальцем покажут, если что-то пойдет не так. Вот, помнишь начало года, проблемы с безопасностью.. Аарон Ой, да. Ярослав В общем, сначала все обсуждают проблемы с безопасностью и говорят — эти чуваки отстой, у нас уязвимость. Аарон Да! Ярослав А потом ты фиксишь и пушаешь релиз, и все такие — теперь мне еще и все приложения обновлять! Аарон (смеется) Ярослав В общем, ты долгое время этим занимался, так что как ты с этим справляешься? Аарон Ну, тут такое дело. Надо понимать, что на каждого человека, который жалуется и говорит что код твой отстой, или что-то такое, найдется сто человек, которые, вообще-то, очень довольны твоей работой. Ярослав Да, но они молчат же. Аарон Да, ты просто от них ничего не слышишь. Но надо.. Лично я это просто держу в голове. Каждый раз кто-то говорит — ты отстой, и так далее — я просто не обращаю внимания, потому что знаю, что есть еще очень много людей, которым очень нравится то, чем я занимаюсь. И знаешь, вообще есть люди, которые на самом деле говорят — спасибо за то, что ты делаешь. Такое довольно часто случается. И я себя так чувствую.. Ну, один человек, который сказал спасибо, отменяет негатив по крайней мере от десяти других. В общем, не знаю, по-моему, у меня иммунитет выработался. Ярослав Знаешь, я вспоминаю твой твиттер, когда обсуждались проблемы с безопасностью, ты пытался выпустить релиз, и ты писал в том духе, что это твой последний релиз, был очень раздражен. Так ты что, просыпаешься утром и проблемы проходят? Аарон Да, да. Нельзя, чтобы такие вещи тебя задевали, просто нельзя. Я знаю, что это все очень влияет на нервы и знаю многих людей, которые мне говорили, что больше не выдержат и просто уходили. Но, не знаю, мне просто все равно (смеется). Вот к чему все сводится. Ярослав Так, еще одна спорная вещь, которую хочется обсудить. Было несколько людей из Rails Core тут в Москве за эти годы, с некоторыми я говорил, и все сходятся на том, что есть проблема с разработкой Rails: у тебя есть клевая идея, или фича, и ты даже делаешь патч для нее, и тут приходит Дэвид и говорит: «я этого не вижу в Rails». Аарон Ох, да. Ярослав Ну и многие люди, с кем я говорил — кто-то из Rails Core, кто-то, кто хотел бы попасть в Core — рассказывали, что не могут так работать. Так что, какой есть способ защищать свои идеи и пушать их в Core сейчас? Аарон Ну, я расскажу тебе секрет, но тебе придется дать слово, что никому не расскажешь. Ярослав Кроме слушателей. Аарон Кроме твоих слушателей. Слушатели, пожалуйста не рассказывайте никому. А секрет такой: коммитишь и не спрашиваешь. Ярослав … Аарон Коммичу и все. Ярослав Такой твой секрет? Аарон Да! Надо попасть в команду Rails Core, и делай все что хочешь. Добавляешь что-то, и если никто не заметит — то все зашибись (смеется). Да, ну а если честно, я иногда так делаю — добавляю какую-то определенную фичу, которая мне нужна, и если всем все равно — люди же видят, что ты коммитишь — и если всем все равно, она там остается. Но, на самом деле, вот что нужно сделать: нужно разработать.. Как бы это.. Вкус к тому, что может войти в Rails, а что нет. Я в команде Rails Core уже так долго, что я теперь вроде как могу предсказать, что DHH отклонит, а что ему понравится. И на сто процентов я это сделать не могу. Приходится его изучать, и пробовать как-то представить свою идею так, чтобы ему понравилось, и тогда все получится. Ярослав То есть, ты говоришь, что Дэвид все еще всем рулит? Аарон О да, однозначно, да. Ярослав Все еще Basecamp Rails? Аарон Однозначно. Basecamp Rails! (смеется) Ярослав У вас там еще есть секретный Campfire, где вы все обсуждаете? Аарон Ну, у нас есть комната в Campfire, она особенно и не секретная. Любой может попроситься, мы пригласим — это неважно. Ну, надо спросить — «эй, мне можно попасть в комнату?» — и мы пригласим (не делайте этого, если не уверены — прим. пер.). Но да, есть у нас комната в Campfire, где мы обсуждаем все, но Basecamp все еще… Имеет очень «сильное влияние»… (смеется) Я пытаюсь об этом сказать настолько мягко, насколько это возможно! Не думаю, что будет RedHat Rails. Ярослав Да, но много было разговоров о том, чтобы делать форки. Некоторые ребята из Rails Core думали о том, чтобы сделать форк. Ну, и я многого не знаю, но GitHub работает на собственном форке с устаревшей версией Rails, большой форк. Аарон Угу. Ну, это правда, но большинство людей.. Сложно получить какую-то поддержку (traction — прим. пер.) форка — нужно достаточно людей, нужно что-то, из-за чего люди его поддержат. Ярослав Вроде сотни гитхаберов. Аарон Да, вроде сотен гитхаберов. Точно. Нужно много людей на борту. Но вот форк GitHub — там вещи, специфичные именно для них, для GitHub. То, над чем я сейчас работаю в RedHat — нам, наверное, не нужно, то что сделал GitHub. Так что нам сложно найти общее. Ярослав Да, но все еще много чего нет. Например, у нас до сих пор нет нормальной.. По крайней мере, нормального API для партишенинга баз данных, потому что.. Аарон Да-а-а. Ярослав Потому что в Basecamp не хотели бы покупать больше одной БД. Аарон Да, все правда. Ярослав Поэтому приходится работать со страшными хаками, которые ломаются из релиза в релиз. Аарон Ну, хорошая новость в том, что в приложении, над которым я работаю в RedHat, есть партиционирование баз данных, так что, наверное, увидим его в будущих версиях (смеется). Ярослав Так, вопросы, наверное, кончились, давай последний. Много ребят приходят в Rails Core, много ребят уходят, да? Кто-то водит блестящие спорткары, у кого-то появляются новые хобби, кто-то основывает успешные компании, как Тоби (Tobias Lütke, CEO Shopify — прим. пер.), кто-то может обнаружить, что у него три ребенка, которых растить надо. Так вот, какие у тебя.. Глупый вопрос, но какие у тебя лично планы на Rails? Не устал ли ты сейчас, много ли осталось времени именно тебе в Rails? Я спрашиваю потому, что иногда кажется, что ты — такой последний герой, как тогда с проблемами с безопасностью. Аарон Не знаю. Причина, по которой я работаю над Rails.. Ну, я программист. И я работал на компании.. Я работал на много компаний, которые делают какой-то продукт.. Я не знал, скольким людям я помогаю, не понимал необходимости того, что я делал. Звучит хреново. Когда я работаю над Rails, я делаю продукт, который помогает точно таким же людям, как я; я веб-разработчик, и когда я делаю очередные улучшения, я помогаю моим друзьям — всем, кого я знаю, кто делает то же самое. Так что я продолжаю делать то, что делаю.. Хочу, чтобы у других разработчиков, таких же как и я, были инструменты лучше, чтобы мир, в котором они работают, был лучше. Хочу, чтобы моим продуктом с удовольствием пользовался я сам и мои друзья. Поэтому и продолжаю. Ярослав А у тебя не бывает таких мыслей по ночам, вроде, блин, я веб-разработчик, сколько уже, 5-10 лет, я не занимаюсь улучшением здоровья людей, не занимаюсь правительственными вещами.. Аарон Да.. (смеется) Ярослав Не занимаюсь супер-нагруженными штуками, и все что я делаю — HTML и CSS, так что отстойный из меня программист. Ну, многие молодые ребята так думают. Думают, к черту все это, пойду Clojure заниматься, или чем-нибудь таким. Аарон Нуу. Иногда я думаю о таких вещах, но, все-таки, я занимаюсь тем, что лучше всего умею, так что раз уж я чем-то хорошо умею заниматься, мне стоит стараться делать это лучше всего, да? Так я больше всего смогу повлиять на мир. Ну да, я думаю о таких вещах, но.. Раньше я от этого расстраивался, но теперь я понял, что раз уж я хорош в том, что делаю, значит так я могу больше всего улучшить мир, и больше это проблемой не кажется. Ярослав В общем, ты счастлив? Аарон Да, точно. Ярослав Спасибо, с нами был Аарон! Аарон Тебе спасибо. Интервью с Йонасом Кир Пишем! Так вот, это твой первый визит в Москву? Йонас Да, все так. Кир Как тебе в Москве, что думаешь о городе? Йонас Да все хорошо. Организаторы конференции очень хорошо о нас заботятся. Здорово провел время здесь в городе, видел много классных вещей. Хотел бы побыть подольше, но, к сожалению, уезжаю уже завтра, вот. Кир Три дня, да? Йонас Три дня. Кир Начнем больше про программирование. Планируешь новую большую версию Carrierwave? Йонас Я вообще не особенно участвую в проекте в последнее время. Я взял самоотвод как мейнтейнер.. Довольно давно, два-три года назад. Но, вообще, было очень интересно сегодня слышать презентацию, не помню имя спикера (Кирилл Горин из Coub — прим. пер.), он, в общем, написал похожую библиотеку на Carrierwave. Кир Да, его зовут Кирилл. Йонас Кирилл, да. Кир Изменил ли ты что-то в Carrierwave, если бы у тебя была возможность сделать какие-то вещи по-другому? Лет пять назад, или вроде того. Йонас Ну да, если сейчас вспоминать о том, что было, точно есть какие-то вещи.. Он был написан в другое время. Кир Согласен. Йонас Так что.. Библиотека изначально, что довольно смешно, была плагином для Merb, так что если посмотреть на первые коммиты, она вообще-то называлась merb-upload, и долгое время не называлась Carrierwave. И в то время Rails приложения по-другому разворачивали (деплоили), была другая архитектура и администрирование по-другому велось, так что.. В некотором смысле, думаю, сейчас надо было бы строить библиотеку для загрузки файлов по-другому, не так, как я сделал в Carrierwave раньше. Она все еще решает многие проблемы хорошо, но можно было бы решать и проблемы посложнее, из числа тех, которые она сейчас не решает — загрузку напрямую с клиента (видимо, речь идет о прямой загрузке на S3 минуя сервер — прим. пер.), фоновую обработку, и всякие такие вещи, которыми она сейчас не занимается. Кир У нас сейчас есть клиент с довольно большим Rails приложением.. Йонас Угу. Кир Там, например, несколько сотен тысяч загрузок каждый день (Кир оговорился, на самом деле десятки тысяч — прим. пер.), и мы по полной используем Carrierwave. И однажды я обнаружил, насколько там здоровенный стек. Там был carrierwave_backgrounder, и сверху — куча вещей, чтобы сделать кастомный URL для хранилища в S3, так что стек там был такой большой.. В общем, для следующего проекта я начал писать свою библиотеку — небольшую замену, только с тем, что мне нужно, и было очень интересно. А вообще, большое тебе спасибо за Carrierwave. Так вот, теперь к Capybara. Будет что-нибудь новенькое с Capybara? Йонас Хех. Надеюсь. Я, в общем, и в этом проекте не так много делаю теперь. Но, думаю, безопасность в многопоточной среде будет проблемой. То, о чем Аарон говорил на своем докладе, про то, как тесты должны идти в параллель — многое из этого применимо и к Capybara. А текущая реализация небезопасна для работы в несколько потоков, что, конечно, проблема. Так что это то, чему мне, или кому-то еще, придется заняться в будущем. Кир Расскажи, какие развивающиеся языки тебе интересны? Йонас Мне дико интересен Rust. Думаю, это потрясающий язык. И из-за него меняется мое представление о программировании, так что.. точно рекомендую всем на него посмотреть. Он слишком новый и слишком нестабильный, так что новую версию вашего большого приложения на нем писать не стоит, пока что. Но он очень интересен тем, что обещает быть заменой C и C++ — таким же быстрым по скорости, но намного лучше. И безопаснее. Кир Знаешь кого-нибудь, кто использует Rust в бою? Йонас Да! Ребята из Tilde — это где работает Йехуда Кац. Кир Это приложение для знакомств? Йонас Нет, это Tinder. Tilde делают продукт под названием Skylight.. Кир А, да, да. Йонас Сервис для мониторинга Rails. И у них часть клиента, клиентской штуки на Rust — то, что раздают людям. И, вроде бы, используют его и на стороне сервиса, но я не уверен на сто процентов. Думаю, это первое, и, может, единственное использование Rust в продуктиве. Кир И спасибо тебе большое за pundit! Йонас Ой, да. Кир Я пушаю ребят в нашей команде, чтобы мы больше использовали pundit у себя, и людям он очень нравится, и очень классно им пользоваться после cancan. Потому что можно писать эти миниатюрные классы с настройками доступа.. Мы несколько раз о нем рассказывали в нашем подкасте. Йонас Да, здорово, спасибо большое. Действительно, веселый проект. Оказывается, люди с большим энтузиазмом к нему относятся. Кажется, он становится де-факто стандартом для авторизации в Rails — круто для такой небольшой библиотеки. Там всего сотня строк кода. Но нам она точно помогла во многом. Оказалось, с ее помощью мы сильно улучшили код в нашем приложении, который относится к авторизации. Кир Так ты сейчас сфокусирован на pundit? Йонас Ну, он не то чтобы много энергии у меня отнимает, слишком маленький проект. У него неожиданно большое количество контрибьюторов, но это в основном небольшие поправки здесь и там. Так что это не такой проект, как Capybara или Carrierwave, который занимает много времени. Вот. Я сейчас в основном занимаюсь изучением других языков, и занимаюсь всякой всячиной для собственного удовольствия. Кир Спасибо за интервью! Йонас Без проблем. Мы также выражаем огромную благодарность Стасу Спиридонову за помощь с мастерингом этого выпуска.

RailsCasts (Mobile)
#374 Image Manipulation

RailsCasts (Mobile)

Play Episode Listen Later Aug 16, 2012 11:23


Learn how to do extensive image manipulation with the ImageMagick commands. Also learn how RMagick can be used in combination with CarrierWave to process uploaded images.

manipulation imagemagick carrierwave rmagick
RailsCasts
#374 Image Manipulation

RailsCasts

Play Episode Listen Later Aug 16, 2012 11:23


Learn how to do extensive image manipulation with the ImageMagick commands. Also learn how RMagick can be used in combination with CarrierWave to process uploaded images.

manipulation imagemagick carrierwave rmagick
RailsCasts (Mobile)
#253 CarrierWave File Uploads

RailsCasts (Mobile)

Play Episode Listen Later Feb 14, 2011 9:05


CarrierWave makes it easy and clean to add file uploads to your application. It supports a variety of ORMs, frameworks and image processors.

file uploads orms carrierwave
RailsCasts
#253 CarrierWave File Uploads

RailsCasts

Play Episode Listen Later Feb 14, 2011 9:05


CarrierWave makes it easy and clean to add file uploads to your application. It supports a variety of ORMs, frameworks and image processors.

file uploads orms carrierwave