<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: techwriterjohn</title>
    <description>The latest articles on DEV Community by techwriterjohn (@techwriterjohn).</description>
    <link>https://dev.to/techwriterjohn</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1128681%2Fb9c2cb48-4240-433d-94ee-e6e09142a394.jpg</url>
      <title>DEV Community: techwriterjohn</title>
      <link>https://dev.to/techwriterjohn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/techwriterjohn"/>
    <language>en</language>
    <item>
      <title>Creating a virtual environment in Python</title>
      <dc:creator>techwriterjohn</dc:creator>
      <pubDate>Sat, 29 Jul 2023 01:19:52 +0000</pubDate>
      <link>https://dev.to/techwriterjohn/creating-a-virtual-environment-in-python-j3</link>
      <guid>https://dev.to/techwriterjohn/creating-a-virtual-environment-in-python-j3</guid>
      <description>&lt;p&gt;Quick version&lt;br&gt;
This tutorial focuses on creating a virtual environment or venv for use with Python. I only intend to provide a brief introduction to venv, mostly providing the code necessary.&lt;/p&gt;

&lt;p&gt;To install the venv software enter the following:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip  install virtualenv&lt;/code&gt;&lt;br&gt;
Now you can create a venv on your system. To initiate venv within any directory type the following:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python&amp;lt;version&amp;gt; -m venv &amp;lt;virtual-environment-name&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Like so:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python3 -m venv myVenv&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;To activate the venv enter the following command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;source myVenv/bin/activate&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If on Windows type this command instead:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;.\myVenv\Scripts\activate&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now you're all ready to use your venv. Just install software and dependencies as you normally would.&lt;/p&gt;

&lt;p&gt;When you are ready to stop using your venv just type the following:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;deactivate&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;And that's it. You can now use a virtual environment in Python. For more on venv in Python view the &lt;a href="https://docs.python.org/3/library/venv.html"&gt;documentation here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>python</category>
      <category>virtual</category>
      <category>softwareengineering</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>SikuliX-WYSIWYG Automation</title>
      <dc:creator>techwriterjohn</dc:creator>
      <pubDate>Sat, 29 Jul 2023 01:05:42 +0000</pubDate>
      <link>https://dev.to/techwriterjohn/sikulix-wysiwyg-automation-19o0</link>
      <guid>https://dev.to/techwriterjohn/sikulix-wysiwyg-automation-19o0</guid>
      <description>&lt;p&gt;What is Sikuli?&lt;/p&gt;

&lt;p&gt;Sikuli is an automation tool built in Java.&lt;br&gt;&lt;br&gt;
SikuliX can be used by software engineers, developers, test engineers, or anyone.&lt;br&gt;
It allows you to automate anything on your screen on Windows, Mac, and some Linux operating systems. &lt;br&gt;
Sikuli uses  OpenCV, image recognition technology, to identify GUI components.&lt;br&gt;
SikuliX comes with basic text recognition that can be used to search text in images. This feature is Tesseract.&lt;br&gt;
SikuliX has an IDE, an integrated development environment, for easy WYSIWYG automation.&lt;br&gt;
SikuliX also has the ability implement scripting via:&lt;br&gt;
Python language level 2.7 (supported by Jython)&lt;br&gt;
running RobotFramework text-scripts is supported (see docs)&lt;br&gt;
Ruby language levels 1.9 and 2.0 (supported by JRuby)&lt;br&gt;
JavaScript (supported by the Java Scripting Engine)&lt;/p&gt;

&lt;p&gt;We will focus on using the IDE in this article.&lt;/p&gt;

&lt;p&gt;Installation.&lt;/p&gt;

&lt;p&gt;First, you’ll need to download the IDE, for your particular system, from Sikuli’s launch page:&lt;br&gt;
Download SikuliX here.&lt;/p&gt;

&lt;p&gt;If you do not have Oracle Java JDK (Java Development Kit) you will need to download and install it. &lt;/p&gt;

&lt;p&gt;Download Oracle Java JDK here.&lt;/p&gt;

&lt;p&gt;Similarly, you can use OpenJDK if your system requires it or is a preference.&lt;/p&gt;

&lt;p&gt;Download OpenJDK here.&lt;/p&gt;

