<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://blog.saeloun.com/authors/aditi/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/aditya/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/agnidipta/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/ajinkya/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/akash/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/akhil/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/alkesh/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/amol/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/aniket/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/ankita/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/apoorv/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/archana/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/bastin/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/chetan/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/deepak/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/deepti/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/dhiraj/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/gowsik/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/harshaan/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/jijo/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/judis/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/karthik/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/keshav/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/manmeet/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/mayank/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/mayank_agnihotri/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/mohini/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/murtaza/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/narendra/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/navaneeth/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/nishant/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/onkar/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/prajakta/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/prasad/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/prasanth/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/prateek/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/puneet/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/rakesh/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/rohit/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/rohitjoshi/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/romil/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/sana/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/sanjib/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/santanu/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/shivam/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/shruti/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/siddharth/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/sonam/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/supriya/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/swaathi/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/vamsi/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/vikrant/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/vipulnsward/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/authors/viraj/</loc>
<lastmod>2026-03-11T09:49:21+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/02/23/rails-config-for-secrets-credentials/</loc>
<lastmod>2019-02-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/02/23/rails-6-adds-create-or-find-by/</loc>
<lastmod>2019-02-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/02/23/rails-6-string-truncate-bytes/</loc>
<lastmod>2019-02-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/02/24/rails-6-enumerable-index-with/</loc>
<lastmod>2019-02-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/02/26/rails-6-negative-scopes-for-enum-values/</loc>
<lastmod>2019-02-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/02/26/ruby-2-7-method-shorthand/</loc>
<lastmod>2019-02-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/03/01/rails-6-before-and-after-for-date-and-time/</loc>
<lastmod>2019-03-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/03/02/rails-activejob-timezone-support/</loc>
<lastmod>2019-03-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/03/03/ruby-2-7-enumerable-tally/</loc>
<lastmod>2019-03-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/03/05/rails-6-relation-reselect/</loc>
<lastmod>2019-03-05T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/03/05/rails-6-array-including-excluding/</loc>
<lastmod>2019-03-05T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/04/11/rails-6-rails-db-prepare/</loc>
<lastmod>2019-04-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/04/15/rails-6-deprecates-update-attributes/</loc>
<lastmod>2019-04-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/05/25/ruby-2-7-enumerable-filter-map/</loc>
<lastmod>2019-05-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/05/26/who-was-hiring-at-railsconf/</loc>
<lastmod>2019-05-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/07/18/rails-6-delegate-with-private-true-option/</loc>
<lastmod>2019-07-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/07/22/rails-6-sms-link-helper/</loc>
<lastmod>2019-07-22T18:10:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/08/07/explicit-rails-server-handler-option/</loc>
<lastmod>2019-08-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/08/15/rails-6-extract-associated/</loc>
<lastmod>2019-08-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/08/18/rails-6-i18n-key-support-submit-tag/</loc>
<lastmod>2019-08-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/08/19/rails-6-add-array-extract/</loc>
<lastmod>2019-08-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/08/19/ruby-2-7-adds-beginless-range/</loc>
<lastmod>2019-08-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/08/20/ruby-2-7-time-ceil-and-time-floor-methods/</loc>
<lastmod>2019-08-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/08/22/running-scheduled-jobs-in-multiple-timezones-with-clockwork/</loc>
<lastmod>2019-08-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/08/27/rails-6-touch-all-method/</loc>
<lastmod>2019-08-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/09/01/ruby-2-7-frozenerror-receiver/</loc>
<lastmod>2019-09-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/09/02/ruby-2-7-proc-without-block-warning/</loc>
<lastmod>2019-09-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/09/03/rails-notes-command-upgrades-in-rails-6/</loc>
<lastmod>2019-09-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/09/04/identify-timezone-from-latitude-longitude/</loc>
<lastmod>2019-09-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/09/09/rails-6-disable-advisory-locks/</loc>
<lastmod>2019-09-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/09/10/rails-6-adds-hash-deep-transform-values/</loc>
<lastmod>2019-09-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/09/11/rails-6-custom-serializers-for-activejob-arguments/</loc>
<lastmod>2019-09-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/09/12/rails-6-adds-dig-to-actiondispatch-request-session/</loc>
<lastmod>2019-09-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/09/16/how-to-start-freelancing-consulting-in-your-field/</loc>
<lastmod>2019-09-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/09/17/ruby-2-7-module-const-source-location/</loc>
<lastmod>2019-09-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/09/23/new-irb-features/</loc>
<lastmod>2019-09-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/09/24/ruby-2-7-integer-with-range/</loc>
<lastmod>2019-09-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/09/30/rails-6-adds-db-seed-replant-task-and-db-truncate-all/</loc>
<lastmod>2019-09-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/01/rails-6-1-adds-http-feature-policy/</loc>
<lastmod>2019-10-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/01/rails-6-action-text/</loc>
<lastmod>2019-10-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/03/ruby-2-7-adds-enumerator-lazy-eager/</loc>
<lastmod>2019-10-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/07/ruby-2-7-keyword-arguments-redesign/</loc>
<lastmod>2019-10-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/08/distance-calculation-in-ruby-rgeo-geospatial-calculation/</loc>
<lastmod>2019-10-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/10/rails-6-adds-support-for-multi-environment-credentials/</loc>
<lastmod>2019-10-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/14/ruby-adds-array-intersection/</loc>
<lastmod>2019-10-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/15/rails-6-delete-by-destroy-by/</loc>
<lastmod>2019-10-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/17/ruby-2-7-adds-unboundmethod-bind-call-method/</loc>
<lastmod>2019-10-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/21/rails-6-activerecord-relation-pick-method/</loc>
<lastmod>2019-10-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/22/rails-6-adds-support-for-actioncable-testing/</loc>
<lastmod>2019-10-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/23/ruby-lazy-enumerators/</loc>
<lastmod>2019-10-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/24/ruby-2-7-adds-inherit-as-optional-argument-to-module-autload/</loc>
<lastmod>2019-10-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/28/bind-parameters-in-activerecord-sql-queries/</loc>
<lastmod>2019-10-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/29/rails-6-after-save-commit/</loc>
<lastmod>2019-10-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/30/rails-6-removes-action-view-helper-image-alt/</loc>
<lastmod>2019-10-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/10/31/rails-6-adds-guard-against-dns-rebinding-attacks/</loc>
<lastmod>2019-10-31T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/11/04/rails-6-active-storage-updates/</loc>
<lastmod>2019-11-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/11/11/rails-6-action-mailbox-tryout/</loc>
<lastmod>2019-11-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/11/12/attachments-in-action-text-rails-6/</loc>
<lastmod>2019-11-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/11/12/rails-6-adds-purpose-metadata-to-cookies/</loc>
<lastmod>2019-11-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/11/19/who-was-hiring-at-rubyconf-2019/</loc>
<lastmod>2019-11-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/11/20/rails-6-adds-each-value-method-to-actioncontroller-parameters/</loc>
<lastmod>2019-11-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/11/24/ruby-2-7-comparable-clamp-with-a-range/</loc>
<lastmod>2019-11-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/11/27/ruby-2-7-enumerator-produce/</loc>
<lastmod>2019-11-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/12/02/dir-glob-and-dir-no-longer-allow-nul-separated-glob-pattern-in-ruby-2-7/</loc>
<lastmod>2019-12-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/12/03/rails-6-adds-activesupport-parameter-filter/</loc>
<lastmod>2019-12-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/12/04/ruby-2-7-adds-new-operator-for-arguments-forwarding/</loc>
<lastmod>2019-12-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/12/09/ruby-2-7-added-method-parameters-to-method-inspect/</loc>
<lastmod>2019-12-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/12/09/ruby-2-7-added-symbol-start-with-and-symbol-end-with-method/</loc>
<lastmod>2019-12-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/12/10/rails-block-writes-to-database-connection-while-prevent-writes/</loc>
<lastmod>2019-12-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/12/23/ruby-2-7-time-inspect/</loc>
<lastmod>2019-12-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2019/12/24/ruby-2-7-allows-calling-a-private-method-with-self/</loc>
<lastmod>2019-12-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/01/06/ruby-2-7-revert-flip-flop-operator-deprecation/</loc>
<lastmod>2020-01-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/01/07/ruby-2-7-deprecated-regexp-match-nil-arg/</loc>
<lastmod>2020-01-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/01/08/activerecord-database-performance-n-1-includes-preload-eager-load-pluck/</loc>
<lastmod>2020-01-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/01/13/ruby-2-7-fixed-the-parsing-for-multiple-assignment-with-rescue-modifier/</loc>
<lastmod>2020-01-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/01/15/rails-6-adds-webpacker-as-default-js-compiler/</loc>
<lastmod>2020-01-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/01/20/ruby-2-7-allows-placing-of-comment-lines-between-fluent-dots/</loc>
<lastmod>2020-01-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/01/21/rails-6-1-adds-query-method-missing-to-find-orphan-records/</loc>
<lastmod>2020-01-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/01/27/how-to-pass-arguments-to-methods-in-ruby-and-how-it-affects-the-arity/</loc>
<lastmod>2020-01-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/01/28/ruby-singleton-class-syntax-warned/</loc>
<lastmod>2020-01-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/01/29/rails-6-adds-activerecord-relation-annotate-for-adding-sql-comments-to-activerecord-relation-queries/</loc>
<lastmod>2020-01-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/02/03/rails-allows-configure-service-for-attachments-to-activestorage/</loc>
<lastmod>2020-02-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/02/04/rails-6-activesupport-char-unicode-deprecations/</loc>
<lastmod>2020-02-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/02/04/rails-6-adds-rails-db-system-change-command/</loc>
<lastmod>2020-02-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/02/10/rails-support-for-if-exists-if-not-exists-on-remove-column-add-column-in-migrations/</loc>
<lastmod>2020-02-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/02/11/rails-benchmark-generator/</loc>
<lastmod>2020-02-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/02/12/rails-active-support-disallowed-deprecations/</loc>
<lastmod>2020-02-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/02/14/rails-6-multiple-database-support/</loc>
<lastmod>2020-02-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/02/17/rails-6-1-adds-at-option-to-perform-enqueued-jobs-test-helper/</loc>
<lastmod>2020-02-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/02/18/ruby-2-7-access-and-setting-of-safe-warned-will-become-global-variable/</loc>
<lastmod>2020-02-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/02/19/rails-6-adds-ability-to-automatically-switch-database-connections/</loc>
<lastmod>2020-02-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/02/24/rails-6-1-rake-eager-load/</loc>
<lastmod>2020-02-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/02/25/rails-strict-loading-mode-to-fix-n-1/</loc>
<lastmod>2020-02-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/02/26/ruby-hash-transform-keys-now-accepts-a-hash-that-maps-existing-keys-to-new-keys/</loc>
<lastmod>2020-02-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/03/04/rails-adds-jitter-to-activejob-exceptions-retry-on/</loc>
<lastmod>2020-03-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/03/06/eagerload-active-storage-models/</loc>
<lastmod>2020-03-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/03/09/ruby-2-7-setting-special-variables-to-non-nil-value-is-warned/</loc>
<lastmod>2020-03-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/03/10/rails-add-round-mode-parameter-to-number-helpers/</loc>
<lastmod>2020-03-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/03/17/rails-adds-actioncable-channel-stop-stream-from-and-actioncable-channel-stop-stream-for-methods/</loc>
<lastmod>2020-03-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/03/18/rails-schema-cache-path-config/</loc>
<lastmod>2020-03-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/03/24/rails-attribute-name-previously-changed-accepts-from-and-to-arguments/</loc>
<lastmod>2020-03-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/03/30/pick-uses-already-loaded-results/</loc>
<lastmod>2020-03-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/04/06/rails-disallow-return-break-and-throw-to-exit-transaction/</loc>
<lastmod>2020-04-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/04/08/heredoc-in-ruby-and-rails/</loc>
<lastmod>2020-04-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/04/14/rails-6-1-adds-actioncable-channel-stream-or-reject-for-to-stream-or-reject-connection-based-on-presence-of-record/</loc>
<lastmod>2020-04-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/04/14/using-optimizer-hints-in-rails-6/</loc>
<lastmod>2020-04-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/04/20/rails-6-1-adds-enumerable-pick/</loc>
<lastmod>2020-04-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/04/21/rails-adds-support-for-db-rollback-name-for-multiple-database-applications/</loc>
<lastmod>2020-04-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/04/27/rails-time-subseconds/</loc>
<lastmod>2020-04-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/04/27/ruby-adds-endless-method-definition-experimental/</loc>
<lastmod>2020-04-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/04/29/rails-support-descending-order-for-find-each-find-in-batches/</loc>
<lastmod>2020-04-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/05/04/how-to-reduce-heroku-slug-size/</loc>
<lastmod>2020-05-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/05/06/rails-using-interactor-gem/</loc>
<lastmod>2020-05-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/05/11/if-not-exists-for-index/</loc>
<lastmod>2020-05-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/05/11/rails-support-annotates-html-output-with-template-file-names/</loc>
<lastmod>2020-05-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/05/19/rails-6-1-adds-rescue-from-to-actioncable-connection-base/</loc>
<lastmod>2020-05-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/05/19/rails-6-adds-activejob-testcase-perform-enqueued-jobs-without-a-block/</loc>
<lastmod>2020-05-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/05/20/rails-6-1-adds-support-for-signed-ids-to-active-record/</loc>
<lastmod>2020-05-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/05/26/each-pair-each-value-return-enumerators/</loc>
<lastmod>2020-05-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/06/10/rails-support-bulk-insert-on-relation/</loc>
<lastmod>2020-06-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/06/17/rails-active-model-errors/</loc>
<lastmod>2020-06-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/07/23/acid-database/</loc>
<lastmod>2020-07-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/07/27/rails-web-image-content-type-config/</loc>
<lastmod>2020-07-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/08/03/rails-6-1-alpha-to-allow-relations-with-sql-comments-and-optimizer-hints-in-or/</loc>
<lastmod>2020-08-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/08/03/ruby-3-0-change-of-behaviour-for-procs-auto-splatting/</loc>
<lastmod>2020-08-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/08/04/how-to-investigate-your-build-size-in-webpack/</loc>
<lastmod>2020-08-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/08/17/find-pattern-in-pattern-matching/</loc>
<lastmod>2020-08-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/08/31/ruby-adds-experimental-rightward-assignment/</loc>
<lastmod>2020-08-31T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/09/02/rails-adds-scaffolding-new-app-with-minimal-flag/</loc>
<lastmod>2020-09-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/09/09/rails-fixes-schema-generation-on-migrating-db-with-name/</loc>
<lastmod>2020-09-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/09/09/ruby-adds-name-method-to-symbol/</loc>
<lastmod>2020-09-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/09/16/add-default-value-in-trix/</loc>
<lastmod>2020-09-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/09/16/ruby-3-0-to-add-support-for-forwarding-arguments-along-with-lead-arguments/</loc>
<lastmod>2020-09-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/09/23/prepend-class-methods-for-concerns/</loc>
<lastmod>2020-09-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/09/30/rails-deprecates-db-structure-commands/</loc>
<lastmod>2020-09-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/09/30/ruby-adds-support-for-hash-except/</loc>
<lastmod>2020-09-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/11/15/rails-6-1-allows-attribute-default-to-be-configured-but-keeping-its-type/</loc>
<lastmod>2020-11-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2020/11/18/rails-6-1-adds-support-for-destroying-dependent-associations-in-the-background/</loc>
<lastmod>2020-11-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/01/08/rails-6-1-pre-database-connection-switching/</loc>
<lastmod>2021-01-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/01/08/rails-6-check-constraints-database-migrations/</loc>
<lastmod>2021-01-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/01/18/form-with-now-defaults-to-non-remote-forms/</loc>
<lastmod>2021-01-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/01/25/rails-6-allow-where-clause-reference-association-by-alias-name/</loc>
<lastmod>2021-01-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/02/05/add-validate-numericality-in-range/</loc>
<lastmod>2021-02-05T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/02/15/rails-7-adds-query-method-associated-to-check-association-presence/</loc>
<lastmod>2021-02-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/02/25/rails-allows-benchmark-method-to-be-called-from-anywhere/</loc>
<lastmod>2021-02-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/02/26/rails-introduces-new-syntax-for-enum/</loc>
<lastmod>2021-02-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/03/01/rails-6-1-adds-config-for-lazy-image-loading/</loc>
<lastmod>2021-03-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/03/02/react-17-removes-bubbling-from-onscroll/</loc>
<lastmod>2021-03-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/03/08/rails-6-1-adds-excluding-to-active-record-relation/</loc>
<lastmod>2021-03-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/03/16/rails-adds-sole-and-find-sole-by/</loc>
<lastmod>2021-03-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/03/17/rails-enumerable-maximum-and-minimum/</loc>
<lastmod>2021-03-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/03/23/rails-adds-support-for-eager-loading-all-rich-text-associations-at-once/</loc>
<lastmod>2021-03-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/03/24/rails-adds-active-storage-streaming/</loc>
<lastmod>2021-03-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/03/30/rails-6-1-remove-index-if-exists/</loc>
<lastmod>2021-03-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/03/31/rails-adds-ability-to-query-async/</loc>
<lastmod>2021-03-31T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/04/06/react-17-removes-event-pooling-in-modern-system/</loc>
<lastmod>2021-04-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/04/13/rails-enable-scoping-to-apply-to-all-queries/</loc>
<lastmod>2021-04-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/04/14/enqueue-failures-to-perform-later-rails/</loc>
<lastmod>2021-04-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/04/20/rails-add-in-order-of-method-in-enumerable/</loc>
<lastmod>2021-04-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/04/21/rails-7-invert-where-method/</loc>
<lastmod>2021-04-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/04/23/react-keyboard-event-code/</loc>
<lastmod>2021-04-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/04/27/rails-7-allow-constructor-in-has-one-through/</loc>
<lastmod>2021-04-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/05/04/rails-add-option-to-disable-joins-for-associations/</loc>
<lastmod>2021-05-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/05/05/rails-7-transform-hash-into-html-for-erb-interpolation/</loc>
<lastmod>2021-05-05T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/05/11/rails-7-activesupport-cache-memcachestore-now-accepts-an-explicit-nil-for-addresses/</loc>
<lastmod>2021-05-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/05/12/ruby-evaluate-multiple-assignment-left-hand-side-before-right/</loc>
<lastmod>2021-05-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/05/14/react-17-uses-browse-focusin-focusout-for-onfocus-onblur/</loc>
<lastmod>2021-05-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/05/18/ruby-adds-array-intersect/</loc>
<lastmod>2021-05-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/05/19/enumerable-tally-with-hash-argrument/</loc>
<lastmod>2021-05-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/05/25/rails-add-range-serializer-for-activejob/</loc>
<lastmod>2021-05-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/05/26/rails-7-adds-enumerable-sole/</loc>
<lastmod>2021-05-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/06/01/rails-add-disable-join-option-to-has-one-association/</loc>
<lastmod>2021-06-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/06/02/rails-access-nested-secrects-by-method-call/</loc>
<lastmod>2021-06-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/06/04/redux-4-1-0-converts-error-messages-to-error-code-indexes/</loc>
<lastmod>2021-06-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/06/08/rails-7-ensure-has-one-association-callbacks/</loc>
<lastmod>2021-06-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/06/09/rails-7-add-encryption-to-active-record/</loc>
<lastmod>2021-06-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/06/11/react-17-runs-use-effect-cleanup-asynchronously/</loc>
<lastmod>2021-06-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/06/15/ruby-adds-enumerable-compact-and-enumerator-lazy-compact/</loc>
<lastmod>2021-06-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/06/16/rails-7-provides-context-when-logging-unpermitted-parameters/</loc>
<lastmod>2021-06-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/06/17/es2021-logical-assignment-operator-and-or-nullish/</loc>
<lastmod>2021-06-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/06/20/remote-work-back-to-office/</loc>
<lastmod>2021-06-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/06/22/rails-active-storage-proxy/</loc>
<lastmod>2021-06-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/06/23/rails-7-adds-ability-to-provide-raw-sql-as-returning-to-upsert-all/</loc>
<lastmod>2021-06-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/06/24/babel-enables-class-field-and-private-methods/</loc>
<lastmod>2021-06-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/06/29/rails-7-generators-will-raise-errors-when-invalid/</loc>
<lastmod>2021-06-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/06/30/rails-7-adds-audio-analyzer-to-active-storage/</loc>
<lastmod>2021-06-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/07/01/react-17-adds-jsx-runtime-and-jsx-dev-runtime-for-the-new-jsx-transform/</loc>
<lastmod>2021-07-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/07/06/rails-7-adds-previously-persisted/</loc>
<lastmod>2021-07-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/07/07/ruby-3-1-pattern-matching-pin-operator/</loc>
<lastmod>2021-07-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/07/08/react-17-event-delagation/</loc>
<lastmod>2021-07-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/07/13/rails-7-mysql-vunerability-fix/</loc>
<lastmod>2021-07-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/07/14/rails-7-if-exists-if-not-exists-on-remove-add-foreign-key/</loc>
<lastmod>2021-07-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/07/15/react-18-adds-new-root-api/</loc>
<lastmod>2021-07-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/07/20/rails-7-allows-nested-locales/</loc>
<lastmod>2021-07-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/07/22/react-automatic-batching/</loc>
<lastmod>2021-07-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/07/27/rails-7-belongs-to-change-tracking/</loc>
<lastmod>2021-07-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/07/28/rails-7-adds-absolute-timestamp-cache-expiry/</loc>
<lastmod>2021-07-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/07/29/react-18-alpha-behavior-changes-in-suspense/</loc>
<lastmod>2021-07-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/08/03/ruby-adds-integer-try-convert/</loc>
<lastmod>2021-08-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/08/04/active-record-calculations-column-based-type-casting/</loc>
<lastmod>2021-08-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/08/10/logger-class-attr/</loc>
<lastmod>2021-08-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/08/17/active-storage-preview-error/</loc>
<lastmod>2021-08-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/08/18/rails-7-retry-failed-jobs-indefinitely/</loc>
<lastmod>2021-08-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/08/24/rails-7-button-to-rendering/</loc>
<lastmod>2021-08-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/08/25/rails-7-optimizes-remove-columns/</loc>
<lastmod>2021-08-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/08/27/es2021-replace-all-numeric-separator/</loc>
<lastmod>2021-08-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/08/31/rails-redirect-to-str/</loc>
<lastmod>2021-08-31T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/09/01/rails-7-attributes-for-database/</loc>
<lastmod>2021-09-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/09/07/rails-7-adds-active-record-relation-structurally-compatible/</loc>
<lastmod>2021-09-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/09/09/react-18-introduces-starttransition-api/</loc>
<lastmod>2021-09-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/09/14/rails-7-adds-expiring-urls-to-active-storage/</loc>
<lastmod>2021-09-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/09/15/rails-maginalia-query-logs/</loc>
<lastmod>2021-09-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/09/16/es2021-promise-any-and-aggregate-error/</loc>
<lastmod>2021-09-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/09/21/rails-7-adds-metadata-value-to-check-audio-presence-in-video-blobs/</loc>
<lastmod>2021-09-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/09/22/rails-7-adds-weekday-options-for-select/</loc>
<lastmod>2021-09-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/09/23/normalize-redux-state/</loc>
<lastmod>2021-09-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/09/28/ruby-allow-value-omission-in-hash-literals/</loc>
<lastmod>2021-09-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/09/29/rails-7-ruby-debug-replaces-byebug/</loc>
<lastmod>2021-09-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/09/30/react-devtool-adds-a-feature-to-trigger-error-boundary/</loc>
<lastmod>2021-09-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/10/05/rails-7-activerecord-adds-in-order-of-method/</loc>
<lastmod>2021-10-05T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/10/06/rails-7-add-ssl-support-postgresql-dbconsole/</loc>
<lastmod>2021-10-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/10/07/es2021-adds-weakref-finalizationregistry-features/</loc>
<lastmod>2021-10-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/10/12/support-nulls-first-for-all-databases/</loc>
<lastmod>2021-10-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/10/13/rails-7-introduces-activemodel-api/</loc>
<lastmod>2021-10-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/10/14/ecmascript-private-fields/</loc>
<lastmod>2021-10-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/10/19/rails-arel-primer/</loc>
<lastmod>2021-10-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/10/20/essential-skills-for-a-senior-rails-developer/</loc>
<lastmod>2021-10-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/10/21/ecmacscript-public-instance-fields-and-private-instance-fields/</loc>
<lastmod>2021-10-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/10/22/cypress-add-select-by-index/</loc>
<lastmod>2021-10-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/10/26/rails-7-add-from-to-assert-no-changes/</loc>
<lastmod>2021-10-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/10/27/rails-7-adds-database-specific-setup/</loc>
<lastmod>2021-10-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/10/28/css-custom-properties/</loc>
<lastmod>2021-10-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/11/03/instrument-active-storage-analyzers/</loc>
<lastmod>2021-11-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/11/09/rails-7-adds-additional-javascript-generator-options/</loc>
<lastmod>2021-11-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/11/10/rails-7-adds-priority-to-active-job-tests/</loc>
<lastmod>2021-11-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/11/11/8-ways-to-handle-react-state-part1/</loc>
<lastmod>2021-11-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/11/12/cy-screnshot-accepts-overwrite-true/</loc>
<lastmod>2021-11-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/11/16/replacing-webpacker-with-importmapped/</loc>
<lastmod>2021-11-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/11/17/rails-7-added-css-app-generator/</loc>
<lastmod>2021-11-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/11/18/ecmacscript-static-fields/</loc>
<lastmod>2021-11-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/11/19/cypress-unselect-all-selected-options/</loc>
<lastmod>2021-11-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/11/21/pii-removal-aws-dms/</loc>
<lastmod>2021-11-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/11/24/ruby-adds-matchdata-match-and-match-length/</loc>
<lastmod>2021-11-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/11/25/ecmascript-top-level-await/</loc>
<lastmod>2021-11-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/11/26/cy-pause-should-not-be-ignored/</loc>
<lastmod>2021-11-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/11/28/saeloun-rebranding-website-exercise/</loc>
<lastmod>2021-11-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/11/30/location-safe-redirect/</loc>
<lastmod>2021-11-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/01/rails-7-default-values-for-i18n-translate/</loc>
<lastmod>2021-12-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/02/new-features-in-react-router-6/</loc>
<lastmod>2021-12-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/03/cypress-add-slowtestthreshold/</loc>
<lastmod>2021-12-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/06/aniket-first-week-at-saeloun/</loc>
<lastmod>2021-12-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/06/saeloun-rebranding-virtual-brand-sprint/</loc>
<lastmod>2021-12-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/07/my-first-week-at-saeloun-as-an-apprentice-developer/</loc>
<lastmod>2021-12-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/07/rails-7-adds-format-day/</loc>
<lastmod>2021-12-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/08/rails-7-adds-cacheable-helper/</loc>
<lastmod>2021-12-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/09/react-18-use-id-api/</loc>
<lastmod>2021-12-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/14/creating-visual-identity-moodboard/</loc>
<lastmod>2021-12-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/14/my-second-week-as-an-apprentice-developer/</loc>
<lastmod>2021-12-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/14/rails-7-attachment-tag-name/</loc>
<lastmod>2021-12-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/15/using-condenser-for-subsetting-databases-and-removing-pii/</loc>
<lastmod>2021-12-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/15/rails-7-updates-to-group-by-and-having/</loc>
<lastmod>2021-12-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/16/hydration/</loc>
<lastmod>2021-12-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/17/cypress-throw-error-on-adding-existing-command/</loc>
<lastmod>2021-12-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/20/creating-visual-identity-colors/</loc>
<lastmod>2021-12-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/22/ruby-3-1-adds-class-descendants/</loc>
<lastmod>2021-12-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/23/navigation-in-react-router-6/</loc>
<lastmod>2021-12-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/24/scalability-testing-using-k6/</loc>
<lastmod>2021-12-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/27/aniket-second-week-experience-apprentice-saeloun/</loc>
<lastmod>2021-12-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/28/use-jsbundling-rails-gem-instead-of-individual-js-bundler-gems/</loc>
<lastmod>2021-12-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/29/amazon-personalize-recommendation/</loc>
<lastmod>2021-12-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/29/rails-7-adds-authenticate-by/</loc>
<lastmod>2021-12-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2021/12/30/react-18-usesyncexternalstore-api/</loc>
<lastmod>2021-12-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/01/04/postgresql-data-types-in-rails/</loc>
<lastmod>2022-01-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/01/05/how-to-use-enums-in-rails/</loc>
<lastmod>2022-01-05T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/01/06/whats-new-in-tailwindcss-v3/</loc>
<lastmod>2022-01-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/01/11/ruby-31-adds-class-subclasses/</loc>
<lastmod>2022-01-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/01/12/rails-7-adds-custom-enum-support-in-postgresql/</loc>
<lastmod>2022-01-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/01/13/react-18-usedefferedvalue-hook/</loc>
<lastmod>2022-01-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/01/14/cypress-920-throws-error-on-runtime-config-update/</loc>
<lastmod>2022-01-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/01/18/rails-7-updates-timestamp-for-insert-and-upsert-all-queries/</loc>
<lastmod>2022-01-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/01/19/rails-7-renders-accurate-plain-text-update-for-nested-fields/</loc>
<lastmod>2022-01-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/01/20/new-suspense-ssr-architecture-in-react-18/</loc>
<lastmod>2022-01-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/01/24/creating-visual-identity-typography/</loc>
<lastmod>2022-01-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/01/25/rails-7-postgres-support-for-generated-columns/</loc>
<lastmod>2022-01-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/01/27/rails-introduces-update-attribute/</loc>
<lastmod>2022-01-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/01/27/tips-to-make-react-accessible/</loc>
<lastmod>2022-01-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/01/rails-7-inverse-of-automatic-inference/</loc>
<lastmod>2022-02-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/02/rails-7-adds-nested-attributes-for-delegated-type/</loc>
<lastmod>2022-02-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/03/create-typescript-next-js-tailwind-application/</loc>
<lastmod>2022-02-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/04/cypress-9-2-0-new-env-variable-cypress-verify-timeout-introduced/</loc>
<lastmod>2022-02-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/08/3-design-principles/</loc>
<lastmod>2022-02-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/08/rails-7-raise-unsafe-redirect-error/</loc>
<lastmod>2022-02-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/09/rails-prevent-duplicates-in-find-by-cache/</loc>
<lastmod>2022-02-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/10/different-ways-to-handle-react-state-part2/</loc>
<lastmod>2022-02-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/11/cypress-9-3-0-added-a-selectfile-command/</loc>
<lastmod>2022-02-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/15/rails-drops-records-not-listed-in-in-order-of/</loc>
<lastmod>2022-02-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/16/ruby-3-1-adds-error-highlighting/</loc>
<lastmod>2022-02-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/17/how-to-integrate-react-app-with-google-analytics/</loc>
<lastmod>2022-02-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/22/rails-adds-numeric-option-to-numericality-validator/</loc>
<lastmod>2022-02-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/23/website-redesign/</loc>
<lastmod>2022-02-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/23/rails-fiber-safe-connection-pools/</loc>
<lastmod>2022-02-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/02/24/ecmascript2022-adds-add-method/</loc>
<lastmod>2022-02-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/01/ruby-fibers-101/</loc>
<lastmod>2022-03-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/02/rails-add-better-active-record-enum-assertions/</loc>
<lastmod>2022-03-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/03/infinite-scroll-with-pagination/</loc>
<lastmod>2022-03-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/04/measuring-and-optimizing-app-performance/</loc>
<lastmod>2022-03-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/07/our-remote-workstation/</loc>
<lastmod>2022-03-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/08/rails-7-allows-permitting-numeric-params/</loc>
<lastmod>2022-03-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/09/schema-dump-path-config/</loc>
<lastmod>2022-03-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/10/taking-control-of-scroll/</loc>
<lastmod>2022-03-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/15/rails-no-longer-ignores-destroy-association-async-job-config/</loc>
<lastmod>2022-03-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/16/action-text-forward-form-option-to-hidden-input/</loc>
<lastmod>2022-03-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/17/ecmascript-2022-ergonomic-check-for-private-fields/</loc>
<lastmod>2022-03-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/22/rails-loads-action-cable-via-zeitwerk/</loc>
<lastmod>2022-03-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/23/rails-7-adds-lock-with/</loc>
<lastmod>2022-03-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/24/code-splitting-in-react/</loc>
<lastmod>2022-03-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/29/prevent-shard-swapping/</loc>
<lastmod>2022-03-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/03/30/rails-7-postgres-fk-deferred/</loc>
<lastmod>2022-03-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/04/07/step-by-step-guide-to-gsap-library/</loc>
<lastmod>2022-04-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/04/12/ruby-variable-width-allocation/</loc>
<lastmod>2022-04-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/04/14/connected-to-does-not-require-role/</loc>
<lastmod>2022-04-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/04/14/react-18-allows-components-to-render-undfined/</loc>
<lastmod>2022-04-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/04/19/ruby-variable-width-allocation-part-2/</loc>
<lastmod>2022-04-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/04/20/rails-7-lazy-loads-schema-cache/</loc>
<lastmod>2022-04-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/05/18/goa-retreat/</loc>
<lastmod>2022-05-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/05/19/react-18-adds-onresize-event-to-video/</loc>
<lastmod>2022-05-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/05/24/sql-query-in-rails/</loc>
<lastmod>2022-05-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/05/31/rails-7-arel-filter-support/</loc>
<lastmod>2022-05-31T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/06/02/react-18-useinsertioneffect/</loc>
<lastmod>2022-06-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/06/03/cypress-9-6-0-multi-domain-tests/</loc>
<lastmod>2022-06-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/06/06/kubernetes-rollback/</loc>
<lastmod>2022-06-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/06/07/rails-allows-aliases-wthinsert-and-update-all/</loc>
<lastmod>2022-06-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/06/08/rails-pattern-matching-support-for-activemodel/</loc>
<lastmod>2022-06-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/06/09/copying-texts-to-clipboard-using-javascript/</loc>
<lastmod>2022-06-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/06/14/destroy-async-config/</loc>
<lastmod>2022-06-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/06/15/rails-7-extends-audio-tag-and-video-tag-to-accept-active-storage-attachments/</loc>
<lastmod>2022-06-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/06/22/rails-allows-overriding-reading-request/</loc>
<lastmod>2022-06-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/06/28/rails-add-js-alias/</loc>
<lastmod>2022-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/06/29/rails-overuse-of-engines/</loc>
<lastmod>2022-06-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/06/30/ecmascript2022-features/</loc>
<lastmod>2022-06-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/07/06/on-communication-and-context/</loc>
<lastmod>2022-07-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/07/08/react-custom-infinite-scroll-with-pagination/</loc>
<lastmod>2022-07-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/07/12/docker-cache/</loc>
<lastmod>2022-07-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/07/13/cypress-10-breaking-changes/</loc>
<lastmod>2022-07-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/07/20/rails-avoid-query-for-contradictory-relation/</loc>
<lastmod>2022-07-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/07/26/rails-6-insert-all/</loc>
<lastmod>2022-07-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/07/28/difference-between-useeffect-and-useeffectlayout-hooks/</loc>
<lastmod>2022-07-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/08/09/ruby-introduces-regexp-timeout/</loc>
<lastmod>2022-08-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/08/10/infinite-scroll-turbo/</loc>
<lastmod>2022-08-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/08/16/understanding-gemfile-and-gemfile-lock/</loc>
<lastmod>2022-08-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/08/18/rails-beginless-inclusion/</loc>
<lastmod>2022-08-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/08/23/rails-7-take-screenshot-params/</loc>
<lastmod>2022-08-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/08/24/readonly-touch-update-attr-fix/</loc>
<lastmod>2022-08-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/08/25/css-feature-queries/</loc>
<lastmod>2022-08-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/08/30/rails-db-schema-supports-schema-format-env/</loc>
<lastmod>2022-08-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/09/01/rails-receive-a-block-to-actioncontroller-parameters-to-h/</loc>
<lastmod>2022-09-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/09/02/css-parent-selector-has/</loc>
<lastmod>2022-09-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/09/06/extend-routes-grep-functionality/</loc>
<lastmod>2022-09-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/09/07/activerecord-select-adds-support-for-hash-values-in-rails-7/</loc>
<lastmod>2022-09-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/09/13/rails-7-through-reflection-class-opens-transactions/</loc>
<lastmod>2022-09-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/09/14/sqlite-binary-column-default-value/</loc>
<lastmod>2022-09-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/09/20/use-error-highlight/</loc>
<lastmod>2022-09-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/09/21/expo-ci-cd/</loc>
<lastmod>2022-09-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/09/22/difference-between-usecallback-and-usememo-hooks/</loc>
<lastmod>2022-09-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/09/27/rails-csrf/</loc>
<lastmod>2022-09-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/09/28/improve-in-order-of-querying/</loc>
<lastmod>2022-09-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/09/29/css-container-queries/</loc>
<lastmod>2022-09-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/10/11/download-eml-files/</loc>
<lastmod>2022-10-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/10/18/fix-cache-when-querying-with-mutable-params/</loc>
<lastmod>2022-10-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/10/19/infinite-range/</loc>
<lastmod>2022-10-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/11/02/exception-active-record-config/</loc>
<lastmod>2022-11-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/11/03/add-context-attribute-to-error-reporting-api/</loc>
<lastmod>2022-11-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/11/08/assert-redirected-to-http-status-code/</loc>
<lastmod>2022-11-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/11/09/validate-options-in-migration-files/</loc>
<lastmod>2022-11-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/11/11/overflow-clip-and-overflow-clip-margin-properties/</loc>
<lastmod>2022-11-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/11/15/strict-sqlite/</loc>
<lastmod>2022-11-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/11/17/add-parent-option-to-job-generator/</loc>
<lastmod>2022-11-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/11/17/tsrange-timezone-bug/</loc>
<lastmod>2022-11-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/11/22/data-immutable-object/</loc>
<lastmod>2022-11-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/11/22/pending-migrations-use-filename/</loc>
<lastmod>2022-11-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/11/23/rails-includes-second-options/</loc>
<lastmod>2022-11-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/11/24/tree-shaking-in-webpack-5/</loc>
<lastmod>2022-11-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/11/30/ar-store-regular-hash/</loc>
<lastmod>2022-11-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/12/02/css-media-query-range-context/</loc>
<lastmod>2022-12-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/12/08/rails-support-routes-prefixed-with-word-cable/</loc>
<lastmod>2022-12-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/12/08/many-passes-all-parameters/</loc>
<lastmod>2022-12-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/12/13/postgres15-released/</loc>
<lastmod>2022-12-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/12/15/css-accent-color/</loc>
<lastmod>2022-12-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2022/12/20/optimize-ar-batching/</loc>
<lastmod>2022-12-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/01/10/rails-add-ability-to-ignore-tables-by-regexp/</loc>
<lastmod>2023-01-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/01/11/rails-adds-env-local/</loc>
<lastmod>2023-01-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/01/20/dom-element-generation/</loc>
<lastmod>2023-01-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/01/24/allow-csrf-tokens-to-be-stored-outside-of-session/</loc>
<lastmod>2023-01-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/02/01/rails-allow-opting-out-of-samesite/</loc>
<lastmod>2023-02-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/02/02/rails-allow-db-prepare-to-load-schema-if-database-exists/</loc>
<lastmod>2023-02-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/02/06/css-cascading-layers/</loc>
<lastmod>2023-02-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/02/07/rails-preserve-ttl-while-incrementing/</loc>
<lastmod>2023-02-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/02/09/rails-initializers-you-dont-know-about-inflections/</loc>
<lastmod>2023-02-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/02/10/rails-add-reconnects-with-connected/</loc>
<lastmod>2023-02-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/02/16/manually-mount-react-component-using-ujs/</loc>
<lastmod>2023-02-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/02/16/new-features-in-vite-4/</loc>
<lastmod>2023-02-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/02/23/when-to-use-react-custom-hooks/</loc>
<lastmod>2023-02-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/02/24/integrate-tailwind-css-with-electron/</loc>
<lastmod>2023-02-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/02/27/rails-introduces-default-health-check-controller/</loc>
<lastmod>2023-02-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/03/02/replace-lodash-get-with-optional-chaining-and-nullish-coalescing-operator/</loc>
<lastmod>2023-03-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/03/21/setup-kubernetes-dashboard-eks/</loc>
<lastmod>2023-03-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/03/21/setup-ebs-csi-driver/</loc>
<lastmod>2023-03-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/03/21/setup-nginx-ingress-aws-eks/</loc>
<lastmod>2023-03-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/03/21/elastic-stack-aws-eks/</loc>
<lastmod>2023-03-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/03/21/caddy-server-rediection-with-ssl/</loc>
<lastmod>2023-03-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/03/28/improve-support-for-namespaces/</loc>
<lastmod>2023-03-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/03/30/when-to-use-usestate-vs-usereducer/</loc>
<lastmod>2023-03-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/04/06/know-about-css-where-is/</loc>
<lastmod>2023-04-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/04/10/restoring-records-using-papertrail/</loc>
<lastmod>2023-04-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/04/11/restore-postgres-database-in-fly-io/</loc>
<lastmod>2023-04-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/04/18/add-table-names-to-error-for-duplicate-column-definitions/</loc>
<lastmod>2023-04-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/04/27/how-to-add-cloudfront-cdn-to-rails-app/</loc>
<lastmod>2023-04-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/05/08/connect-aws-rds-with-ec2/</loc>
<lastmod>2023-05-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/05/10/deploy-jekyll-blog-to-aws-amplify/</loc>
<lastmod>2023-05-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/05/11/writing-resusable-code-with-react-composition/</loc>
<lastmod>2023-05-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/05/22/integrate-openai-api-in-ruby-application/</loc>
<lastmod>2023-05-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/05/29/extract-sample-rate-of-audio-from-audio-analyzer/</loc>
<lastmod>2023-05-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/05/31/customizing-rails-generators-using-thor-templates/</loc>
<lastmod>2023-05-31T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/06/08/scrolling-to-the-element-with-fixed-header-using-scrollintoview/</loc>
<lastmod>2023-06-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/06/16/add-quarter-to-date-time/</loc>
<lastmod>2023-06-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/06/21/rails-7-extends-enum-support/</loc>
<lastmod>2023-06-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/06/22/app-router-in-next-js-13/</loc>
<lastmod>2023-06-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/06/26/rails-env-local/</loc>
<lastmod>2023-06-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/07/03/website-redesign-part-2/</loc>
<lastmod>2023-07-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/07/06/react-error-boundaries/</loc>
<lastmod>2023-07-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/07/07/website-redesign-part-3/</loc>
<lastmod>2023-07-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/07/12/picture-tag-rails/</loc>
<lastmod>2023-07-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/07/13/building-chatbot-in-next-js-using-vercel-ai-sdk/</loc>
<lastmod>2023-07-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/07/17/add-ability-to-match-exception-messages-to-assert-raises-assertion/</loc>
<lastmod>2023-07-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/07/18/sort-your-rails-models/</loc>
<lastmod>2023-07-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/07/20/what-are-react-server-components/</loc>
<lastmod>2023-07-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/07/28/integrate-replicate-ai-in-rails-application/</loc>
<lastmod>2023-07-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/08/11/rails-7-1-store-secret-key-base-in-rails-config/</loc>
<lastmod>2023-08-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/08/11/2023-ecmascript-2023-new-features/</loc>
<lastmod>2023-08-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/08/14/rails-7-filter-test-by-line-range/</loc>
<lastmod>2023-08-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/08/23/open-ranges-are-now-supported-by-object-in/</loc>
<lastmod>2023-08-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/08/24/deciding-which-state-management-to-use-opting-between-use-context-and-redux/</loc>
<lastmod>2023-08-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/08/31/react-state-management-usereducer-vs-redux/</loc>
<lastmod>2023-08-31T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/09/13/react-zustand-vs-redux/</loc>
<lastmod>2023-09-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/09/14/set-and-restore-attributes-using-object-with/</loc>
<lastmod>2023-09-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/09/26/allow-error-reporter-to-handle-several-error-classes/</loc>
<lastmod>2023-09-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/09/28/why-project-estimation-is-important-for-a-project-manager/</loc>
<lastmod>2023-09-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/10/10/rails-force-ssl-true-production/</loc>
<lastmod>2023-10-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/10/13/karjat-retreat/</loc>
<lastmod>2023-10-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/10/16/rails-7-1-introduces-autoload-lib/</loc>
<lastmod>2023-10-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/10/24/rails-index-name-too-long/</loc>
<lastmod>2023-10-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/11/02/rails-7-1-introduces-active-record-base-normalization/</loc>
<lastmod>2023-11-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/11/14/rails-7-1-introduces-active-record-generate-token-for/</loc>
<lastmod>2023-11-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/11/15/rails-7-1-message-pack-as-message-serializer/</loc>
<lastmod>2023-11-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/11/16/integrating-google-calendar-api-into-rails-application/</loc>
<lastmod>2023-11-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/11/21/rails-7-1-expands-active-record-async-quries/</loc>
<lastmod>2023-11-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/11/23/understanding-javascript-generators-iterators-and-iterator-helpers/</loc>
<lastmod>2023-11-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/11/27/rails-7-1-adds-active-job-perform-all-later/</loc>
<lastmod>2023-11-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/11/29/rails-7-1-introduces-default-docker-files/</loc>
<lastmod>2023-11-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/12/04/ruby-3-3-range-size-method-rational-endpoint/</loc>
<lastmod>2023-12-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/12/06/rails-dual-database-setup/</loc>
<lastmod>2023-12-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/12/11/ruby-3-3-introduces-range-overlap/</loc>
<lastmod>2023-12-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/12/15/rails-7-1-allows-activerecord-reselect-to-accept-hash-values/</loc>
<lastmod>2023-12-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/12/18/ruby-3-3-duplicate-keyword-argument-warning/</loc>
<lastmod>2023-12-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/12/20/automating-fly-db-backup-with-github-actions/</loc>
<lastmod>2023-12-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2023/12/21/closures-in-react/</loc>
<lastmod>2023-12-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/01/02/rails-enums-validate-option/</loc>
<lastmod>2024-01-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/01/08/tailwind-vs-bootstrap/</loc>
<lastmod>2024-01-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/01/09/ruby-3-3-range-reverse-each-for-begin-endless-ranges/</loc>
<lastmod>2024-01-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/01/11/grouping-array-using-javascript-groupby/</loc>
<lastmod>2024-01-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/01/16/rails-7-1-path-params-option-for-url-for-method/</loc>
<lastmod>2024-01-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/01/17/rubygems-introduced-a-file-option-to-specify-ruby-version/</loc>
<lastmod>2024-01-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/01/22/transform-job-accepts-previewable-files/</loc>
<lastmod>2024-01-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/01/23/ruby-3-3-string-plus-vs-string-dup-performance/</loc>
<lastmod>2024-01-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/01/29/upsert-unique-by-fix/</loc>
<lastmod>2024-01-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/02/05/rails-7-1-introduces-option-to-disable-enum-methods/</loc>
<lastmod>2024-02-05T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/02/08/unexpected-error-report/</loc>
<lastmod>2024-02-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/02/12/what-is-new-in-ruby-3-3/</loc>
<lastmod>2024-02-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/02/14/rails-7-1-allows-resetting-singular-associations/</loc>
<lastmod>2024-02-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/02/15/memo-vs-usememo-when-to-use-each-for-better-react-performance/</loc>
<lastmod>2024-02-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/02/19/rails-7-1-introduces-active-record-regroup-method/</loc>
<lastmod>2024-02-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/02/21/nextjs-vs-remix/</loc>
<lastmod>2024-02-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/02/23/rails-7-1-allows-active-record-relation-explain-to-accept-options/</loc>
<lastmod>2024-02-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/02/26/rails-7-2-adds-brakeman-by-default-to-new-apps/</loc>
<lastmod>2024-02-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/03/06/ignore-implicit-locals/</loc>
<lastmod>2024-03-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/03/18/rails-7-2-adds-allow-browser-to-set-minimum-versions/</loc>
<lastmod>2024-03-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/04/01/rails-7-2-adds-rate-limiting-to-action-controller/</loc>
<lastmod>2024-04-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/04/08/rails-7-2-adds-rubocop-by-default/</loc>
<lastmod>2024-04-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/04/19/a-quick-quide-to-ruby-time-and-datetime-classes/</loc>
<lastmod>2024-04-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/04/24/add-queries-count/</loc>
<lastmod>2024-04-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/04/26/rails-7-2-activerecord-pluck-to-accept-hash-values/</loc>
<lastmod>2024-04-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/05/02/rails-adds-github-ci-by-default/</loc>
<lastmod>2024-05-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/05/08/rails-validate-foreign-key/</loc>
<lastmod>2024-05-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/05/13/ruby-3-4-no-more-type-error-with-nil/</loc>
<lastmod>2024-05-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/05/15/rails-8-adds-kamal-by-default/</loc>
<lastmod>2024-05-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/05/17/ruby-3-4-range-size-raises-type-error-for-iterable-range/</loc>
<lastmod>2024-05-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/05/20/frozen-string-literal/</loc>
<lastmod>2024-05-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/05/21/rails-7-2-strict-loading-using-n-plus-one-only-does-not-eager-load-child-associations/</loc>
<lastmod>2024-05-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/05/28/ruby-3-4-throws-syntax-error-for-passing-block-in-index/</loc>
<lastmod>2024-05-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/05/30/rails-7-2-pg-adapter-to-type-cast-date/</loc>
<lastmod>2024-05-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/05/31/rails-7-2-activerecord-order-adds-support-for-hash-values/</loc>
<lastmod>2024-05-31T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/06/05/new-hooks-in-react-19/</loc>
<lastmod>2024-06-05T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/06/10/ruby-3-4-throws-syntax-error-for-passing-keyword-in-index/</loc>
<lastmod>2024-06-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/06/11/rails-7-2-support-custom-blob-key/</loc>
<lastmod>2024-06-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/06/12/rails-7-2-batch-enumerator-destroy-all-return-affected-rows-number/</loc>
<lastmod>2024-06-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/06/19/ruby-3-4-makes-it-as-default-block-parameter/</loc>
<lastmod>2024-06-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/07/01/rails-adds-activerecord-base-with-connection/</loc>
<lastmod>2024-07-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/07/08/rails-active-record-after-all-transactions-commit/</loc>
<lastmod>2024-07-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/07/09/rails-app-update-command/</loc>
<lastmod>2024-07-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/07/12/rails-puma-dev/</loc>
<lastmod>2024-07-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/07/17/rails-skip-test-database-truncate-flag-to-speed-up-multi-process-test-runs/</loc>
<lastmod>2024-07-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/07/19/react-controlled-uncontrolled-components/</loc>
<lastmod>2024-07-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/07/22/css-units/</loc>
<lastmod>2024-07-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/07/25/functional-programming-in-react/</loc>
<lastmod>2024-07-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/07/31/rails-7-2-adds-support-for-devcontainer/</loc>
<lastmod>2024-07-31T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/08/06/active-record-composite-primary-key/</loc>
<lastmod>2024-08-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/08/07/rails-add-filter-option-in-order-of-method/</loc>
<lastmod>2024-08-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/08/09/rails-warns-on-tests-without-assertions/</loc>
<lastmod>2024-08-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/08/12/what-is-new-in-rails-7-2/</loc>
<lastmod>2024-08-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/08/21/sidekiq-to-solid-queue-migration/</loc>
<lastmod>2024-08-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/09/04/rails-7-1-adds-deliver-callbacks-to-action-mailer/</loc>
<lastmod>2024-09-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/09/10/rails-7-1-adds-support-for-composite-key-multi-column-ordering-in-activerecord-batches/</loc>
<lastmod>2024-09-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/09/17/rails-adds-ability-to-ignore-counter-cache-column-while-backfilling/</loc>
<lastmod>2024-09-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/09/20/rails-7-1-adds-support-for-logging-background-job-enqueue-callers/</loc>
<lastmod>2024-09-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/10/12/rails-7-1-supports-multiple-preview-paths-for-mailers/</loc>
<lastmod>2024-10-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/10/15/rails-7-1-raises-error-on-assignment-to-readonly-attributes/</loc>
<lastmod>2024-10-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/10/21/rails-7-1-adds-adapter-option-to-disallow-foreign-keys/</loc>
<lastmod>2024-10-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/10/23/rails-7-1-allows-subscribing-to-active-record-transaction-events/</loc>
<lastmod>2024-10-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/10/25/rails-7-1-adds-after-discard-method-to-activejob/</loc>
<lastmod>2024-10-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/11/05/rails-7-1-supports-descending-order-for-in-batches-without-block/</loc>
<lastmod>2024-11-05T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/11/06/rails-7-1-adds-exclude-and-extract-value-methods-to-action-controller-parameters/</loc>
<lastmod>2024-11-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/11/12/rails-inverse-of-option/</loc>
<lastmod>2024-11-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/11/12/rails-7-1-adds-unused-option-to-detect-dormant-routes/</loc>
<lastmod>2024-11-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/11/13/rails-7-1-raises-error-on-generating-model-attributes-with-dangerous-name/</loc>
<lastmod>2024-11-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/11/14/rails-7-1-adds-parent-option-to-controller-generator/</loc>
<lastmod>2024-11-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/11/14/rails-7-1-adds-support-for-intersect-to-activerecord-relation/</loc>
<lastmod>2024-11-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/11/18/rails-7-2-prevents-job-scheduling-within-transactions/</loc>
<lastmod>2024-11-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/11/18/rails-7-1-allows-validators-to-accept-lambdas-without-record-argument/</loc>
<lastmod>2024-11-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/11/19/rails-7-1-adds-application-deprecators-method/</loc>
<lastmod>2024-11-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/11/20/rails-7-1-introduces-by-argument-for-increment-decrement-counter/</loc>
<lastmod>2024-11-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/11/21/rails-7-2-adds-support-for-explain-method-to-activerecord-relation/</loc>
<lastmod>2024-11-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/11/25/rails-adds-ability-to-use-multiple-rate-limits-per-controller/</loc>
<lastmod>2024-11-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/11/26/passwordless-authentication-using-webauth/</loc>
<lastmod>2024-11-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/11/27/rails-8-allows-drop-table-to-accept-an-array-of-table-names/</loc>
<lastmod>2024-11-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/12/10/rails-8-adds-parametersexpect-to-safely-filter-and-require-params/</loc>
<lastmod>2024-12-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/12/13/rails-8-adds-if-not-exists-option-to-add-enum-value/</loc>
<lastmod>2024-12-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2024/12/19/what-is-new-in-ruby-3-4/</loc>
<lastmod>2024-12-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/01/13/rails-8-now-uses-iso-8601-style-for-timewithzone-inspect-method/</loc>
<lastmod>2025-01-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/02/10/rails-8-adds-script-folder-by-default-and-generator/</loc>
<lastmod>2025-02-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/02/18/deep-dive-into-rails-action-controller-strong-parameters/</loc>
<lastmod>2025-02-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/03/10/rails-introduces-active-model-normalization/</loc>
<lastmod>2025-03-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/03/24/rails-8-removes-channels-from-default-app-structure/</loc>
<lastmod>2025-03-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/03/24/react-19-ref-as-prop/</loc>
<lastmod>2025-03-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/04/30/rails-stops-generating-bundler-binstub/</loc>
<lastmod>2025-04-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/05/12/rails-8-adds-built-in-authentication-generator/</loc>
<lastmod>2025-05-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/06/30/rails-uses-self-join-for-update-with-outer-joins-on-postgresql-and-sqlite/</loc>
<lastmod>2025-06-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/07/08/new-features-in-ecmascript-2025/</loc>
<lastmod>2025-07-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/07/09/rails-supports-deprecate-associations-with-reporting/</loc>
<lastmod>2025-07-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/07/11/rails-8-does-not-include-redis-by-default-in-generated-dev-containers/</loc>
<lastmod>2025-07-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/09/12/rails-action-text-trix-gem/</loc>
<lastmod>2025-09-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/10/14/lexxy-editor/</loc>
<lastmod>2025-10-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/11/10/rails-8-add-conditional-allow-nil-allow-blank-in-model-validations/</loc>
<lastmod>2025-11-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/11/20/building-personas-for-b2b-consultancy-websites/</loc>
<lastmod>2025-11-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/11/20/rails-makes-error-reporting-tests-easier-in-rails-7-1/</loc>
<lastmod>2025-11-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/11/25/rails-8-activestorage-blob-open-without-block/</loc>
<lastmod>2025-11-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/11/27/sql-warnings-ignored-error-codes-rails/</loc>
<lastmod>2025-11-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/11/27/ui-ux-audit-checklist-before-redesigning-a-site/</loc>
<lastmod>2025-11-27T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/11/28/customizing-rails-migrations-with-execution-strategies/</loc>
<lastmod>2025-11-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/12/03/ruby-non-blocking-io-select/</loc>
<lastmod>2025-12-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/12/04/web-application-monitoring-guide/</loc>
<lastmod>2025-12-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/12/10/evolution-of-rails-composite-keys/</loc>
<lastmod>2025-12-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/12/12/accessibility-best-practices-for-consultancy-websites/</loc>
<lastmod>2025-12-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/12/12/planning-rails-upgrade-strategic-guide/</loc>
<lastmod>2025-12-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/12/17/rails-introduces-ci-to-streamline-new-dsl/</loc>
<lastmod>2025-12-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/12/18/rails-introduces-structured-event-reporting/</loc>
<lastmod>2025-12-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/12/19/rails-4-2-to-5-upgrade-guide/</loc>
<lastmod>2025-12-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/12/24/what-is-new-in-ruby-4/</loc>
<lastmod>2025-12-24T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/12/26/rails-5-to-6-upgrade-guide/</loc>
<lastmod>2025-12-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/12/29/rails-sorts-table-columns-by-name-when-dumping-schema/</loc>
<lastmod>2025-12-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2025/12/30/bulk-migrations-validate-check-constraint/</loc>
<lastmod>2025-12-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2026/01/02/rails-supports-joins-in-update-all-for-postgresql-and-sqlite/</loc>
<lastmod>2026-01-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2026/01/08/mobile-first-design-why-it-matters-for-consultancies/</loc>
<lastmod>2026-01-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2026/01/13/rails-add-except-on-option-for-validation-and-its-callbacks/</loc>
<lastmod>2026-01-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2026/01/22/from-idea-to-launch-why-rails-remains-the-ultimate-mvp-framework-in-2026/</loc>
<lastmod>2026-01-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2026/02/19/rails-6-to-7-upgrade-guide/</loc>
<lastmod>2026-02-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2026/02/26/rails-7-to-8-upgrade-guide/</loc>
<lastmod>2026-02-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/2026/03/11/ruby-concurrency-beyond-fibers/</loc>
<lastmod>2026-03-11T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://blog.saeloun.com/bookCall/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/categories/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page2/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page3/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page4/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page5/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page6/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page7/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page8/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page9/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page10/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page11/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page12/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page13/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page14/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page15/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page16/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page17/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page18/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page19/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page20/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page21/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page22/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page23/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page24/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page25/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page26/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page27/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page28/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page29/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page30/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page31/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page32/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page33/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page34/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page35/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page36/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page37/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page38/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page39/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page40/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page41/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page42/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page43/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page44/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page45/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page46/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page47/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page48/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page49/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page50/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page51/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page52/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page53/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page54/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page55/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page56/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page57/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page58/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/page59/</loc>
</url>
<url>
<loc>https://blog.saeloun.com/images/ecmascript2022/New_features_in_ECMACScript_2022.pdf</loc>
<lastmod>2026-03-11T09:48:26+00:00</lastmod>
</url>
</urlset>
