faduregis https://faduregis.com Francois Regis Dusengimana Wed, 02 Oct 2024 11:13:28 +0000 en-US hourly 1 https://wordpress.org/?v=6.7.1 Five Python free books to read https://faduregis.com/2024/10/02/five-python-free-books-to-read/ https://faduregis.com/2024/10/02/five-python-free-books-to-read/#respond Wed, 02 Oct 2024 10:36:13 +0000 https://faduregis.com/?p=177 Every five months, I prepare five Python readings for Python lovers who visit this site regularly. If you want to submit your Python book(s), contact me at hello@faduregis.com or via my social media if you wish to submit Python books to be published in the next batch.

—————————

Automate the Boring Stuff with Python

If you’ve ever spent hours renaming files or updating hundreds of spreadsheet cells, you know how tedious tasks like these can be. But what if you could have your computer do them for you?

In Automate the Boring Stuff with Python, you’ll learn how to use Python to write programs that do in minutes what would take you hours to do by hand – no prior programming experience required. Read the book via this link.

Beyond the Basic Stuff with Python

More than a mere collection of advanced syntax and masterful tips for writing clean code, you’ll learn how to advance your Python programming skills by using the command line and other professional tools like code formatters, type checkers, linters, and version control.

Of course, no single book can make you a professional software developer. But Beyond the Basic Stuff with Python will get you further down that path and make you a better programmer in the process as you learn to write readable code that’s easy to debug and perfectly Pythonic.

Read the book via this link.

Geographic Thinking for Data Scientists

Data scientists have long worked with geographical data. Maps, particularly, are a favorite kind of “infographic” now that we are in the age of responsive web cartography. While we discuss a bit about computational cartography in the chapter on choropleth mapping, it’s useful to think a bit more deeply about how geography works in the context of data science. Read the book via this link.

Think Python: How to Think Like a Computer Scientist

Probably Overthinking It is for anyone who wants to use data to better understand the world. It explains the most important ideas using clear prose and data visualization instead of equations and code. Read the book via this link.

Python for Everybody: Exploring Data in Python 3

The goal of this book is to provide an Informatics-oriented introduction to programming. The primary difference between a computer science approach and the Informatics approach taken in this book is a greater focus on using Python to solve data analysis problems common in the world of Informatics. Read the book via this link.

————————————————————-

]]>
https://faduregis.com/2024/10/02/five-python-free-books-to-read/feed/ 0 177
Grab Spotify data using its API with Python, Flask, and OAuth 2.0 https://faduregis.com/2024/08/24/grab-spotify-data-sing-its-api-with-python-flask-and-oauth-2-0/ Sat, 24 Aug 2024 19:39:50 +0000 https://faduregis.com/?p=101 In this article/tutorial, I will explore how to build a simple Python application that uses the Spotify API to track the currently playing playlists on your Spotify account. This project is perfect for junior developers looking to understand how OAuth 2.0 works in real-world applications, as well as how to interact with APIs in Python. I will use the Spotify API, Python, Flask, and the OAuth 2.0 authorization flow to make it all work.

By the end of this tutorial, you’ll have a fully functioning Flask app (I will not spend time on the front page, only welcome message on the app) that can authenticate with Spotify, retrieve an access token, and use that token to get the currently playing track. You will also gain a solid understanding of how OAuth 2.0 is being used by many companies to grant secure access to their APIs.

You can copy codes from my GitHub to go through when you are learning this concept.

Prerequisites

Before we dive in, make sure you have the following set up:

  • Basic knowledge of Python and Flask.
  • A Spotify account.
  • Spotify Developer credentials (Client ID and Client Secret). You can create an application on the Spotify Developer Dashboard.
  • Python 3.x installed on your system.
  • Flask installed in your Python environment. You can install Flask using pip: pip install Flask

Setting Up the Flask Application

I will start by creating a simple Flask application. Create a new directory or landing page for our project.

In the login route, I am building the URL to Spotify’s authorization page, where the user will be asked to log in and authorize our application. Once the user authorizes, they will be redirected to the /callback route with an authorization code.

In the callback route, I exchange this authorization code for an access token. This token is stored in the session and will be used to access the Spotify API.

Fetching the currently playing track

Now that we have the access token, let’s create a route to fetch the currently playing track from the Spotify API.

Codes are available on my GitHub. https://github.com/Regis7/Sportify_API

Learn more on the Spotify documentation.

]]>
101
Data-related job titles, main responsibilities and key skills to have https://faduregis.com/2024/08/04/data-related-job-titles-main-responsibilities-and-key-skills-to-have/ Sun, 04 Aug 2024 11:47:20 +0000 https://faduregis.com/?p=96 People have been asking me to research data-related job titles, responsibilities, and key skills for each job. In this live article, I conducted research to answer the question. I will update this article every six months to keep it relevant.   