&lt;p&gt;*You will need to download JDK or OpenJDK 8 or better.&lt;/p&gt;

&lt;p&gt;To open SikuliX double-click on the jar&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TdZjfkUv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ink5s0qwg8ywycbe520.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TdZjfkUv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ink5s0qwg8ywycbe520.png" alt="Image description" width="700" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or type in the following in the command prompt:&lt;/p&gt;

&lt;p&gt;java -jar sikulix.jar -v&lt;/p&gt;

&lt;p&gt;*If you find you cannot get this command to work, make sure you have the java jdk in your PATH.&lt;/p&gt;

&lt;p&gt;Getting Started with SikuliX.&lt;br&gt;
This is the SikuliX IDE:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--G7HOihls--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jfzu362lf5fr4od64m1z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--G7HOihls--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jfzu362lf5fr4od64m1z.png" alt="Image description" width="800" height="560"&gt;&lt;/a&gt;&lt;br&gt;
Idea behind SikuliX is to have a simple script that uses image recognition.&lt;br&gt;
As you can see on the IDE you have two main areas.&lt;br&gt;&lt;br&gt;
The main scripting area&lt;br&gt;
The messages area which you can think of as a console.&lt;/p&gt;

&lt;p&gt;Below the header you will see the follow buttons:&lt;br&gt;
Take screenshot - takes a screenshot of a desired image of the screen&lt;br&gt;
Insert Image - this button will insert a image you’ve already taken into your script&lt;br&gt;
Region - This will take a shot of a region of the screen.&lt;br&gt;
Location - This will allow you to click on the screen and get the precise location (X,Y).&lt;br&gt;
Offset - This will allow you to get a new location which is dx and dy pixels away horizontally and vertically from the current location.&lt;/p&gt;

&lt;p&gt;The SikuliX script commands are:&lt;br&gt;
click(): The click command allows you to click on anything you see on your screen.  Simply insert your image or screenshot with the click method ex. click(“image”).&lt;br&gt;
type(): Use this command anytime you wish to type on the screen ex. type(“Hello World”).  This is useful for textboxes and forms. &lt;br&gt;
double-click(): Similar to the click command but clicks twice instead of once.&lt;br&gt;
right-click():  Use this command to make use of right-click features of your mouse.&lt;br&gt;&lt;br&gt;
if(),elif(),else():  Use these commands if you need logic within your script.  I will show an example later.&lt;/p&gt;

&lt;p&gt;There are many other options and commands you can use.  For our purposes, these 7 commands will suffice.  For more, see the documentation here&lt;/p&gt;

&lt;p&gt;Here is a simple SikuliX script:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---hoIB9Px--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9qp98jit4604j5kfm54n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---hoIB9Px--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9qp98jit4604j5kfm54n.png" alt="Image description" width="596" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This script uses only two commands and four lines of script.  As you can see only two images were used for this demonstration.&lt;/p&gt;

&lt;p&gt;First, with Google Chrome open, take a screenshot of the Google search bar area.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ummPw9sw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kzfdf81lxqa0um0r1w6s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ummPw9sw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kzfdf81lxqa0um0r1w6s.png" alt="Image description" width="203" height="30"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It will place the image in your script.  You’ll need to type “click(image)” around it or simply type click() and then place the cursor between the parenthese, then take the screenshot.  I prefer the second way.&lt;/p&gt;

&lt;p&gt;We “click” in this area in order to make sure our cursor is there.&lt;/p&gt;

&lt;p&gt;Next we type our search into the search bar using the “type()” command&lt;/p&gt;

&lt;p&gt;type(“How to search Google”)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ep04FJ4n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ccvki7ub0btrae6y5cz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ep04FJ4n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ccvki7ub0btrae6y5cz.png" alt="Image description" width="390" height="140"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we use the “type()” command again to type enter.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;type(Key.ENTER);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Finally we use the click() command, in the same manner ass before, on a web page found in our search.&lt;/p&gt;

