Return to site

How To Automate Citrix Daily Activities Using Python

broken image


Get Started

Whether you're new to programming or an experienced developer, it's easy to learn and use Python.

The query I wrote actually gets a lot more information than is needed for this script, so I can use it as a basis to write more scripts. Feel free to use this as a base for your own scripts if you do note that all the date/time values in the database are UTC time. Here is the script! Be sure to pay attention to anything marked with ####. Hi My Windows application 'X' is installed in Citrix Server - machine A.Test Complete is installed in machine B. By logging into mchine B,I tried to automate my windows application 'X' accessing through CITRIX. 1) My first issue is Test Complete is not identifying the UserName and Password as text boxes.It identifies the object as 'wndTransparentWindowsClient' only.

Download

Python source code and installers are available for download for all versions!

Latest: Python 3.9.1

Docs

Documentation for Python's standard library, along with tutorials and guides, are available online.

Jobs

Looking for work or have a Python related position that you're trying to hire for? Our relaunched community-run job board is the place to go.

Latest News

Upcoming Events

Success Stories

Python's convenience has made it the most popular language for machine learning and artificial intelligence. Python's flexibility has allowed Anyscale to make ML/AI scalable from laptops to clusters.

Python provides convenience and flexibility for scalable ML/AIby Dean Wampler

Use Python for…

  • Web Development: Django, Pyramid, Bottle, Tornado, Flask, web2py
  • GUI Development: tkInter, PyGObject, PyQt, PySide, Kivy, wxPython
  • Scientific and Numeric: SciPy, Pandas, IPython
  • Software Development: Buildbot, Trac, Roundup
  • System Administration: Ansible, Salt, OpenStack

>>>Python Enhancement Proposals (PEPs): The future of Python is discussed here. RSS

>>>Python Software Foundation

The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers. Learn more

Daily activities report

Introduction

On May 30th, I had the pleasure of presenting at the MinneAnalytics Data Tech Conferencewith @KatieKodes. Our talk was on 'Evangelizing Python for Business'. 1943 game genie codes. Here isthe summary of the talk:

Python's simple structure has been vital to the democratization of data science.But as the field rushes forward, making splashy headlines about specialized new jobs,everyday Excel users remain unaware of the value that elementary building blocksof Python for data science can bring them at the office.

Join us for a conversation about bringing Python out of IT and into the business.We'll share challenges and successes from writing tutorials, teaching classes,and advocating adoption among new users.

I really enjoyed the presentation and received a lot of positive feedback.As a result, I wanted to capture some of the ideas in a post so that the broadercommunity could see it and generate some dialog on tips and techniques thathave worked for you. The actual content in this blog is closely tied to ourpresentation but contain some additional idea and thoughts that I may want to expandon in future posts.

Finally, thanks to Katie for suggesting the topic and allowing me to partner withher on the presentation. I think having two different but complimentary backgroundsreally helped the presentation cover a lot of different perspectives.

What are you trying to accomplish?

Before jumping right in to training everyone how to use python, it isimportant to understand what the goal is. This diagram shows where I think pythonfits into the IT ecosystem of a relatively large organization.

My experience is that Corporate IT functions are good at implementing large ERP-typeapplications or major cloud integrations like SalesForce. I suspect most mediumto large organizations have some flavor of these applications in place (and likely many others).

In some cases, the IT organization will have a team to build custom developed applicationsusing .NET or Java. Obviously, there will be a lot of Access and Excel sprinkled through the organization.

This distribution leaves a huge gap. There are problems that are not big enoughfor an off-the-shelf-solution or worth developing a full application. However they arecritical enough that Excel + Access is not a good solution. Vicki Boykisdoes an excellent job of talking through this problem on a broader scale. Iencourage you to read IT runs on Java 8 for a well written perspective on the problemof the hype of IT vs. the reality in many organizations.

I contend that python is an excellent candidate to fill in that gap and thatit does not need to be solely the realm of corporate IT. 'Super users' andother domain experts can (and should) be trained in using python to fix the problemsthat they face on a daily basis.