What is in the article?

Possible data-related job titles, primary responsibilities for each job, and skill set the employee should have to fulfil the position. It is hard to scope the skill set. I recommend taking the given skills list as a must to have at least two skills in each category. Of Course, the more skills you have, the better you will perform.

What is not is not covered in this article?

This article does not cover salaries. I understand the importance of including the salary section in the research. Salary is affected by many factors, including region/country, company size, contract negotiation, employee experience, etc.

Data analyst

Description: A data analyst plays a crucial role in interpreting data, analyzing results, and providing actionable insights to support decision-making processes within an organization.

Main responsibilities

  • Data Collection and Processing: Gather data from various sources, maintain data systems for accuracy, and use automated tools for data extraction.
  • Data Analysis: Interpret data, identify trends, and analyze patterns to provide actionable insights and regular reports.
  • Reporting and Presentation: Prepare clear, detailed reports and visualizations to communicate findings to stakeholders.
  • Collaboration: Work closely with management and departments to prioritize data needs and develop practical solutions.

Key skills to have: I have listed the top five skills in each category to make the journey less boring and less stressful for people planning to take it. However, skills may vary depending on experience, academic background, etc.

  • Languages: SQL, Python, R, SAS, Go.
  • Tools:  Excel, Tableau, Power BI, SAS, PowerPoint.
  • Libraries: Spark, Hadoop, Pandas, Airflow, NumPy.
  • Databases: SQL Server, MySQL, PostgreSQL, MongoDB, DB2.
  • Cloud: Azure, Oracle, AWS, Snowflake, Big Query,
  • Framework: Express, Vue.js, Node.js, Angular, Phoenix.

Business analyst

Description: A business analyst plays a pivotal role in bridging the gap between IT and business using data analytics to assess processes, determine requirements, and deliver data-driven recommendations and reports to executives and stakeholders.

Main responsibilities

  • Requirements Gathering: Conduct interviews, workshops, and surveys to gather and document user requirements and business process descriptions.
  • Analysis and Evaluation: Analyse business processes and workflows to identify areas for improvement and develop optimized solutions.
  • Solution Implementation: Develop business cases, assist in implementing new processes and systems, and ensure solutions meet business needs.
  • Stakeholder Management and Reporting: Collaborate with stakeholders, liaise between business and technical teams, and prepare detailed documentation and reports for various stakeholders.

Key skills to have: I have listed the top five skills in each category to make the journey less boring and less stressful for people planning to take it. However, skills may vary depending on experience, academic background, etc.

  • Languages: SQL, Python, R, Go, SAS.
  • Tools:  Excel, Tableau, Power BI, PowerPoint, Word.
  • Libraries: Spark, Hadoop, Pandas, GDPR, Airflow.
  • Databases: SQL Server, MySQL, PostgreSQL, MongoDB, DB2.
  • Cloud: Azure, Oracle, AWS, Snowflake, Redshift.
  • Framework: Express, Phoenix, Ruby, Vue.js, Node.js.

Data Engineer

Description: A Data Engineer is responsible for designing, building, and maintaining the infrastructure and systems required for collecting, storing, and analyzing large data sets. They ensure that data pipelines are scalable, efficient, and reliable.

Main responsibilities

  • Data Pipeline Development: Design, develop, and maintain scalable data pipelines and systems for efficient data collection, storage, and processing.
  • Data Integration: Integrate data from various sources, ensuring data quality and consistency across different systems.
  • Database Management: Build and maintain databases, data warehouses, and data lakes while monitoring and troubleshooting performance issues.
  • Collaboration and Documentation: Work with data scientists and analysts to meet data needs and create technical documentation for data processes and systems.

Key skills to have: I have listed the top five skills in each category to make the journey less boring and less stressful for people planning to take it. However, skills may vary depending on experience, academic background, etc.

  • Languages: SQL, Python, Java, Scala, NoSQL.
  • Tools:  Tableau, Power BI, SSIS, Excel, SAP.
  • Libraries: Spark, Kafka, Hadoop, Airflow, PySpark.
  • Databases: SQL Server, MySQL, Cassandra, PostgreSQL, MongoDB.
  • Cloud: AWS, Azure, Snowflake, Data Bricks, Redshift.   
  • Framework: Node.js, Ruby, Express, Angular, Flask.

Data Scientist

Description: A Data Scientist applies statistical analysis, machine learning, and data mining techniques to interpret complex data and provide actionable insights to drive business decisions.

