TILs - 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.

Published
Author
user-image
Satya
When ActiveJob is set to :inline it does not depends upon a scheduler anymore. Use perform_later as per your requirements and that will perform the job instantly.
Published
Author
user-image
Sachin Kabadi
System Analyst
If you face error as " Sprockets::Rails::Helper::AssetNotFound: The asset "tailwind.css" is not present in the asset pipeline " while running CI/CD pipeline or during deployment, then check whether you have add the the "app/assets/builds/*" in gitignore. Remove it and precompile assets again using "rake assets:precompile" or "rails assets:precompile". Make sure "tailwind.css" file exists in "app/assets/builds/" folder.
Published
Author
user-image
Satya
while running psql postgres if we face the below error:
psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
That can be because of 2 reasons.
1. Your service isn't running , that can be fixed using brew services start postgresql@15
2. Your service is running , but there is some error like

Code

Bootstrap failed: 5: Input/output error
Try re-running the command as root for richer errors.
Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /Users/<user>/Library/LaunchAgents/[email protected]` exited with 5.


We can fix the 2nd error by removing the process pid file.
• Step 1 -> brew services stop postgresql@15
• Step 2 -> rm -f /opt/homebrew/var/postgresql@15/postmaster.pid (apple sillicon install it at opt/homebrew)
• Step 3 -> brew services start postgresql@15
These 3 steps should fix the error and we can check the info by running brew services info postgresql@15
Published
Author
user-image
Sachin Kabadi
System Analyst
While testing request spec in rails, configure host in your environment(development/test) :-
Add below line in your "config/environment/test" file.

Ruby

config.hosts << "www.example.com"

Published
Author
user-image
Soniya Rayabagi
CIDR Block(Classless Inter-Domain Routing)
Example : CIDR block: 192.168.1.0/28
This CIDR block represents all IP addresses between 192.168.1.0 and 192.168.1.15. The "/28" notation indicates that the first 28 bits of the IP address are fixed (192.168.1.0), and the remaining 4 bits (from 0 to 15) can vary, resulting in 16 possible IP addresses in the range. This range allows for 16 IP addresses, from 192.168.1.0 to 192.168.1.15.
Published
Author
user-image
Sujay
pg_dump commands:
Standard pg_dump without DROP table queries:
pg_dump -h your-hostname -p your-port -U your-username -d your-database-name -f output-file.sql`` pg_dump with DROP table queries (clean dump): pg_dump -h your-hostname -p your-port -U your-username -d your-database-name --clean -f output-file.sql pg_dump for schema only: pg_dump -h your-hostname -p your-port -U your-username -d your-database-name --schema-only -f output-file.sql pg_dump for data only: pg_dump -h your-hostname -p your-port -U your-username -d your-database-name --data-only -f output-file.sql pg_dump for data only (no schema, INSERT commands only): pg_dump -h your-hostname -p your-port -U your-username -d your-database-name --data-only --inserts -f output-file.sql`
Published
Author
user-image
Satya
While using sidekiq-scheduler if your schedule file is named as sidekiq.yml make sure to add the schedule config entry.
i.e :scheduler: -> :schedule .
For eg:

Code

:scheduler:
  :schedule:
    fetch_user_info_from_slack:
      cron: '0 6 * * * Asia/Kolkata'
      class: FetchSlackUserInfoJob
      queue: 'default'
      description: 'This job fetches user info from slack and updates the database'

Published
Author
user-image
Soniya Rayabagi
AWS - ami
If you want to create two instances in different regions within the same Terraform file, using the same AMI, you should first ensure that the AMI is available in both regions. If it's available in both regions (i.e.- "us-east-1" and "us-east-2") , you can proceed to use the same AMI for both instances. Otherwise, you should use two different AMIs.
For example :

Code

provider "aws" {
  alias  = "us-east-2"
  region = "us-east-2"
}

resource "aws_instance" "instance" {
  provider      = aws.us-east-2
  ami           = "ami-id-1"
  instance_type = "t2.micro"
}

provider "aws" {
  alias  = "us-east-1"
  region = "us-east-1"
}

resource "aws_instance" "instance1" {
  provider      = aws.us-east-1
  ami           = "ami-id-2"
  instance_type = "t2.micro"
}

