Skip to content

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.

  1. Mahesh BhosleDevOps Engineer
    act utility can be used to simulate GitHub Actions locally, for testing the GitHub workflows.
    To install act on Mac: brew install act
    To use the act navigate to the GitHub repo and use act -l to list all jobs
    To run any particular job: act -j job_id
    To run a job on any particular platform: act -j job_id -P <image>

    [To run the jobs locally, docker must be running on the system.]
  2. Soniya Rayabagi
    square brackets [ ] indicate that the entire expression within them is optional
    example : FROM [--platform=<platform>] <image> [AS <name>]
    here , you can choose whether or not to include the --platform=<platform>
  3. 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.
  4. Sachin KabadiSystem 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.
  5. 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
  6. Sachin KabadiSystem 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"

  7. 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.
  8. 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`
  9. 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'

  10. 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"
    }

  11. 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.
  12. 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.
  13. 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.
  14. 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 (\ ).
  15. 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.
  16. 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
  17. 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"
    }

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

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

  20. ChatGPT 4.0 has a limit of 40 messages per 3 hours while using some of the custom GPTs like DALL·E

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.

Book a free discovery call