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.
Sep 2, 2025
WITH (NOLOCK)
is often used to speed up queries by avoiding shared locks, which means the query won’t block other reads or writes. This can improve performance on busy systems, but it comes at the cost of data accuracy.When using
NOLOCK
, SQL Server may:• Read uncommitted (dirty) data that could later be rolled back.
• Return missing or duplicate rows due to page splits and concurrent writes.
• Show inconsistent values within the same row if columns are updated mid-read.
In short:
NOLOCK
trades reliability for speed. It’s fine for dashboards, reports, or monitoring where approximate numbers are acceptable, but it should be avoided for financial or critical business logic where accuracy is essential.#sql
Nived Hari
System Analyst
Sep 2, 2025
Prisma
Creates a migration file with the SQL changes but does not apply them to the database.
Why this is useful:
✅ Safe inspection – lets you review the generated SQL before running it, especially helpful for destructive operations like drops or PK changes.
✅ Manual adjustments – you can tweak the SQL (e.g., add a USING clause for type casting or backfill data before dropping a column).
✅ Separation of responsibilities – you can generate migrations while DBAs/ops review and apply them in controlled environments.
Key takeaway:
👉
#postgres
--create-only
npx prisma migrate dev --create-only --name <migration_name>
Creates a migration file with the SQL changes but does not apply them to the database.
Why this is useful:
✅ Safe inspection – lets you review the generated SQL before running it, especially helpful for destructive operations like drops or PK changes.
✅ Manual adjustments – you can tweak the SQL (e.g., add a USING clause for type casting or backfill data before dropping a column).
✅ Separation of responsibilities – you can generate migrations while DBAs/ops review and apply them in controlled environments.
Key takeaway:
👉
--create-only
is like a dry run for migration generation – you get the recipe, but the dish isn't cooked yet 🍳.#postgres
Sudeep Hipparge
Sep 1, 2025
Rails has a built-in way to reduce repetition in associations—
When multiple
Using with_options, you can group them under one block:
This makes the intent clearer—all these associations share the same rule.
It's easier to read, less error-prone, and keeps your model DRY ✨
#Rails
with_options
.When multiple
has_many
relationships share the same option (like dependent: :destroy
), repeating it clutters your model:
class Account < ApplicationRecord
has_many :customers, dependent: :destroy
has_many :products, dependent: :destroy
has_many :invoices, dependent: :destroy
has_many :expenses, dependent: :destroy
end
Using with_options, you can group them under one block:
class Account < ApplicationRecord
with_options dependent: :destroy do
has_many :customers
has_many :products
has_many :invoices
has_many :expenses
end
end
This makes the intent clearer—all these associations share the same rule.
It's easier to read, less error-prone, and keeps your model DRY ✨
#Rails
Mohammad hussain
System Analyst
Aug 22, 2025
Next.js Typed Routes
Next.js now provides TypeScript support for route parameters and navigation, helping catch routing errors at compile time rather than runtime.
Next.js automatically generates route types based on our file structure in the
For example, if we have:
The generated types will understand routes like
#nextjs #typescript
Next.js now provides TypeScript support for route parameters and navigation, helping catch routing errors at compile time rather than runtime.
Next.js automatically generates route types based on our file structure in the
app
directory.For example, if we have:
app/
users/
[id]/
page.tsx
posts/
[slug]/
page.tsx
The generated types will understand routes like
/users/123
and /posts/my-post-slug
.
import { useRouter } from 'next/navigation'
import Link from 'next/link'
// TypeScript knows about our routes
const router = useRouter()
router.push('/users/123') // ✅ Valid
router.push('/invalid-route') // ❌ TypeScript error
// Link component is also typed
<Link href="/posts/my-slug">My Post</Link> // ✅ Valid
<Link href="/wrong-path">Invalid</Link> // ❌ TypeScript error
#nextjs #typescript
Ashwani Kumar Jha
Senior System Analyst
Jul 30, 2025
How LLM's temperature affects AI output:
LLM models use a parameter called
Tip: Use lower temperatures when you need reliable, consistent responses, and higher temperatures for creative or exploratory tasks.
#llm
LLM models use a parameter called
temperature
to control randomness in generated responses.temperature: 0
→ deterministic output (same input = same output)temperature: 1
→ default setting, balanced creativitytemperature > 1
→ more random, creative, but less reliableTip: Use lower temperatures when you need reliable, consistent responses, and higher temperatures for creative or exploratory tasks.
#llm
Adithya Hebbar
System Analyst
Jul 23, 2025
Traits in FactoryBot allow you to define reusable pieces of attributes that can be mixed into factories to create variations of objects without duplicating code.
Here,
You can pass traits to
#CU6U0R822 #RSpec
FactoryBot.define do
factory :user do
name { "John Doe" }
trait :admin do
role { "admin" }
end
end
end
create(:user, :admin)
Here,
:admin
is a trait that overrides or adds attributes (role: "admin"
).You can pass traits to
create
, build
, or attributes_for
to easily generate variations.#CU6U0R822 #RSpec
Mohammad hussain
System Analyst
Jul 15, 2025
Boost Query Performance with Prisma's Rust-free Engine(v6.7.0+)
Why?
• Quick Setup
• Faster queries
• 85–90% bundle size reduce
• Smoother & Better DX
Setup Steps :
1. Update Your
2. Re-Generate Prisma Client
3. Install Driver Adapter
• For Postgres:
• For other DBs: https://www.prisma.io/docs/orm/prisma-client/setup-and-configuration/no-rust-engine#3-install-the-driver-adapter|Prisma Adapter Docs
4. Instantiate Prisma Client
• For Postgres:
• For other DBs: https://www.prisma.io/docs/orm/prisma-client/setup-and-configuration/no-rust-engine#4-instantiate-prisma-client|Prisma Client Docs
5. All done!🎉 Now your can query as usual.
🔗 https://www.prisma.io/docs/orm/prisma-client/setup-and-configuration/no-rust-engine|Official Rust-free Prisma Docs
Why?
• Quick Setup
• Faster queries
• 85–90% bundle size reduce
• Smoother & Better DX
Setup Steps :
1. Update Your
schema.prisma
generator client {
provider = "prisma-client-js" // or `prisma-client`
previewFeatures = ["queryCompiler", "driverAdapters"]
output = "../generated/prisma"
}
2. Re-Generate Prisma Client
npx prisma generate
3. Install Driver Adapter
• For Postgres:
npm install @prisma/adapter-pg
• For other DBs: https://www.prisma.io/docs/orm/prisma-client/setup-and-configuration/no-rust-engine#3-install-the-driver-adapter|Prisma Adapter Docs
4. Instantiate Prisma Client
• For Postgres:
import { PrismaPg } from '@prisma/adapter-pg'
import { PrismaClient } from './generated/prisma'
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL })
const prisma = new PrismaClient({ adapter })
• For other DBs: https://www.prisma.io/docs/orm/prisma-client/setup-and-configuration/no-rust-engine#4-instantiate-prisma-client|Prisma Client Docs
5. All done!🎉 Now your can query as usual.
🔗 https://www.prisma.io/docs/orm/prisma-client/setup-and-configuration/no-rust-engine|Official Rust-free Prisma Docs
Swasthik K
Jul 8, 2025
Picture-in-Picture (PiP) API – Enabling Floating Video Playback
The Picture-in-Picture (PiP) API enables developers to present an HTML
How to use it (basic example):
Key Concepts
•
•
•
• Associated Events:
◦
◦
⚠️ Limitations
• Only applicable to native
• Most browsers require the video to be playing before entering PiP.
• Must be triggered through a user gesture (e.g., a click).
• Safari has limited support and relies on its own implementation.
🌐 Browser Support
• Chrome
• Edge
• Opera
• Firefox (with some restrictions)
#CCT1JMA0Z
The Picture-in-Picture (PiP) API enables developers to present an HTML
<video>
element in a small, floating, always-on-top window. This allows users to continue watching a video while interacting with other applications or browser tabs.How to use it (basic example):
html
<video id="myVideo" src="video.mp4" controls></video>
<button id="pipButton">Enter PiP</button>
js
const video = document.getElementById('myVideo');
const button = document.getElementById('pipButton');
button.addEventListener('click', async () => {
try {
if (document.pictureInPictureElement) {
await document.exitPictureInPicture();
} else {
await video.requestPictureInPicture();
}
} catch (err) {
console.error(`Failed to toggle PiP: ${err}`);
}
});
Key Concepts
•
video.requestPictureInPicture()
: Initiates PiP mode for the video element.•
document.exitPictureInPicture()
: Exits PiP mode.•
document.pictureInPictureElement
: Returns the element currently in PiP, or null
.• Associated Events:
◦
enterpictureinpicture
◦
leavepictureinpicture
video.addEventListener('enterpictureinpicture', () => {
console.log('Video entered PiP mode');
});
video.addEventListener('leavepictureinpicture', () => {
console.log('Video left PiP mode');
});
⚠️ Limitations
• Only applicable to native
<video>
elements.• Most browsers require the video to be playing before entering PiP.
• Must be triggered through a user gesture (e.g., a click).
• Safari has limited support and relies on its own implementation.
🌐 Browser Support
• Chrome
• Edge
• Opera
• Firefox (with some restrictions)
#CCT1JMA0Z
Sudeep Hipparge
Jul 2, 2025
File Preview in React — Beyond Just Images
Building a file preview system in React can surface several helpful patterns — especially when working with images, PDFs, media, and plain text files.
• You can preview any local file before upload using:
It works seamlessly with:
• Images
• PDFs
• Audio files
• Videos
• Plain text
Tip: Always call
🔄 Handling Local and Server Files Together
To support previews for both uploaded and already-stored files, use a union type:
Then render conditionally based on
•
•
•
#CCT1JMA0Z #react
Building a file preview system in React can surface several helpful patterns — especially when working with images, PDFs, media, and plain text files.
• You can preview any local file before upload using:
URL.createObjectURL(file)
It works seamlessly with:
• Images
• PDFs
• Audio files
• Videos
• Plain text
Tip: Always call
URL.revokeObjectURL()
when the preview is no longer needed to prevent memory leaks.🔄 Handling Local and Server Files Together
To support previews for both uploaded and already-stored files, use a union type:
// Local preview
{ isLocal: true, file: File }
// Server-hosted file
{ url: '/api/files/:id', name: string, type: string }
Then render conditionally based on
file.type
. Rendering Previews Based on File Type•
<img>
→ for images•
<iframe>
→ for PDFs or text files•
<audio>
/ <video>
→ for media files#CCT1JMA0Z #react
Sudeep Hipparge
Jun 30, 2025
📌 Using Alpine.js in Rails to Toggle Content Efficiently
You can use Alpine.js in a Rails app to handle simple UI interactions like showing, hiding, or toggling content — with zero overhead and great maintainability.
🧠 How it works:
• Alpine adds lightweight reactivity directly in your HTML using attributes like
• Clicking a button updates the
• Alpine automatically re-evaluates all
• It then updates the UI by toggling styles like
• On clicking the "Urgent" button, Alpine applies
💡 Example in Rails ERB:
• Both partials are rendered server-side on initial load
• Alpine just toggles their visibility using CSS (e.g.,
• No data loss or performance bottleneck — ideal for UI tab switching or inline modals
✅ Why it's great:
• No page reloads or re-renders
• No JavaScript DOM manipulation — just CSS toggling
• Preserves state and DOM structure
• Ideal for tabs, modals, section toggles, and lightweight UI
#Rails #Alphine.js
You can use Alpine.js in a Rails app to handle simple UI interactions like showing, hiding, or toggling content — with zero overhead and great maintainability.
🧠 How it works:
• Alpine adds lightweight reactivity directly in your HTML using attributes like
x-data
, @click
, and x-show
.• Clicking a button updates the
type
(or any reactive) value.• Alpine automatically re-evaluates all
x-show
(and related) bindings when that reactive value changes.• It then updates the UI by toggling styles like
display: none
, not by re-rendering or manipulating the DOM.• On clicking the "Urgent" button, Alpine applies
display: none
to the normal_partial
and removes it from urgent_partial
, effectively toggling visibility between the two.💡 Example in Rails ERB:
<div x-data="{ type: 'normal' }">
<button @click="type = 'normal'">Normal</button>
<button @click="type = 'urgent'">Urgent</button>
<div x-show="type === 'normal'">
<%= render "normal_partial" %>
</div>
<div x-show="type === 'urgent'">
<%= render "urgent_partial" %>
</div>
</div>
• Both partials are rendered server-side on initial load
• Alpine just toggles their visibility using CSS (e.g.,
display: none
), it wont manipulate DOM.• No data loss or performance bottleneck — ideal for UI tab switching or inline modals
✅ Why it's great:
• No page reloads or re-renders
• No JavaScript DOM manipulation — just CSS toggling
• Preserves state and DOM structure
• Ideal for tabs, modals, section toggles, and lightweight UI
#Rails #Alphine.js
Nitturu Baba
System Analyst
Showing 1 to 5 of 80 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