41554 blogs · [ { "id": "01a087d7-e599-71e1-9603-82e0ceeaf7ad", "title": "AI Agents and the Refactoring That Never Happens", "url": "https://rosenfeld.page/articles/programming/2026_09_02_ai_agents_and_the_refactoring_that_never_happens/", "published_at": "2026-09-02T12:00:00+00:00" }, { "id": "01a087d7-e599-71e1-9603-82e0cefedb41", "title": "Seamless Postgres Indexing in Rails: The Case for Delayed Migrations", "url": "https://rosenfeld.page/articles/ruby-rails/2026_02_27_seamless_postgres_indexing_in_rails_the_case_for_delayed_migrations/", "published_at": "2026-02-27T16:18:00+00:00" }, { "id": "01a087d7-e599-71e1-9603-82e0cff6e603", "title": "Upgrading 200 GB Postgres within 10 minutes in Heroku", "url": "https://rosenfeld.page/articles/2025_11_16_upgrading_200_gb_postgres_within_10_minutes_in_heroku/", "published_at": "2025-11-16T13:37:00+00:00" }, { "id": "01a087d7-e599-71e1-9603-82e0d0b1a5a3", "title": "Creating web app monoliths that boot instantly with Ruby", "url": "https://rosenfeld.page/articles/ruby-rails/2024_10_25_creating_web_app_monoliths_that_boot_instantly_with_ruby/", "published_at": "2024-10-25T20:35:00+00:00" }, { "id": "01a087d7-e599-71e1-9603-82e0d10c9039", "title": "Why is your Rails app boot slow?", "url": "https://rosenfeld.page/articles/ruby-rails/2024_10_25_why_is_your_rails_app_boot_slow/", "published_at": "2024-10-25T20:35:00+00:00" }, { "id": "01a087d7-e599-71e1-9603-82e0d119baf8", "title": "LightBlog: a file-based blog app", "url": "https://rosenfeld.page/articles/2023_03_01_lightblog_a_file_based_blog_app/", "published_at": "2023-03-01T13:14:00+00:00" }, { "id": "01a087d7-e599-71e1-9603-82e0d1c1c0a7", "title": "Thank you, Heroku!", "url": "https://rosenfeld.page/articles/2022_11_07_thank_you_heroku/", "published_at": "2022-11-07T21:40:00+00:00" }, { "id": "01a087d7-e599-71e1-9603-82e0d2313827", "title": "Why proxying Bugsnag (or similar service) might be a good idea?", "url": "https://rosenfeld.page/articles/ruby-rails/2018_03_01_why_proxying_bugsnag_or_similar_service_might_be_a_good_idea/", "published_at": "2018-03-01T19:45:00+00:00" }, { "id": "01a087d7-e599-71e1-9603-82e0d2a6823b", "title": "The missing bit in the React community: a common interface", "url": "https://rosenfeld.page/articles/front-end/2018_01_25_the_missing_bit_in_the_react_community_a_common_interface/", "published_at": "2018-01-25T17:52:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2714d08d", "title": "Introducing sequel_tools: Rake integration over Sequel migrations and related tasks", "url": "https://rosenfeld.page/articles/ruby-rails/2017_12_15_introducing_sequel_tools_rake_integration_over_sequel_migrations_and_related_tasks/", "published_at": "2017-12-15T12:30:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e271be4cf", "title": "Testing HTTPS in a Linux development environment with self-signed certificates", "url": "https://rosenfeld.page/articles/programming/2017_12_01_testing_https_in_a_linux_development_environment_with_self_signed_certificates/", "published_at": "2017-12-01T19:12:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e27d042de", "title": "Upgrading PostgreSQL from 9.6 to 10 with minimal downtime using pglogical", "url": "https://rosenfeld.page/articles/infrastructure/2017_11_10_upgrading_postgresql_from_9_6_to_10_with_minimal_downtime_using_pglogical/", "published_at": "2017-11-10T15:00:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2877c888", "title": "Explicit request params binding in Ruby web apps (or \"convenience can be inconvenient\")", "url": "https://rosenfeld.page/articles/ruby-rails/2017_10_13_explicit_request_params_binding_in_ruby_web_apps/", "published_at": "2017-10-13T19:50:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e292a3cc3", "title": "The day I reached the 1600 columns limit in PostgreSQL", "url": "https://rosenfeld.page/articles/programming/2017_09_26_the_day_i_reached_the_1600_columns_limit_in_postgresql/", "published_at": "2017-09-26T11:15:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e29f632f5", "title": "Adopting React.js seems risky for long-term projects", "url": "https://rosenfeld.page/articles/2017_06_16_adopting_react_js_seems_risky_for_long_term_projects/", "published_at": "2017-06-16T18:10:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2af32b92", "title": "Ruby on Rails: the Bad and Good parts", "url": "https://rosenfeld.page/articles/ruby-rails/2017_05_03_ruby_on_rails_the_bad_and_good_parts/", "published_at": "2017-05-03T17:40:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2b6c3f9e", "title": "Feeling alone in the Ruby community and replacing Rails with Roda", "url": "https://rosenfeld.page/articles/ruby-rails/2017_05_01_feeling_alone_in_the_ruby_community_and_replacing_rails_with_roda/", "published_at": "2017-05-01T14:05:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2b90e3b4", "title": "Using RSpec Nested Transactions to speed up tests touching the database", "url": "https://rosenfeld.page/articles/ruby-rails/2016_08_05_using_rspec_nested_transactions_to_speed_up_tests_touching_the_database/", "published_at": "2016-08-05T22:24:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2be5655e", "title": "Introducing RackToolkit: a fast server and DSL designed to test Rack apps", "url": "https://rosenfeld.page/articles/ruby-rails/2016_07_27_introducing_racktoolkit_a_fast_server_and_dsl_designed_to_test_rack_apps/", "published_at": "2016-07-27T18:43:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2c551cf2", "title": "AutoReloader: a transparent automatic code reloader for Ruby", "url": "https://rosenfeld.page/articles/ruby-rails/2016_07_18_autoreloader_a_transparent_automatic_code_reloader_for_ruby/", "published_at": "2016-07-18T14:00:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2d421f0b", "title": "A Review of Code Reloaders for Ruby", "url": "https://rosenfeld.page/articles/ruby-rails/2016_07_18_a_review_of_code_reloaders_for_ruby/", "published_at": "2016-07-18T13:59:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2d6ee14b", "title": "The sad state of streaming in Ruby web applications", "url": "https://rosenfeld.page/articles/ruby-rails/2016_07_02_the_sad_state_of_streaming_in_ruby_web_applications/", "published_at": "2016-07-02T11:57:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2d7bfe42", "title": "A sample Ruby script to achieve fast incremental back-up on btrfs partition", "url": "https://rosenfeld.page/articles/infrastructure/2016_06_24_a_sample_ruby_script_to_achieve_fast_incremental_back_up_on_btrfs_partition/", "published_at": "2016-06-24T15:31:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2dcd1c07", "title": "Akita's Manga Downloadr Elixir vs Ruby performance revisited", "url": "https://rosenfeld.page/articles/ruby-rails/2016_06_20_akita_s_manga_downloadr_elixir_vs_ruby_performance_revisited/", "published_at": "2016-06-20T11:40:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2e35794d", "title": "Getting an SPA to load the fastest possible way (and how Webpack can help you)", "url": "https://rosenfeld.page/articles/2016_02_29_getting_an_spa_to_load_the_fastest_possible_way_and_how_webpack_can_help_you/", "published_at": "2016-02-29T11:08:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2e4985f7", "title": "Scripts loading trade-offs: a performance analysis", "url": "https://rosenfeld.page/articles/2016_02_29_scripts_loading_trade_offs_a_performance_analysis/", "published_at": "2016-02-29T11:00:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2e77092a", "title": "Improving SPA loading time with webpack (and why Sprockets is in your way)", "url": "https://rosenfeld.page/articles/2016_02_26_improving_spa_loading_time_with_webpack_and_why_sprockets_is_in_your_way/", "published_at": "2016-02-26T17:25:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2f1fb6d9", "title": "Preventing NewRelic RUM metrics for certain clients with Rails apps", "url": "https://rosenfeld.page/articles/ruby-rails/2014_05_16_preventing_newrelic_rum_metrics_for_certain_clients_with_rails_apps/", "published_at": "2014-05-16T15:56:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e2f728914", "title": "Sequel is awesome and much better than ActiveRecord", "url": "https://rosenfeld.page/articles/ruby-rails/2013_12_18_sequel_is_awesome_and_much_better_than_activerecord/", "published_at": "2013-12-18T22:40:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e30562dff", "title": "Server-side or Client-side focus?", "url": "https://rosenfeld.page/articles/2013_12_11_server_side_or_client_side_focus/", "published_at": "2013-12-11T10:56:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e30c5234e", "title": "Running Java from MRI Ruby through DRb", "url": "https://rosenfeld.page/articles/ruby-rails/2013_07_16_running_java_from_mri_ruby_through_drb/", "published_at": "2013-07-16T11:17:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e3157d3ce", "title": "Rails: the Good and the Bad", "url": "https://rosenfeld.page/articles/ruby-rails/2013_02_16_rails_the_good_and_the_bad/", "published_at": "2013-02-16T15:41:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e316cf311", "title": "Client-side code testing with oojspec", "url": "https://rosenfeld.page/articles/programming/2012_07_20_client_side_code_testing_with_oojspec/", "published_at": "2012-07-20T12:16:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e316edd1e", "title": "Client-side Object Oriented Programming and Testing", "url": "https://rosenfeld.page/articles/programming/2012_06_03_client_side_object_oriented_programming_and_testing/", "published_at": "2012-06-03T19:52:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e31fed3ac", "title": "Getting started with Sequel in Rails", "url": "https://rosenfeld.page/articles/2012_04_18_getting_started_with_sequel_in_rails/", "published_at": "2012-04-18T15:35:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e3247aeac", "title": "MySql localhost behavior is totally insane", "url": "https://rosenfeld.page/articles/2012_03_26_mysql_localhost_behavior_is_totally_insane/", "published_at": "2012-03-26T22:40:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e32816b1b", "title": "How NokoGiri and JRuby saved my week", "url": "https://rosenfeld.page/articles/ruby-rails/2012_03_04_how_nokogiri_and_jruby_saved_my_week/", "published_at": "2012-03-04T12:30:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e328dd225", "title": "Should we move forward or remain backward compatible?", "url": "https://rosenfeld.page/articles/ruby-rails/2012_03_04_should_we_move_forward_or_remain_backward_compatible/", "published_at": "2012-03-04T12:30:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e330da231", "title": "How do Rails and Grails differ?", "url": "https://rosenfeld.page/articles/programming/2012_01_21_how_do_rails_and_grails_differ/", "published_at": "2012-01-21T14:45:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e33a90776", "title": "What did I learn about Code Writing?", "url": "https://rosenfeld.page/articles/programming/2012_01_08_what_did_i_learn_about_code_writing/", "published_at": "2012-01-08T23:57:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e34101693", "title": "Facebook, Twitter, Google+ - something is still missing", "url": "https://rosenfeld.page/articles/2011_12_30_facebook_twitter_google_something_is_still_missing/", "published_at": "2011-12-30T12:00:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e34b519ab", "title": "Testing JavaScript with Node.js, Jasmine and Sinon.js", "url": "https://rosenfeld.page/articles/programming/2011_10_05_testing_javascript_with_node_jasmine_and_sinon/", "published_at": "2011-10-05T23:22:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e34e8cad5", "title": "Adding parts of a modified file to git stage", "url": "https://rosenfeld.page/articles/programming/2011_08_13_adding_parts_of_a_modified_file_to_git_stage/", "published_at": "2011-08-13T15:35:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e35b7c2e4", "title": "Why I Prefer Rails over Grails", "url": "https://rosenfeld.page/articles/programming/2011_08_07_why_i_prefer_rails_over_grails/", "published_at": "2011-08-07T21:20:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e35d26e73", "title": "How to write maintainable code?", "url": "https://rosenfeld.page/articles/programming/2011_08_06_how_to_write_maintainable_code/", "published_at": "2011-08-06T08:37:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e3600e65e", "title": "The Danger in Software Customization", "url": "https://rosenfeld.page/articles/2011_07_07_the_danger_in_software_customization/", "published_at": "2011-07-07T23:40:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e36bbfc11", "title": "Installing Gitorious has never been so easy", "url": "https://rosenfeld.page/articles/2011_03_06_installing_gitorious_has_never_been_so_easy/", "published_at": "2011-03-06T20:40:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e375b0324", "title": "Achieving Productivity with Vim as IDE", "url": "https://rosenfeld.page/articles/2010_12_26_achieving_productivity_with_vim_as_ide/", "published_at": "2010-09-10T20:00:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e37ee4349", "title": "Generating PDF with ODF templates in Rails", "url": "https://rosenfeld.page/articles/ruby-rails/2010_03_16_generating_pdf_with_odf_templates_in_rails/", "published_at": "2010-03-16T21:00:00+00:00" }, { "id": "01a087d7-e59a-711f-9465-410e381b1fb3", "title": "Site's Debut", "url": "https://rosenfeld.page/articles/2010_03_16_site_debut/", "published_at": "2010-03-16T20:40:00+00:00" } ] posts Claim your blog
Back to rosenfeld.page
Blog · corpus.blog/blogs/rosenfeld.page/posts

rosenfeld.page

rosenfeld.page

2026

2025

2024

2023

2022

2018

2017

2016

2014

2013

2012

2011

2010