Published
Author
user-image
Soniya Rayabagi
Git rebase is a command to reapply commits from one branch onto another, effectively rewriting the commit history.
1. Use git rebase main to start.
2. Resolve conflicts manually in files.
3. Add resolved files git add <file>.
4. Continue rebase git rebase --continue.
5. Finally, force-push changes git push <remote> <branch-name> —-force.
Published
Author
user-image
Neehar
Using the command “git push origin feature-branch -f” forces the remote repository to match the precise state of the local repository. However, it should be used with caution because it has the ability to overwrite remote modifications and cause data loss.
Published
Author
user-image
Neehar
Using git rebase command allows you to modify the history of your repository by changing a sequence of commits. It lets you to reorganise, modify, and merge commits. Git rebase is commonly used for resolving conflicts.
Published
Author
user-image
Soniya Rayabagi
The <<-EOF and EOF are Terraform's heredoc syntax, This syntax enables the creation of multiline strings in Terraform configuration files without the need to manually insert newline characters (\ ).
Published
Author
user-image
Nisanth
To check if an instance is running using Terraform, you can use the following command:
terraform show
This command displays the current state of your infrastructure as recorded by Terraform. It will show information about the resources that Terraform has created, including details about the EC2 instance, such as its ID, IP address, and other attributes.
Published
Author
user-image
Nisanth
If we want to create an instance in different regions within the same Terraform file, we need to use provider aliases. In Terraform, a single file typically contains one default provider configuration for ‘aws.’ To work with multiple regions, we use provider aliases.
Instead of having two separate provider blocks, we add aliases to them. For example:

Code

hcl
provider "aws" {
  alias  = "us-east-2"
  region = "us-east-2"
}

resource "aws_instance" "example" {
  provider       = aws.us-east-2
  ami            = "ami-id"
  instance_type  = "t2.micro"
}

provider "aws" {
  alias  = "us-east-1"
  region = "us-east-1"
}

resource "aws_instance" "example1" {
  provider       = aws.us-east-1
  ami            = "ami-id"
  instance_type  = "t2.micro"
}


This way, we can create instances in different regions using a single Terraform file, and each instance is associated with its respective region through the use of provider aliases
Published
Author
user-image
Soniya Rayabagi
how to troubleshoot the visibility of an AWS EC2 instance.
discovered that instances may not appear in the console if deployed in a different region , verified instance existence by providing the correct region in the AWS console.
example:

Code

provider "aws" {
 region = "us-east-2"
}

Published
Author
user-image
Satya
if you are using ngrok to expose your localhost , you can serve that in a static domain.
Every time you start ngrok it will use the same domain name

Code

ngrok http --domain=<your-domain>.https://ngrok-free.app|ngrok-free.app <port>

Published
Author
user-image
Satya
setup tailwind css without using node.js
The below setup is for macOS arm64

Step1

Code

curl -sLO https://github.com/tailwindlabs/tailwindcss/releases/latest/download/tailwindcss-macos-arm64
chmod +x tailwindcss-macos-arm64
mv tailwindcss-macos-arm64 tailwindcss


Step2

Code

./tailwindcss init // this will create tailwind.config.js file


Step3
Create input.css file and import the required tailwind base, components & utilities

Step4

Code

./tailwindcss -i input.css -o output.css --watch // this will generate a output.css file, so make sure to link it in your root file


For production add the tailwind watcher command with --minify flag

Code

./tailwindcss -i input.css -o output.css --minify

Published
Author
user-image
Hilda
ChatGPT 4.0 has a limit of 40 messages per 3 hours while using some of the custom GPTs like DALL·E
Published
Author
user-image
Soniya Rayabagi
touch filename : Used to create an empty file .
git remote : The command is used to manage remote repositories.
git reset HEAD~1 : Removes the most recent commit from the current branch without modifying the working directory.
git pull origin branch_name : Fetches changes from the specified branch (branch_name) on the origin remote repository.
Published
Author
user-image
Sujay
Activerecord validations & callbacks are not called when upsert_all or insert_all are used. They will be directly converted to raw sql queries and executed

Showing page 17 of 42

Your competitors are already using AI.
The question is how fast you want to unlock the value.

Don't know where to start?

AI is everywhere but it's unclear which investments will actually move your metrics and which are expensive experiments.

Your data isn't ready

Most AI projects fail at the data layer. Pipelines, quality, access all need work before LLMs can deliver value.

Internal teams are stretched

Your engineers are shipping product. They don't have capacity to also become AI specialists with production-grade experience.

Legacy systems block everything

Aging, undocumented codebases make AI integration slow, risky, and expensive. They need to move first.

Don't worry. We've got you covered.

Start with the audit.