Saturday, May 27, 2023

Is it possible to learn software development and coding from scratch in an easy way?

Yes, it is possible to learn software development and coding from scratch, and there are several resources available to make the process easier. Here are some steps you can follow:

  • Define your goals: Determine what you want to achieve in software development. It could be building websites, mobile apps, or working with specific programming languages.
  • Choose a programming language: Start with a beginner-friendly language such as Python or JavaScript. These languages have a gentle learning curve and are widely used in various domains.
  • Online tutorials and courses: Many online platforms offer tutorials and courses for beginners. Websites like Codecademy, Udemy, Coursera, and freeCodeCamp provide structured lessons and hands-on coding exercises.
  • Practice coding: Actively engage in coding exercises and projects to reinforce your learning. Practice regularly to build your problem-solving skills and improve your understanding of programming concepts.
  • Join coding communities: Participate in online forums, coding communities, and social media groups where you can interact with fellow learners and experienced developers. This can provide opportunities for discussions, sharing knowledge, and getting feedback on your code.
  • Build projects: Apply your knowledge by working on small projects. Start with simple projects and gradually increase the complexity as you gain confidence. Building projects helps you apply your skills and provides valuable hands-on experience.
  • Learn from open-source projects: Explore open-source projects on platforms like GitHub. Analyze the code written by experienced developers, understand their approaches, and learn from their best practices.
  • Read documentation: Familiarize yourself with the documentation of programming languages and frameworks you are using. Documentation provides valuable insights, examples, and explanations of various functions and features.
  • Stay updated: The field of software development is constantly evolving. Stay updated with the latest trends, frameworks, and best practices through blogs, podcasts, newsletters, and online communities.
  • Continuous learning: Software development is a lifelong learning process. Keep exploring new languages, frameworks, and technologies to expand your skill set.

Remember, learning software development requires dedication, practice, and perseverance. Be patient with yourself, embrace challenges, and celebrate your progress along the way.

Why do programmers keep three-four systems on their desk instead of using a single computer?

Programmers often use multiple systems on their desk for various reasons. While it's not a universal practice, here are some common reasons why programmers might choose to use multiple computers:

  • Specialized Environments: Programmers often work with different technologies, frameworks, or programming languages. Having multiple systems allows them to set up dedicated environments for each technology without the need to constantly switch configurations. For example, they may have one machine set up for web development, another for mobile app development, and so on.
  • Testing and Debugging: Programmers frequently need to test their code in different environments to ensure compatibility and identify potential issues. By using multiple systems, they can simultaneously test their code on different operating systems, browsers, or hardware configurations.
  • Resource Intensive Tasks: Some development tasks, such as compiling large codebases or running resource-intensive simulations, can consume a significant amount of processing power or memory. By distributing the workload across multiple systems, programmers can speed up their development process and avoid overloading a single machine.
  • Separation of Work: Using separate systems helps programmers keep their work organized and separate. They can have one system dedicated to their primary development tasks, another for communication and browsing, and possibly a third for experimenting or testing new tools without risking the stability of their primary environment.
  • Redundancy and Backup: Programmers often deal with valuable code and data. By having multiple systems, they can create redundant backups, ensuring that their work is safe even if one machine fails. They may also use one system as a dedicated backup server or version control system.
  • Collaboration and Pair Programming: In team environments, programmers might have multiple systems to facilitate collaboration. They can work side-by-side with another programmer, sharing screens or code between the systems, which can enhance productivity and teamwork.

It's important to note that not all programmers use multiple systems, and many are perfectly content with a single powerful machine. The decision to use multiple systems depends on individual preferences, specific work requirements, and budget considerations.

Are average software engineers of age 35-40 struggling to find jobs that pay up to their expectations?