Main responsibilities

  • Data Analysis: Collect, process, and analyze large datasets using statistical techniques to uncover trends, patterns, and insights.
  • Model Development: Develop, implement, validate, and optimize machine learning models and algorithms to address business challenges.
  • Data Visualization: Create and present data visualizations, dashboards, and reports to effectively communicate findings to stakeholders.
  • Collaboration and Innovation: Work with cross-functional teams to meet data needs, collaborate on deploying models into production, and stay updated with the latest advancements in data science.

Key skills to have: I have listed the top five skills in each category to make the journey less boring and less stressful for people planning to take it. However, skills may vary depending on experience, academic background, etc.

  • Languages: Python, SQL, Java, R, SAS.
  • Tools:  Tableau, Excel, Power BI, SAS, Word.
  • Libraries: Spark, TensorFlow, PyTorch, Hadoop, Pandas.
  • Databases: SQL Server, MySQL, MongoDB, PostgreSQL, Cassandra.
  • Cloud: AWS, Azure, GCP, Data Bricks, Oracle.  
  • Framework: Flask, Express, Django, Ruby, Angular.

Data governance

Description: Data governance ensures that data is managed, used, and protected according to organizational policies and standards. A Data Governance Specialist, Officer or Manager is critical in establishing and enforcing data governance policies, ensuring data quality, and supporting regulatory compliance.

Main responsibilities

  • Policy Development and Implementation: Develop, implement, and enforce data governance policies, standards, and procedures across the organization.
  • Data Quality and Integrity: Establish and maintain data quality metrics, monitor data quality, and address data quality issues.
  • Regulatory Compliance: Collaborating with legal and compliance teams to ensure compliance with data protection and privacy regulations.
  • Collaboration and Training: Work with data stakeholders to promote data governance initiatives and provide training on policies and procedures.

Key skills to have: I have listed the top five skills to make the journey less boring and less stressful for people planning to take it. However, skills may vary depending on experience, academic background, etc.

  • Strong understanding of data governance frameworks and best practices.
  • Proficiency in data management tools and technologies.
  • Excellent analytical, problem-solving, and communication skills.
  • Ability to work collaboratively with cross-functional teams.

Data Steward

Description: A Data Steward is responsible for ensuring an organisation’s proper data management and quality. This role focuses on maintaining data integrity, enforcing data governance policies, and supporting data management practices.

Main responsibilities

  • Data Quality Management: Monitor and enforce data quality standards and address data quality issues through cleansing and validation.
  • Data Governance Support: Implement and adhere to data governance policies and assist in maintaining data definitions and standards.
  • Data Management: Maintain data documentation, including metadata and data lineage, and ensure data management practices meet organizational requirements.
  • Training and Support: Provide data users with training and support on best practices and governance policies and serve as a point of contact for data-related inquiries.

Key skills to have: I have listed the top five skills to make the journey less boring and less stressful for people planning to take it. However, skills may vary depending on experience, academic background, etc.

  • Strong understanding of data governance and data management principles.
  • Proficiency in data management tools and technologies.
  • Excellent analytical and problem-solving skills.
  • Strong communication and interpersonal skills.

Data leader

Description: A Data Leader is responsible for setting the strategic direction for an organisation’s data management, governance, and analytics. This role typically involves overseeing data strategy, ensuring data quality, and leveraging data to drive business insights and decisions.

Main responsibilities

  • Develop and Execute Data Strategy: Create and implement a data strategy that aligns with organizational goals and drives the overall direction of data management and analytics.
  • Oversee Data Governance and Quality: Ensure the implementation and adherence to data governance policies and maintain high data quality and integrity standards.
  • Drive Data Analytics and Insights: Utilize data analytics to generate actionable business insights, support strategic decision-making, and address business challenges.
  • Lead and Collaborate: Manage a team of data professionals, collaborate with cross-functional teams, and communicate data strategy and insights to senior leadership and stakeholders.

Key skills to have: I have listed the top five skills to make the journey less boring and less stressful for people planning to take it. However, skills may vary depending on experience, academic background, etc.

  • Strong strategic thinking and leadership abilities.
  • Proficiency in data management tools and technologies (e.g., SQL, Hadoop, Spark).
  • Expertise in data analytics and visualization tools (e.g., Tableau, Power BI).
  • Excellent communication, interpersonal, and problem-solving skills.
]]>
96
Global IT failure due to a single update https://faduregis.com/2024/07/19/global-it-failure-due-to-a-single-update/ Fri, 19 Jul 2024 23:49:08 +0000 https://faduregis.com/?p=83 Today’s IT outage blurred my thinking about technology advancement. Our generation claims credit for having developed the tech industry more than before. Do we really have IT infrastructure the world can rely on? How can a single update in one company affect every corner of the world?