&lt;p&gt;In the end your script should look like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--r1qynVY8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bv34afzv7xxbmevchx79.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--r1qynVY8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bv34afzv7xxbmevchx79.png" alt="Image description" width="287" height="187"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this point, with your Google Chrome open, you can hit the run button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SJTXBnLs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n71id0pyxsbn787f4b8g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SJTXBnLs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n71id0pyxsbn787f4b8g.png" alt="Image description" width="71" height="46"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The end result should be the following &lt;br&gt;
Page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1zC3ELVL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sxql65465qnfmap6emma.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1zC3ELVL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sxql65465qnfmap6emma.png" alt="Image description" width="800" height="699"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Scripts can be as simple or complicated as you would like.  &lt;/p&gt;

&lt;p&gt;Use the if(), efif(), else commands when you need to use logic. An example would be checking to see if something exists on the screen:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YTaWZfuB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zwgio4ju091tzl8mbnz2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YTaWZfuB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zwgio4ju091tzl8mbnz2.png" alt="Image description" width="273" height="142"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would encourage you to read the documentation for a complete list of command usage.  &lt;/p&gt;

&lt;p&gt;Enjoy automating!&lt;/p&gt;

</description>
      <category>automation</category>
      <category>devops</category>
      <category>wysiwyg</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Cursor - A.I. Powered Integrated Development Environment</title>
      <dc:creator>techwriterjohn</dc:creator>
      <pubDate>Sat, 29 Jul 2023 00:43:27 +0000</pubDate>
      <link>https://dev.to/techwriterjohn/cursor-ai-powered-integrated-development-environment-2149</link>
      <guid>https://dev.to/techwriterjohn/cursor-ai-powered-integrated-development-environment-2149</guid>
      <description>&lt;p&gt;I’d like to share some software that I ran across a couple months ago.  It’s called Cursor.  It is an IDE (integrated development environment) built for programming with A.I.  I just happened upon an article on Cursor in the TDLR newsletter.  So I decided to give it a shot.&lt;/p&gt;

&lt;p&gt;You can use Cursor to write, edit, and chat about your code with GPT-3.5 or GPT-4.  Cursor supports a wide range of programming languages, including but not limited to:&lt;br&gt;
Python &lt;br&gt;
JavaScript&lt;br&gt;
Java&lt;br&gt;
C++&lt;br&gt;
C#&lt;br&gt;
Ruby&lt;br&gt;
Go&lt;br&gt;
Rust&lt;br&gt;
It is designed to be compatible with most popular programming languages.  &lt;/p&gt;

&lt;p&gt;The free tier of Cursor is powered by GPT-3.5.  Paying users can use either GPT-3.5 or GPT-4.  The free plan allows you to use the AI up to 100 times a month.  If you need to use more, you will have to buy a pro plan.&lt;/p&gt;

&lt;p&gt;What separates Cursor from Copilot?  Cursor’s edit, chat, new AI project, and error fixing functionality is not available in Copilot. Cursor can write new code, similar to Copilot, but Cursor uses a much smarter AI.&lt;/p&gt;