While age alone is not a determining factor for job opportunities, there are a few considerations that can impact an individual's job search experience:

  • Experience: Software engineers with 10 to 15 years of experience can bring valuable skills and expertise to the table. However, some companies may prioritize hiring younger engineers due to perceived cost benefits or a focus on new technologies. This can make it more challenging for mid-career professionals to find positions that match their expectations.
  • Evolving technology landscape: The field of software engineering is dynamic, with new technologies and programming languages emerging regularly. Mid-career professionals should ensure they keep their skills up-to-date to remain competitive in the job market. Demonstrating a willingness to learn and adapt can enhance their chances of finding suitable opportunities.
  • Job market demand: The demand for software engineers can vary based on factors such as location, industry, and economic conditions. Some regions or industries may have a higher demand for software engineers, leading to more job opportunities and potentially better compensation. Researching the local job market and understanding the demand for specific skills can be helpful in assessing job prospects.
  • Networking and personal branding: Building a professional network and maintaining an online presence can be advantageous when searching for job opportunities. Engaging in industry events, conferences, and online communities can help mid-career professionals expand their network and uncover hidden job prospects.

Ultimately, the job search process can be influenced by a variety of factors beyond age. Factors such as skills, experience, market demand, and the ability to adapt to new technologies play significant roles in determining job opportunities and salary expectations for software engineers.

Saturday, May 20, 2023

How to send notification on Microsoft Team using Webhook from UiPath?

By using webhook we can send notification on Microsoft Team's channel only. To configure a webhook in UiPath we need an HTTP Request activity and for http request activity we have to install UiPath.WebAPI.Activities package.

Webhook is a post request, so for http request activity we need following information for configuration purpose:

  • Webhook URL 
  • Payload for request
How to create a webhook in Microsoft Team?
I have already created an article for this. Please refer to the below article if you don't know about it.

How to create process in UiPath for sending notification?
Select a Process from New Project section


Provide a name to your process and click on Create button
Click on Main.xaml in project tab
A webhook is a rest API, so to call it from UiPath we need "HTTP Request" activity. To do this we have to install UiPath.WebAPI.Activities package.
Click on Manage Packages => Click on All Packages => In search tab type 'UiPath.WebAPI.Activities' => Click on 'UiPath.WebAPI.Activities' from search result => Click on 'Install' button => Click on 'Save' button
Click on Activities tab
Drag 'HTTP Request' to Main Sequence => Click on Configure button => a pop up window will appear

In the End point text box paste your webhook URL in double quotes("") => From Request Method dropdown select POST => Click on Ok button
In the right panel go to Properties tab => set the Body Format to application/json => In Body provide your payload(webhook supports a specific format only) => Click on OK button
Example of a very simple payload:
"{'title':'New Ticket','text':'Splunk created a new ticket'}"

Now go to Debug File => click on Run
You will get a notification
Go to teams channel and you will see the message 








How to create a webhook in Microsoft Team?

A webhook in Microsoft Team can be created for a team's channel only.

For creating a new team, you can do it under Teams tab. Once you create a new team then a default channel with name "General" is created by Microsoft inside the team.

Teams => Join or create a team => Create team


Now select the team and create a webhook for it
Click on the selected team name=> click on General => click on three dots(...) next to it => click on Connectors

Now from the pop up window click on  "Add" button which is next to "Incoming Webhook"

Once it will add successfully then a "Configure" button will be shown next to "Incoming Webhook"

Click on "Configure" button, a new popup window will open. In the popup window provide a name for your webhook and click on Create button

Once you will done it, webhook URL will generate. You can copy and save it.

How to convert plain string to base64 string in PowerShell?

We can also convert plain string to base64 string in PowerShell. In case you don't have C# or .NET on target machine where you want this conversion then PowerShell will be best choice. For this conversion PowerShell will also use same methods as we used in C#. 
Demo:


How to convert plain string to base64 string in C#?


In C# it is very easy to convert plain string to base64 string. We only have to use System and System.Text namespace in code for this conversion. Both namespaces are by default present in .NET Framework/Core.

Encode:

Decode:

Demo:

Output:


Will it be possible to live on Mars, as Elon Musk has said?

Elon Musk has expressed his ambition to establish a human presence on Mars in the future. While living on Mars is a long-term goal for Space...