Python is almost 30 years old. Over its lifetime, it has always been known as a great 'glue language.'It has gone through a phase where it demonstrated success as a strong language for web development withtools such as Django and Flask (and many others). Now more recently, it is widelyused in Data Science. All of this power and flexibility leads me to wonder, whycan't we leverage it for other tasks within the organization that havenot had much support from IT? We can do so much better for our people if wegive them more tools besides Excel and VBA!

Pick Your Battles: People

Daily Activities Conversation

If you have a similar experience and are interested in trying to use pythonto fill that gap, how do you proceed?

The first step is figuring out which people are good candidates for learning python.

My default profile is the person that is viewed as the Excel 'guru' and has a strongunderstanding of the business process. In any group of 5-10 Excel users there alwaysseems to be at least one person that knows the ins and outs of the Excel toolsas well as the business problem. This combination can be a good place to start.

However, there are some people that are more interested in collecting a paycheck thantrying to automate the boring stuff. Job insecurity is a real issue that needsto be factored into the people part of the process. It is important to emphasizewhat the benefits to the employee will be if they automate some of the mundaneparts of their job. In my experience there is more than enough work to go around!

Given the rise of python in Data Science, there is likely going to be more generalawareness of python than there was 10 years ago. One implication of this is thatpeople may be more willing to agree to try python out. However, having interest in pythonis not sufficient. There is actually a bit more of a gap to get someone from'I can cut and paste VBA' to 'I can cut and paste python' to solve my problem.

How

Unfortunately I don't think there is a simple checklist to determine who is a goodcandidate to try to teach python. I do think that extra work outside of the 9-5daily job is needed. If you embark on this process, you will relatively quickly get asense for who is really willing to work at it and who is not.

There are lots of additional dynamics when trying to teach co-workers how to use python:

  • Are people doing this only because the boss expects them to?
  • How much outside of work time should be dedicated to the learning?
  • Can people of different levels learn together? What if the 'senior' person really struggles during the process?

Despite these potential 'gotchas' the payoff for the organization can be very large.Think about how much could be done in your job if you had a team of 2-3 python-savvyexperts that could help you out!

Adjust to your audience

I can almost promise that once you embark down this path of trying to bringpython into your organization, you are going to have to adjust to the audience.Some people are going to be much more eager than others. The style that you usedto learn python is likely going to be much different from your co-workers' needs.

You will need to be prepared to adjust and take cues from the audience. In addition,there may be broader organization changes that cause you to shift focus. For instance,what happens if more departments are interested in your activities? What will youdo if IT or management push back for various reasons?

In addition, keep in mind some of these thoughts:

  • How would you scale if more people join?
  • How can you keep people engaged as they move at different speeeds?
  • How much 'take-home' content do you need to provide?
  • How much time can you carve out to teach?

Imitate Better Teachers

One of the biggest challenges with spreading python in an organization is thatknowing python does not make someone a good teacher. In fact, the way you likelylearned python is not the same way others will want to learn.

Once you start the teaching process, here are a few tips and tricks:

  • Don't be ashamed to bring in 'better' teachers or others with python knowledge
  • Bring in 'lab assistants' to help with the minor gotchas
  • Build a team approach so that it does not just fall on your shoulders
  • Identify a blog, YouTube Channel or other resource that can be used inside and outside the trainings.
  • Leverage any outside meetups/groups in the area so that the training can happen outside of work hours.

Learn with they're trying to accomplish

It is really important to understand what the students are trying to accomplish.Do they want to move into a Data Science role? Do they just want to be moreefficient in the current role?

They are likely excited to try to solve some sort of real-world problem in theirday to day jobs. However, it is somewhat tricky to figure out the 'right' problemto tackle first. You will need to steer them to solvable problems that they can maintainin the future.

How To Automate Citrix Daily Activities Using Python List

Here are some reasons to automate a process:

  • Save time - This is the first instinct but may not be the best reason.
  • Get a quick win - Prove the value of python.
  • Learn about the problem - How 'solvable' is the problem?
  • Development an improvement mindset - Get people to think about their problems differently.
  • Process is boring or has lots of mistakes.