&lt;p&gt;Cursor is compatible with VSCode extensions.  All you need to do is import them automatically with Cursor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_QZrVH_o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k9q7rggbda9ottdno9st.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_QZrVH_o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k9q7rggbda9ottdno9st.png" alt="Image description" width="616" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cursor does not store any of your code on their servers.  Currently they may store some code in the pursuit of AI analytics services, but you can always turn that off.  Simply enable “Local Mode” in Settings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dFbcuK2E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/omhqz7pteup4ktn6if3u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dFbcuK2E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/omhqz7pteup4ktn6if3u.png" alt="Image description" width="627" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cursor gives the user the ability to ask about their codebase.  If you join a development project and need help getting up to speed this feature is really useful.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xNYO6mmr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ri235ym6h1plkqqnbeu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xNYO6mmr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ri235ym6h1plkqqnbeu.png" alt="Image description" width="543" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---0RYy4AC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x7c9i3nk8uy81wp6zu2y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---0RYy4AC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x7c9i3nk8uy81wp6zu2y.png" alt="Image description" width="403" height="218"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is a quick example.  I used example file example_code.c provided by Cursor at startup.  I asked Cursor to explain the code and this was the result with the explanation is on the right hand side:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xhAaS-zp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y6itvyqpangzqazvim26.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xhAaS-zp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y6itvyqpangzqazvim26.png" alt="Image description" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cursor allows you to browse documentation from the chat.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rr8zkYTf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pgj76ia7kb42pj5yw38v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rr8zkYTf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pgj76ia7kb42pj5yw38v.png" alt="Image description" width="541" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can edit existing code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--T6j24lBt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vohk6qjx3c6ez4jvt2vq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T6j24lBt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vohk6qjx3c6ez4jvt2vq.png" alt="Image description" width="577" height="622"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You have the ability to generate code from scratch.  This feature is great if you want a starting point for a project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vckpiGs3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8e1xhpc566gvfs8ywds2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vckpiGs3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8e1xhpc566gvfs8ywds2.png" alt="Image description" width="575" height="622"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here’s an example of generating code from scratch.  I ask Cursor to write me a program.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9I6o-2Q0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lv8jy287r5oxzo49dq4v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9I6o-2Q0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lv8jy287r5oxzo49dq4v.png" alt="Image description" width="517" height="91"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are the results:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nczvRLZA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4f9kqsudt87hi10y8owi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nczvRLZA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4f9kqsudt87hi10y8owi.png" alt="Image description" width="594" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you have code to work on Cursor can be used to spot and fix bugs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xPgM9emD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ndklhkha4im0g7qfsr9y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xPgM9emD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ndklhkha4im0g7qfsr9y.png" alt="Image description" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cursor also comes with a built in terminal for ease of use next to your code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fbxVrHdw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gdy1s3cybhelfx7cvks4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fbxVrHdw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gdy1s3cybhelfx7cvks4.png" alt="Image description" width="800" height="150"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cursor is a full featured IDE that is powered by A.I. I found that it introduced coding techniques I may not have otherwise thought up.  As with any code help feature you will need to proof-read your code. &lt;/p&gt;

&lt;p&gt;I have thoroughly enjoyed using Cursor thus far.  It is available for Windows, Mac and Linux.  &lt;a href="https://www.cursor.so/"&gt;Download it today from Cursor.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>developer</category>
      <category>development</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>From code to content</title>
      <dc:creator>techwriterjohn</dc:creator>
      <pubDate>Sat, 29 Jul 2023 00:35:39 +0000</pubDate>
      <link>https://dev.to/techwriterjohn/from-code-to-content-onf</link>
      <guid>https://dev.to/techwriterjohn/from-code-to-content-onf</guid>
      <description>&lt;p&gt;A Former Software Engineer turned Technical Writer&lt;/p&gt;

&lt;p&gt;Welcome to my corner of the web, where code and content converge in a harmonious symphony of communication. I, once immersed in the depths of software engineering, have embarked on an exciting transformation that led me to the captivating realm of technical writing.&lt;/p&gt;

&lt;p&gt;Driven by a passion for clear and concise communication, I realized that my true calling lay beyond lines of code. Armed with my experience and expertise in software development, I decided to transition into the world of technical writing, embracing a new medium to express my knowledge and creativity.&lt;/p&gt;

&lt;p&gt;Having traversed the intricate landscapes of programming languages and software frameworks,  I bring a unique perspective to the art of technical writing. My extensive background in software engineering enables me to translate complex concepts into easily digestible and accessible content for readers of all technical backgrounds.&lt;/p&gt;

&lt;p&gt;Through this website, I aim to share my invaluable insights, bridging the gap between technical jargon and clear understanding. From comprehensive software documentation to engaging tutorials and thought-provoking articles, I will weave my technical expertise with exceptional writing skills, creating content that empowers and enlightens.&lt;/p&gt;

&lt;p&gt;Join me on a captivating journey as I continue to unravel the mysteries of the tech world, one eloquently crafted sentence at a time. Whether you're an aspiring developer, a curious reader, or a fellow technical writer, this space serves as a source of inspiration, knowledge, and camaraderie.&lt;/p&gt;

&lt;p&gt;Together, let's explore the boundless possibilities that arise when a software engineer's knack for problem-solving merges with the artistry of the written word. Embark on this extraordinary adventure and discover how I plan on redefining the boundaries of communication in the ever-evolving landscape of technology.&lt;/p&gt;

&lt;p&gt;Are you ready to dive into the enchanting fusion of software engineering and technical writing? Let the journey begin!"&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>writing</category>
      <category>softwareengineering</category>
      <category>documentation</category>
    </item>
  </channel>
</rss>
