Fueling Curiosity, One Insight at a Time
At Codemancers, we believe every day is an opportunity to grow. This section is where our team shares bite-sized discoveries, technical breakthroughs and fascinating nuggets of wisdom we've stumbled upon in our work.
Mar 20, 2025
TimescaleDB
When working with time series data like stock prices, website traffic, or error logs, the volume of data grows rapidly over time. In traditional relational databases like PostgreSQL and SQL, this can lead to slower query performance as the dataset becomes larger.
One alternative is to use NoSQL databases, but they come with their own challenges, such as lack of strong ACID compliance, complex querying, and difficulties in handling structured relational data.
TimescaleDB, which is built on top of PostgreSQL, offers a powerful solution by introducing hypertables - a special type of table optimised for time series data. Hypertables enable faster read and write operations, automatic partitioning, and efficient data compression. Additionally, TimescaleDB provides advanced analytical functions, making it easier to perform complex queries for reporting, trend analysis, and forecasting. This makes it a great choice for applications that require efficient storage and analysis of large-scale time series data.
#databases #time_series_data #timescale_db #postgres
When working with time series data like stock prices, website traffic, or error logs, the volume of data grows rapidly over time. In traditional relational databases like PostgreSQL and SQL, this can lead to slower query performance as the dataset becomes larger.
One alternative is to use NoSQL databases, but they come with their own challenges, such as lack of strong ACID compliance, complex querying, and difficulties in handling structured relational data.
TimescaleDB, which is built on top of PostgreSQL, offers a powerful solution by introducing hypertables - a special type of table optimised for time series data. Hypertables enable faster read and write operations, automatic partitioning, and efficient data compression. Additionally, TimescaleDB provides advanced analytical functions, making it easier to perform complex queries for reporting, trend analysis, and forecasting. This makes it a great choice for applications that require efficient storage and analysis of large-scale time series data.
#databases #time_series_data #timescale_db #postgres
Puneeth kumar
System Analyst
Mar 19, 2025
We can't use turbo frame for table rows, because html doesn't allow external tag like turbo frame inside the table.
The workaround this is to just have unique id for element you want to modify and use turbosteam to modify only that element.
#rubyonrails #turbo #turboframes #spa
The workaround this is to just have unique id for element you want to modify and use turbosteam to modify only that element.
#rubyonrails #turbo #turboframes #spa
Aditya Vishwakarma
System Analyst
Mar 19, 2025
in ruby
#ruby, #nil-conversion
https://nil.to|nil.to_i
=> 0
& https://nil.to|nil.to_f
=> 0.0
#ruby, #nil-conversion
satya
Mar 18, 2025
Steps to merge one repo into another
Step 1: Clone Repo1 locally
Step 2: Fetch all the branches and commits from Repo2
Step 3: Create a branch
Step 4: Merge keeping full history
Step 5: Resolve Merge Conflicts
#git
Step 1: Clone Repo1 locally
git clone repo1
cd repo1
Step 2: Fetch all the branches and commits from Repo2
git remote add repo2
git fetch repo2
Step 3: Create a branch
git checkout -b merge-repo2
Step 4: Merge keeping full history
git merge --allow-unrelated-histories repo2/main (Since the repositories have separate histories, this option allows Git to combine them, potentially requiring manual conflict resolution)
Step 5: Resolve Merge Conflicts
git add .
git commit -m "Resolved merge conflicts"
#git
sujay
Mar 18, 2025
pagy_array
This method is the same as the generic pagy
method, but specialized for an Array.
require 'pagy/extras/array'
@pagy, @items = pagy_array(an_array)
#CU6U0R822 #ruby
Mohammad hussain
System Analyst
Mar 18, 2025
```
pagy_array
Mohammad hussain
System Analyst
Mar 13, 2025
each_with_object
is an enumerable method in Ruby that allows you to iterate over a collection while building up an object (like an array or hash). Unlike map
, which creates a new array, each_with_object
lets you modify an existing object in a single pass.Syntax
collection.each_with_object(initial_object) do |item, object|
# Modify the object inside the block
end
•
collection
: The array or enumerable you're iterating over.•
initial_object
: The object that will be modified (e.g., {}
for a hash or []
for an array).•
item
: The current element in the iteration.•
object
: The object that accumulates the results.Example Usage
Using
each_with_object
with a Hash
numbers = [1, 2, 3, 4, 5]
squares = numbers.each_with_object({}) do |num, hash|
hash[num] = num**2
end
puts squares
# Output: {1=>1, 2=>4, 3=>9, 4=>16, 5=>25}
Why use
each_with_object
?• Avoids the need to initialize an empty
{}
before the loop.• Eliminates the need to return the object explicitly.
#CU6U0R822 #ruby
Nived Hari
System Analyst
Mar 13, 2025
When to use collection_select over select in rails
Use
Use
collection_select
when you need to populate a dropdown with a collection of ActiveRecord objects. It is built on top of select
and provides a convenient way to display object attributes instead of a simple array of strings.select
is used for manually defining options, typically from an array of strings or key-value pairs.collection_select
is specifically designed for selecting records from an ActiveRecord collection, making it useful when working with database associations.Mohammad hussain
System Analyst
Mar 12, 2025
Rake tasks in Rails let you run custom scripts from the command line.
You can define your own tasks inside the
How to Create a Custom Rake Task
1. Create a new
Define the task inside the file:
Run the task from the terminal:
Use
#CU6U0R822 #rake
You can define your own tasks inside the
lib/tasks
directory.How to Create a Custom Rake Task
1. Create a new
.rake
file in lib/tasks/
touch lib/tasks/custom_tasks.rake
Define the task inside the file:
namespace :custom do
desc "Say hello from a custom rake task"
task :hello do
puts "Hello from custom Rake task!"
end
end
Run the task from the terminal:
bin/rake custom:hello
Use
:environment
if your task interacts with the database or models#CU6U0R822 #rake
Nived Hari
System Analyst
Mar 12, 2025
The
For example:
Why Use
• Prevents extra queries when accessing related objects
• Keeps objects in memory, improving performance
• Ensures associated objects reference the same instance
Without
With
#CU6U0R822 #active_record
inverse_of
option in ActiveRecord helps Rails recognize bidirectional associations in memory, reducing redundant database queries.For example:
class Employee < ApplicationRecord
belongs_to :department, foreign_key: 'department_code', primary_key: 'code', inverse_of: :employees
end
class Department < ApplicationRecord
has_many :employees, foreign_key: 'department_code', primary_key: 'code', inverse_of: :department
end
Why Use
inverse_of
?• Prevents extra queries when accessing related objects
• Keeps objects in memory, improving performance
• Ensures associated objects reference the same instance
Without
inverse_of
, Rails may reload the association unnecessarily:
employee = Employee.first
department = employee.department # Triggers a SQL query
department.employees.include?(employee) # Without `inverse_of`, this could trigger another query
With
inverse_of
, Rails avoids the extra query because it knows department.employees
already includes employee
#CU6U0R822 #active_record
Nived Hari
System Analyst
Showing 4 to 5 of 79 results
Ready to Build Something Amazing?
Codemancers can bring your vision to life and help you achieve your goals
- Address
2nd Floor, Zee Plaza,
No. 1678, 27th Main Rd,
Sector 2, HSR Layout,
Bengaluru, Karnataka 560102 - Contact
hello@codemancers.com
+91-9731601276