Today, I have been following the IT chaos caused by the failure of the IT system in airlines, banks, hospitals, etc.

Cyber-security firm Crowdstrike has admitted that an update to its antivirus software, which is designed to protect Microsoft Windows devices from malicious attacks, caused the problem.

According to Crowdstrike boss George Kurtz, the issues only impacted Windows PCs and no other operating systems and were caused by a defect in a recent update.
“The issue has been identified, isolated and a fix has been deployed,” he said.

According to BBC News, the issue started at 19:00 GMT on Thursday, July 18, 2024, affecting Windows users running the cybersecurity software CrowdStrike Falcon. According to Microsoft, the full extent of the problem only became clear by Friday morning.

My concerns remain about how robust the global IT infrastructure is if one company, which is not among the giant tech companies, can cause a global panic.
[… to complete after research]

]]>
83
The European Artificial Intelligence Act: Pioneering Regulatory Framework for Responsible AI https://faduregis.com/2024/07/19/the-european-artificial-intelligence-act-pioneering-regulatory-framework-for-responsible-ai/ Fri, 19 Jul 2024 22:26:04 +0000 https://faduregis.com/?p=60 Abstract

In a landmark development, the European Union (EU) has reached a historic agreement on the Artificial Intelligence Act, marking the world’s first comprehensive set of rules governing the deployment of artificial intelligence (AI). This article explores the key provisions of the AI Act, its potential impact on AI advancement in Europe, and its implications for the global landscape. The regulatory framework is designed to ensure the ethical and responsible development and use of AI technologies, balancing innovation with the protection of fundamental rights.

1. Introduction

The rapid evolution of artificial intelligence has prompted policymakers worldwide to address the ethical and societal implications associated with its deployment. The European AI Act represents a groundbreaking effort by the EU to establish clear guidelines for the development, deployment, and use of AI technologies.

2. Key Provisions of the AI Act

2.1. High-Risk AI Systems

One of the central elements of the AI Act is the identification and regulation of high-risk AI systems. The legislation categorizes AI applications such as critical infrastructure, healthcare, transportation, and law enforcement as high-risk, imposing stringent requirements on developers and users. This includes mandatory risk assessments, transparency obligations, and conformity assessments conducted by notified bodies.

2.2. Prohibition of Certain AI Practices

The AI Act prohibits the use of AI systems that manipulate human behavior or exploit vulnerabilities in an unacceptable manner. This includes technologies that create deepfakes for malicious purposes or systems that deploy subliminal techniques to influence decision-making.

2.3. Data Governance and Privacy

The legislation places a strong emphasis on data governance and privacy, recognizing the critical role of data in AI development. Developers are required to ensure the quality and integrity of training data, and mechanisms are established to protect individuals from biased or discriminatory AI systems.

3. Implications for AI Advancement in Europe

3.1. Ethical AI Innovation

The AI Act encourages the development of AI technologies that align with ethical principles, fostering a culture of responsible innovation within the European AI ecosystem. This emphasis on ethical considerations may position European AI developers as leaders in creating trustworthy and transparent AI systems.

3.2. Global Impact:

The EU’s pioneering efforts in regulating AI are likely to set a global standard for responsible AI development. As other regions consider their own regulatory frameworks, the EU’s approach may influence the direction of international discussions on AI ethics, privacy, and human rights.

4. Challenges and Future Directions:

While the AI Act represents a significant step forward, challenges remain, including the need for international cooperation, ongoing adaptation to technological advancements, and the development of effective enforcement mechanisms. Continuous collaboration between policymakers, industry stakeholders, and the research community will be essential to address emerging challenges.

5. Conclusion:

The European AI Act marks a historic moment in the regulation of artificial intelligence, providing a comprehensive framework for responsible AI development and deployment. As Europe takes the lead in establishing ethical guidelines, the global impact is expected to shape the trajectory of AI advancement worldwide, fostering innovation while safeguarding fundamental rights and values.

]]>
60
Data Streaming https://faduregis.com/2024/07/19/data-streaming/ Fri, 19 Jul 2024 22:17:29 +0000 https://faduregis.com/?p=52 Data streams are omnipresent, and it is expected that, by 2025, 90% of the big companies will be exploiting such data to drive real-time intelligence (read more about data streaming here). Accordingly, the big tech companies invest Millions in developing streaming solutions and platforms to support efficient stream processing. Still, compared to the case of static-stored data, the current progress in streaming algorithms is far from satisfactory.

]]>
52
The need for the Agile methods, similarities, and differences with waterfalls https://faduregis.com/2024/07/19/the-need-for-the-agile-methods-similarities-and-differences-with-waterfalls/ Fri, 19 Jul 2024 21:57:12 +0000 https://faduregis.com/?p=35 In the series to help developers and other agile methods users, we are elaborating on Agile methods, principles, and ceremonies.