In addition, certain problems are better for python automation than others atthis early stage in the process. Here are some characteristics of 'good problems':

  • Large data sets - 100,000+ rows of data in Excel.
  • Well understood problem - Focus on learning python not the problem.
  • One step in a long process - Start with a manageable piece of the process.
  • Text manipulation - Excel is used for lots of string manipulation tasks that python can do very well.
  • Formatting of output does not matter - Focus on core data wrangling, not making it look pretty.

As a python expert, you may be tempted to start with the biggest challenges first.I recommend starting with something a little smaller - even if the time savingsis small. There are going to be lots of hurdles and challenges outside of thespecific problem. Do not bite off more than you can chew when first getting started.

People are going to be naturally skeptical so proving the value early is critical!

Pick your battles: process

There are lots of way to teach people how to use python. It is reallyimportant to think about all the available approaches.

How do you decide where to start? It is not trivial to find and curate thecontent for your specific needs. A lot of it feels like reinventing the wheel-which can be discouraging. However, that might be ok if it helps you learn moreand build better content for your attendees.

How To Automate Citrix Daily Activities Using Python

As you search for sources of content, try to keep a blend of various content types:

  • Formal online courses
  • Custom developed lessons focused on your data sets
  • Balance of formal lesson approach vs. real-world examples
  • CS 101 concepts
How to automate citrix daily activities using python file

Once you do start teaching:

  • Reassure people that this can be confusing
  • It is ok if you forget things. It is ok to google or refer to past examples.
  • Part of the process is figuring out how to get 'un-stuck'
  • Gamification through chocolate, treats, swag is great for key concepts

The entire process is not just about teaching python language syntax. It is aboutteaching people to solve problems in a unique way. Shifting from an Excel-firstmindset to a python-first mindset takes time.

One Final Note

During one of the talks at Data Tech, I had the pleasure of listening toPeter Wang, the CTO of Anaconda talk about the role of the Data Scientist.One of the the really interesting comments he made is that we are moving into a worldwhere basic data literacy is going to be a requirement for success in the workforce.Today we don't expect you to be a Math major to do math or an Englishmajor to write. In much the same way, data literacy is going to be required of many more peopleand is not going to be just for Data Scientists.

I firmly believe that we can and should bring in more tools like python into ourorganizations so that we can be more efficient but also start to increase thedata literacy of the entire organization. These are two mutually benefical andreinforcing goals to keep in mind.

Takeaways

Five to 10 years ago, it might have been quite an uphill battle to try to bringpython into your organization to solve your business problems. With the rise of python'spopularity in the Data Science world, you will have a much smaller hill to climbto convince others that python can help them solve their problems - even if itis not formal 'Data Science.'

Once you get your organization on-board with the idea of using python, there is a lot of work toimplement those ideas. This article includes a high level framework for thinkingthrough the process:

  • Know what you're trying to accomplish
  • Pick your battles: people
  • Know what they are trying to accomplish
  • Adjust to your audience
  • Imitate good teachers
  • Pick your battles: process
Activities

Introduction

On May 30th, I had the pleasure of presenting at the MinneAnalytics Data Tech Conferencewith @KatieKodes. Our talk was on 'Evangelizing Python for Business'. 1943 game genie codes. Here isthe summary of the talk:

Python's simple structure has been vital to the democratization of data science.But as the field rushes forward, making splashy headlines about specialized new jobs,everyday Excel users remain unaware of the value that elementary building blocksof Python for data science can bring them at the office.

Join us for a conversation about bringing Python out of IT and into the business.We'll share challenges and successes from writing tutorials, teaching classes,and advocating adoption among new users.

I really enjoyed the presentation and received a lot of positive feedback.As a result, I wanted to capture some of the ideas in a post so that the broadercommunity could see it and generate some dialog on tips and techniques thathave worked for you. The actual content in this blog is closely tied to ourpresentation but contain some additional idea and thoughts that I may want to expandon in future posts.

Finally, thanks to Katie for suggesting the topic and allowing me to partner withher on the presentation. I think having two different but complimentary backgroundsreally helped the presentation cover a lot of different perspectives.

What are you trying to accomplish?

