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. In a typical Rack middleware setup, the call method handles the initial request and generates a response, but it does not control subsequent redirects initiated by external services. If an external service, such as Slack's OAuth, triggers additional redirects after your application responds, modifying headers for those redirects within the same call method may not be directly achievable. Handling subsequent redirects may require alternative approaches, such as additional middleware or different parts of your application's code.
    #rails , #rack , #middleware
  2. test your gem locally before publishing.
    • STEP 1 - cd into your gem directory and run gem build your-gem.gemspec
    • STEP 2 - in the same directory then run gem install ./your-gem-<version>.gem (<version> will be replaced by the current version of your gem)
    • STEP 3 - Now cd into your project where you want to install this gem.
    • STEP 4 - Open Gemfile and add gem 'your-gem', path: '/path/to/your-gem' (Replace /path/to/your-gem with the actual path to your gem.
    #ruby-gems , #rails
    TIP: you can get your path by running pwd in your terminal where you have opened your gem file.
  3. GiritharanSystem Analyst
    Fly Secret Value Displaying Feature:

    We can able to see Fly secrets values from terminal . From the Dashboard of fly we can't able to the secret value. But from the terminal we can able to the see secret value .
    For that we have use below command:
    • First Go the project in terminal and enter the fly ssh console. It redirects you to the fly application in remote.
    • Then you can see the what value you want using echo command. Ex: echo $DATABASE_URL . After entered like this it will display what is the value of the key. Likewise you can place what are ever key want to see.
  4. Soniya Rayabagi
    To delete a Docker image we can use a command docker rmi [IMAGE_ID or REPOSITORY:TAG] and ,
    To remove all dangling images that consume disk space , can use docker image prune
  5. forms in rails 7 are now submitted with turbo_stream format.
    for eg: from the logs:
    Started POST "/books" for 127.0.0.1 at 2024-02-16 14:44:16 +0530
    Processing by BooksController#create as TURBO_STREAM
  6. To remove rvm and its traces, you can use the rvm command itself:
    rvm implode
    This command will remove all traces of rvm from your system.
  7. difference between oauth/v2/authorize & openid/connect/authorize
    I am taking the example in context of Slack .
    1. OAuth 2.0 (/oauth/v2/authorize):
    • Usage: When a third-party application needs to access a user's resources in Slack, it uses the /oauth/v2/authorize endpoint.
    • Process: The user is prompted to grant the application permission to access their resources. Upon consent, Slack returns an authorization code to the application. This code is then exchanged for an access token, which the application uses to access the user's resources on Slack.
    • Focus: Purely on granting access to resources (authorization).
    2. OpenID Connect (/openid/connect/authorize):
    • Usage: When an application not only needs to access resources but also verify the identity of the Slack user, it uses the /openid/connect/authorize endpoint.
    • Process: Similar to OAuth 2.0, but in addition to granting access, this process authenticates the user and returns an ID token along with an authorization code. The ID token contains claims about the user's identity, which can be used by the application to verify who the user is.
    • Focus: On both verifying user identity (authentication) and granting access to resources (authorization).
  8. Codemancers
    Launching an NGINX pod imperatively (directly from the command line) can be done using the
    kubectl run nginx-pod --image=nginx --restart=Never
  9. Ensure that Docker Desktop is running before executing the docker build command.
  10. Redis Cache : One of the most common use cases for Redis is caching frequently accessed data to reduce the load on databases and speed up response times
  11. Soniya Rayabagi
    export TF_LOG=DEBUG this sets the TF_LOG environment variable to DEBUG, instructing Terraform to output detailed debug logs during its execution( Terraform apply ).
    unset TF_LOG this unsets (removes) the TF_LOG environment variable, effectively turning off debug logging for Terraform execution.
  12. Soniya Rayabagi
    terraform workspace show command is used to display the name of the current workspace.
    terraform workspace new <name> command is used when you want to create new workspace.
    terraform workspace list command used to list all the workspaces.
    terraform workspace select example1 can switch between the workspaces.
  13. Soniya Rayabagi
    The docker-compose up command starts and runs all the services defined in a docker-compose.yml file, creating and starting containers.
    docker-compose up -d command which starts the containers in the background and leaves them running (daemon processes) .
  14. Soniya Rayabagi
    "terraform init -backend-config=backend.hcl" command initializes your Terraform directory and configures its backend according to the settings specified in the backend.hcl file, for managing infrastructure.
    then , If you wish to attempt automatic migration of the state, use the command "terraform init -migrate-state"
  15. Jenkins is a self-hosted CI/CD automation server, serving as an alternative to cloud-based services like GitHub Actions
  16. Related to Auth0 and react-auth0 sdk
    To add a custom parameter to the authentication endpoint of which auth0 interacts we can pass it like this in the object

    Code

    authorizationParams: {
              screen_hint: "signup",
              ui_locales: "en",
              custom_param: "custom_param",
            },


    authorizationParams object is used in methods loginWithRedirect, withAuthenticationRequired provided by @auth0/auth0-react

    once the custom parameter is passed we can see it in /authorize endpoint when we open the Universal login or signup form from Auth0

    If we want to take any custom actions based on this custom parameter we can access it in Auth0 post login custom actions
  17. The docker build -f command is used to specify the name of the Dockerfile to use for building a Docker image. This flag allows you to specify the path to the Dockerfile that you want to use for building the image. However, if you have a Dockerfile with a different name or located in a different directory, you can use the -f flag followed by the path to the Dockerfile.
  18. Soniya Rayabagi
    Storing Terraform State in S3 with Encryption and DynamoDB Locking , instead of Storing locally :
    To improve security , you can configure Terraform to store its state file in an AWS S3 bucket with encryption and use DynamoDB for state locking. This setup prevents local state file risks, enables team access, and avoids state conflicts.

    Code

    syntax : 
    
     terraform {
          backend "<BACKEND_NAME>" {
            [CONFIG...]
          }
    }



    Code

    example :
    
    terraform {
      backend "s3" {
        bucket         = "my-terraform-state"
        key            = "state/production/terraform.tfstate"
        region         = "us-east-1"
        encrypt        = true
        dynamodb_table = "my-terraform-lock"
      }
    }

Showing page 16 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