Agile pioneers have explained the philosophy behind the Agile manifesto using four values and twelve principles, agile manifesto. The software development team applies agile methods by following the values and principles the fathers of agile have set. 

The agile method was born in Utah in February 2001 during the “Light Weight” meeting that elaborated the agile manifesto, which is the backbone of agile methods. The whole idea of agile revolves around four philosophical values and twelve meaningful principles that guide agile teams. 

In agile, the development team analyzes and designs during the project implementation. Martin Robert discusses this idea in his book “Clean Agile” arguing that analysis, design, and implementation/coding are not separate phases.

The agile methods allow developers to prioritize the essential features of the software when there is a shortage of resources like time, budget, and personnel. Agile pioneers argue that the Agile methods use a suitable approach to solve complex problems. Another good thing with agile is the incrementally and iterative aspects during the software development, allowing continuous changes and delivery to satisfy the customer. It’s good that with Agile, the customer can have the minimum viable product before the end of the project.  

By adopting the agile methods, the collaboration between the development team and the customer/client creates a great working environment that contributes to the project’s success. Customer feedback is required regularly and frequently for the project’s success.

Key differences between agile methods and the waterfall model:

  • The customer works closely with the development team in agile methods, and the customer can change requirements during the development. For example, you can start the project development with initial requirements while waiting for additional requirements to complete the project. This is not the case for the waterfall model, which is a one-way development process.
  • The waterfall model is a plan-based development, conducting a detailed analysis, developing a clear/detailed plan, and then completing that plan. For the waterfall model, most of the time, the customer is unhappy due to less engagement in the project.
  • Agile allows continuous integration and continuous delivery of the product.

Key similarities between agile methods and the waterfall model:

  • Even if these are two different methods/processes, we should expect the same results, like the quality of the software at the end of development.�
  • It is not a mistake to say that agile methods and the waterfall model are the most popular or may be among the most popular software development methods.
]]>
35
Refactoring practice https://faduregis.com/2024/07/19/refactoring-practice/ https://faduregis.com/2024/07/19/refactoring-practice/#comments Fri, 19 Jul 2024 21:32:10 +0000 https://faduregis.com/?p=1 Refactoring is redesigning existing or new codes to improve them. Refactoring makes the codes more understandable, structured, clean, and, most importantly, extendable/flexible in the future. Accounting to the ISO/IEC 25010:2011 talks about software quality; refactoring is the technique of changing codes without changing external behaviour to improve maintainability. The software development sector is dynamic, and user requirements are frequently changing. Developers keep changing the codes to meet the customer requirements. These changes cause redundant and unused codes, overloaded classes, and long methods. As a result, the code becomes jumbled, referred to as Smelly code, and is a sign of a more significant problem in software development. Refactoring comes in to correct/eliminate these smelling codes. The developers apply the refactoring techniques by keeping an eye open on the SOLID principles.

SOLID is an acronym for five core object-oriented programming and design introduced in the early 2000s aims to help the development team write standardized codes; clean, easy to read, and extensible.  The researcher argues that it is like cleaning the kitchen after dinner. The more you clean, the more the next dinner will come early. 

Since the agile methodology allows customers to change their requirements anytime during the development process, it is a noble idea for the development team to design and develop software that is flexible/extendable enough to accept these changes without losing more time, budget, and energy. The following are a few examples of refactoring techniques.

Extract class

If you have a class doing the two-class work, you make another class and move the appropriate methods and fields from the original class to the new class.  A class overloaded with methods is intended to perform more than one task, which is difficult to understand and violates the single responsibility principle. The extract class technique is accomplished by creating a new class and then moving some of the methods to the new class so that the original class and the new class each handle a single task. The benefit of this refactoring is that adding or removing features to one of these classes does not affect the whole program. We do this to ensure the maintainability of these classes.

Pull up field

Pull similar fields from subclasses to the superclass to generalize and remove the delicate data declaration.

These refactoring techniques help to develop software with the ability to change anytime. With agile methods, it’s recommended to apply the refactoring techniques to have a project that accepts customer changes during and after the development process. More for refactoring, you can check on refactoring guru.

]]>
https://faduregis.com/2024/07/19/refactoring-practice/feed/ 1 1