Before jumping right in to training everyone how to use python, it isimportant to understand what the goal is. This diagram shows where I think pythonfits into the IT ecosystem of a relatively large organization.

My experience is that Corporate IT functions are good at implementing large ERP-typeapplications or major cloud integrations like SalesForce. I suspect most mediumto large organizations have some flavor of these applications in place (and likely many others).

In some cases, the IT organization will have a team to build custom developed applicationsusing .NET or Java. Obviously, there will be a lot of Access and Excel sprinkled through the organization.

This distribution leaves a huge gap. There are problems that are not big enoughfor an off-the-shelf-solution or worth developing a full application. However they arecritical enough that Excel + Access is not a good solution. Vicki Boykisdoes an excellent job of talking through this problem on a broader scale. Iencourage you to read IT runs on Java 8 for a well written perspective on the problemof the hype of IT vs. the reality in many organizations.

I contend that python is an excellent candidate to fill in that gap and thatit does not need to be solely the realm of corporate IT. 'Super users' andother domain experts can (and should) be trained in using python to fix the problemsthat they face on a daily basis.

Python is almost 30 years old. Over its lifetime, it has always been known as a great 'glue language.'It has gone through a phase where it demonstrated success as a strong language for web development withtools such as Django and Flask (and many others). Now more recently, it is widelyused in Data Science. All of this power and flexibility leads me to wonder, whycan't we leverage it for other tasks within the organization that havenot had much support from IT? We can do so much better for our people if wegive them more tools besides Excel and VBA!

Pick Your Battles: People

Daily Activities Conversation

If you have a similar experience and are interested in trying to use pythonto fill that gap, how do you proceed?

The first step is figuring out which people are good candidates for learning python.

My default profile is the person that is viewed as the Excel 'guru' and has a strongunderstanding of the business process. In any group of 5-10 Excel users there alwaysseems to be at least one person that knows the ins and outs of the Excel toolsas well as the business problem. This combination can be a good place to start.

However, there are some people that are more interested in collecting a paycheck thantrying to automate the boring stuff. Job insecurity is a real issue that needsto be factored into the people part of the process. It is important to emphasizewhat the benefits to the employee will be if they automate some of the mundaneparts of their job. In my experience there is more than enough work to go around!

Given the rise of python in Data Science, there is likely going to be more generalawareness of python than there was 10 years ago. One implication of this is thatpeople may be more willing to agree to try python out. However, having interest in pythonis not sufficient. There is actually a bit more of a gap to get someone from'I can cut and paste VBA' to 'I can cut and paste python' to solve my problem.

Unfortunately I don't think there is a simple checklist to determine who is a goodcandidate to try to teach python. I do think that extra work outside of the 9-5daily job is needed. If you embark on this process, you will relatively quickly get asense for who is really willing to work at it and who is not.

There are lots of additional dynamics when trying to teach co-workers how to use python:

  • Are people doing this only because the boss expects them to?
  • How much outside of work time should be dedicated to the learning?
  • Can people of different levels learn together? What if the 'senior' person really struggles during the process?

Despite these potential 'gotchas' the payoff for the organization can be very large.Think about how much could be done in your job if you had a team of 2-3 python-savvyexperts that could help you out!

Adjust to your audience

I can almost promise that once you embark down this path of trying to bringpython into your organization, you are going to have to adjust to the audience.Some people are going to be much more eager than others. The style that you usedto learn python is likely going to be much different from your co-workers' needs.

You will need to be prepared to adjust and take cues from the audience. In addition,there may be broader organization changes that cause you to shift focus. For instance,what happens if more departments are interested in your activities? What will youdo if IT or management push back for various reasons?

In addition, keep in mind some of these thoughts:

  • How would you scale if more people join?
  • How can you keep people engaged as they move at different speeeds?
  • How much 'take-home' content do you need to provide?
  • How much time can you carve out to teach?

Imitate Better Teachers

One of the biggest challenges with spreading python in an organization is thatknowing python does not make someone a good teacher. In fact, the way you likelylearned python is not the same way others will want to learn.

