{"version":"https://jsonfeed.org/version/1","title":"三氧化二铝","home_page_url":"https://ruby.fireside.fm","feed_url":"https://ruby.fireside.fm/json","description":"一个聚焦Ruby，Web开发和创业主题的中文播客","_fireside":{"subtitle":"一个聚焦Ruby，Web开发和创业主题的中文播客","pubdate":"2022-02-07T13:00:00.000-05:00","explicit":false,"owner":"Nankai Pan","image":"https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/2/262f7c7c-16e5-40a8-a4c6-156f71c79407/cover.jpg?v=1"},"items":[{"id":"7556edc5-6509-4475-a0ef-08cff0f5116a","title":"使用Rails快速搭建MVP产品 (上)","url":"https://ruby.fireside.fm/episode-2","content_text":"快速搭建Rails程序的一些常用插件\n\nAuthentication:\n\n\nDevise\nAWS Cognito\nAuth0\n\n\nAuthorization:\n\n\ncancancan\npundit\n\n\nAdmin portal:\n\n\nActiveAdmin\n\n\nLogging:\n\n\nLograge\nLogentries\n\n\nEnvironment variables:\n\n\nDotenv\n\n\nTesting:\n\n\nRSpec\nFactoryBot\nCapybara\n\n\nPagination:\n\n\nKaminari\nPagy\n\n\nSerializer\n\n\nJSON API serializer\nActiveModel serializer\nBlueprinter\n\n\nBackground jobs:\n\n\nSidekiq\nresque\nDelayed job\n\n\nSearch:\n\n\nElasticSearch (Searchkick)\nransack\n\n\nFile upload:\n\n\nActive Storage\nCarrierwave\n\n\nOthers:\n\n\nCircuitbox\n","content_html":"\u003cp\u003e快速搭建Rails程序的一些常用插件\u003c/p\u003e\n\n\u003cp\u003eAuthentication:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise\" rel=\"nofollow noopener\"\u003eDevise\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://aws.amazon.com/cognito/\" rel=\"nofollow noopener\"\u003eAWS Cognito\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://auth0.com\" rel=\"nofollow noopener\"\u003eAuth0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eAuthorization:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CanCanCommunity/cancancan\" rel=\"nofollow noopener\"\u003ecancancan\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit\" rel=\"nofollow noopener\"\u003epundit\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eAdmin portal:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/activeadmin/activeadmin\" rel=\"nofollow noopener\"\u003eActiveAdmin\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eLogging:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/roidrage/lograge\" rel=\"nofollow noopener\"\u003eLograge\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://logentries.com\" rel=\"nofollow noopener\"\u003eLogentries\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eEnvironment variables:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv\" rel=\"nofollow noopener\"\u003eDotenv\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eTesting:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rspec/rspec-rails\" rel=\"nofollow noopener\"\u003eRSpec\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot\" rel=\"nofollow noopener\"\u003eFactoryBot\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/teamcapybara/capybara\" rel=\"nofollow noopener\"\u003eCapybara\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003ePagination:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kaminari/kaminari\" rel=\"nofollow noopener\"\u003eKaminari\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ddnexus/pagy\" rel=\"nofollow noopener\"\u003ePagy\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eSerializer\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsonapi-serializer/jsonapi-serializer\" rel=\"nofollow noopener\"\u003eJSON API serializer\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails-api/active_model_serializers\" rel=\"nofollow noopener\"\u003eActiveModel serializer\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/procore/blueprinter\" rel=\"nofollow noopener\"\u003eBlueprinter\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eBackground jobs:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mperham/sidekiq\" rel=\"nofollow noopener\"\u003eSidekiq\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/resque/resque\" rel=\"nofollow noopener\"\u003eresque\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/collectiveidea/delayed_job\" rel=\"nofollow noopener\"\u003eDelayed job\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eSearch:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/searchkick\" rel=\"nofollow noopener\"\u003eElasticSearch (Searchkick)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/activerecord-hackery/ransack\" rel=\"nofollow noopener\"\u003eransack\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eFile upload:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/tree/main/activestorage\" rel=\"nofollow noopener\"\u003eActive Storage\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carrierwaveuploader/carrierwave\" rel=\"nofollow noopener\"\u003eCarrierwave\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003eOthers:\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yammer/circuitbox\" rel=\"nofollow noopener\"\u003eCircuitbox\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e","summary":"","date_published":"2022-02-07T13:00:00.000-05:00","attachments":[{"url":"https://aphid.fireside.fm/d/1437767933/262f7c7c-16e5-40a8-a4c6-156f71c79407/7556edc5-6509-4475-a0ef-08cff0f5116a.mp3","mime_type":"audio/mpeg","size_in_bytes":74788802,"duration_in_seconds":6232}]},{"id":"b96847eb-b53e-45b7-bb5d-cb72cb81a991","title":"是我们选择了Ruby，还是Ruby选择了我们?","url":"https://ruby.fireside.fm/episode-1","content_text":"平时喜欢的Podcast有哪些\n\n\nThe Bikeshed\nCode with Jason\nRemote Ruby\nRuby Rogues\nY Combinator\nIndie Hackers \nStarting Greatness with Michael Maples, Jr. \nInvest Like the Best with Patrick O'Shaughnessy \n\n\n回顾2021年，大家用了哪些比较有意思的技术或工具？\nHotwire\nTailwindCSS\nTailwindCSS JIT\nLogRocket\nVScode plugin\nChrome Extension\nDevHub\n\nShare Picks:\nSamgsung odessey neo g9\nHarvard CS50\nThe Odin Project\nvue.js\nmisbrand","content_html":"\u003cp\u003e平时喜欢的Podcast有哪些\u003c/p\u003e\n\n\u003cul\u003e\n\u003cli\u003eThe Bikeshed\u003c/li\u003e\n\u003cli\u003eCode with Jason\u003c/li\u003e\n\u003cli\u003eRemote Ruby\u003c/li\u003e\n\u003cli\u003eRuby Rogues\u003c/li\u003e\n\u003cli\u003eY Combinator\u003c/li\u003e\n\u003cli\u003eIndie Hackers \u003c/li\u003e\n\u003cli\u003eStarting Greatness with Michael Maples, Jr. \u003c/li\u003e\n\u003cli\u003eInvest Like the Best with Patrick O'Shaughnessy \u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003e回顾2021年，大家用了哪些比较有意思的技术或工具？\u003cbr\u003e\n\u003ca href=\"https://hotwired.dev/\" rel=\"nofollow noopener\"\u003eHotwire\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://tailwindcss.com/\" rel=\"nofollow noopener\"\u003eTailwindCSS\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://v2.tailwindcss.com/docs/just-in-time-mode\" rel=\"nofollow noopener\"\u003eTailwindCSS JIT\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://logrocket.com/\" rel=\"nofollow noopener\"\u003eLogRocket\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://marketplace.visualstudio.com/items?itemName=GitHub.remotehub\" rel=\"nofollow noopener\"\u003eVScode plugin\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://chrome.google.com/webstore/detail/vscode-button/belghfhelimohhplefkfbphdobmenalo\" rel=\"nofollow noopener\"\u003eChrome Extension\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://devhubapp.com/\" rel=\"nofollow noopener\"\u003eDevHub\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003eShare Picks:\u003cbr\u003e\n\u003ca href=\"https://www.samsung.com/us/computing/monitors/gaming/49--odyssey-g95na-gaming-dqhd-led-monitor-ls49ag952nnxza/\" rel=\"nofollow noopener\"\u003eSamgsung odessey neo g9\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://pll.harvard.edu/course/cs50-introduction-computer-science?delta=0\" rel=\"nofollow noopener\"\u003eHarvard CS50\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://www.theodinproject.com/\" rel=\"nofollow noopener\"\u003eThe Odin Project\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://vuejs.org/\" rel=\"nofollow noopener\"\u003evue.js\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/mkrl/misbrands\" rel=\"nofollow noopener\"\u003emisbrand\u003c/a\u003e\u003c/p\u003e","summary":"","date_published":"2022-01-10T17:00:00.000-05:00","attachments":[{"url":"https://aphid.fireside.fm/d/1437767933/262f7c7c-16e5-40a8-a4c6-156f71c79407/b96847eb-b53e-45b7-bb5d-cb72cb81a991.mp3","mime_type":"audio/mpeg","size_in_bytes":93677528,"duration_in_seconds":3903}]}]}