Once you start the teaching process, here are a few tips and tricks:

  • Don't be ashamed to bring in 'better' teachers or others with python knowledge
  • Bring in 'lab assistants' to help with the minor gotchas
  • Build a team approach so that it does not just fall on your shoulders
  • Identify a blog, YouTube Channel or other resource that can be used inside and outside the trainings.
  • Leverage any outside meetups/groups in the area so that the training can happen outside of work hours.

Learn with they're trying to accomplish

It is really important to understand what the students are trying to accomplish.Do they want to move into a Data Science role? Do they just want to be moreefficient in the current role?

They are likely excited to try to solve some sort of real-world problem in theirday to day jobs. However, it is somewhat tricky to figure out the 'right' problemto tackle first. You will need to steer them to solvable problems that they can maintainin the future.

How To Automate Citrix Daily Activities Using Python List

Here are some reasons to automate a process:

  • Save time - This is the first instinct but may not be the best reason.
  • Get a quick win - Prove the value of python.
  • Learn about the problem - How 'solvable' is the problem?
  • Development an improvement mindset - Get people to think about their problems differently.
  • Process is boring or has lots of mistakes.

In addition, certain problems are better for python automation than others atthis early stage in the process. Here are some characteristics of 'good problems':

  • Large data sets - 100,000+ rows of data in Excel.
  • Well understood problem - Focus on learning python not the problem.
  • One step in a long process - Start with a manageable piece of the process.
  • Text manipulation - Excel is used for lots of string manipulation tasks that python can do very well.
  • Formatting of output does not matter - Focus on core data wrangling, not making it look pretty.

As a python expert, you may be tempted to start with the biggest challenges first.I recommend starting with something a little smaller - even if the time savingsis small. There are going to be lots of hurdles and challenges outside of thespecific problem. Do not bite off more than you can chew when first getting started.

People are going to be naturally skeptical so proving the value early is critical!

Pick your battles: process

There are lots of way to teach people how to use python. It is reallyimportant to think about all the available approaches.

How do you decide where to start? It is not trivial to find and curate thecontent for your specific needs. A lot of it feels like reinventing the wheel-which can be discouraging. However, that might be ok if it helps you learn moreand build better content for your attendees.

As you search for sources of content, try to keep a blend of various content types:

  • Formal online courses
  • Custom developed lessons focused on your data sets
  • Balance of formal lesson approach vs. real-world examples
  • CS 101 concepts

Once you do start teaching:

  • Reassure people that this can be confusing
  • It is ok if you forget things. It is ok to google or refer to past examples.
  • Part of the process is figuring out how to get 'un-stuck'
  • Gamification through chocolate, treats, swag is great for key concepts

The entire process is not just about teaching python language syntax. It is aboutteaching people to solve problems in a unique way. Shifting from an Excel-firstmindset to a python-first mindset takes time.

One Final Note

During one of the talks at Data Tech, I had the pleasure of listening toPeter Wang, the CTO of Anaconda talk about the role of the Data Scientist.One of the the really interesting comments he made is that we are moving into a worldwhere basic data literacy is going to be a requirement for success in the workforce.Today we don't expect you to be a Math major to do math or an Englishmajor to write. In much the same way, data literacy is going to be required of many more peopleand is not going to be just for Data Scientists.

I firmly believe that we can and should bring in more tools like python into ourorganizations so that we can be more efficient but also start to increase thedata literacy of the entire organization. These are two mutually benefical andreinforcing goals to keep in mind.

Takeaways

Five to 10 years ago, it might have been quite an uphill battle to try to bringpython into your organization to solve your business problems. With the rise of python'spopularity in the Data Science world, you will have a much smaller hill to climbto convince others that python can help them solve their problems - even if itis not formal 'Data Science.'

Once you get your organization on-board with the idea of using python, there is a lot of work toimplement those ideas. This article includes a high level framework for thinkingthrough the process:

  • Know what you're trying to accomplish
  • Pick your battles: people
  • Know what they are trying to accomplish
  • Adjust to your audience
  • Imitate good teachers
  • Pick your battles: process

I hope you found it useful. I am contemplating building out some more contentfor a 'Lunch and Learn' series. If you have any ideas, tips or contents thatyou have found effective, feel free to share any of your successes in the comments below.

Comments





broken image