<?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: Radin</title>
    <description>The latest articles on DEV Community by Radin (@radictionary).</description>
    <link>https://dev.to/radictionary</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%2F1001330%2F0ea00b8f-623c-4065-b09f-c318df35d61b.png</url>
      <title>DEV Community: Radin</title>
      <link>https://dev.to/radictionary</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/radictionary"/>
    <language>en</language>
    <item>
      <title>My most useful Visual Studio Code Extensions</title>
      <dc:creator>Radin</dc:creator>
      <pubDate>Sat, 30 Nov 2024 04:42:10 +0000</pubDate>
      <link>https://dev.to/radictionary/my-most-useful-visual-studio-code-extensions-ng4</link>
      <guid>https://dev.to/radictionary/my-most-useful-visual-studio-code-extensions-ng4</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh5lytlxo5660rn8hgwpu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh5lytlxo5660rn8hgwpu.png" alt="Image description" width="360" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Language Server Extensions
&lt;/h1&gt;

&lt;p&gt;While not necessarily a single extension, extensions like &lt;a href="https://marketplace.visualstudio.com/items?itemName=golang.go" rel="noopener noreferrer"&gt;Go&lt;/a&gt;, &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-python.python" rel="noopener noreferrer"&gt;Pylance&lt;/a&gt;, and &lt;a href="https://marketplace.visualstudio.com/items?itemName=redhat.java" rel="noopener noreferrer"&gt;Language Support for Java(TM) by Red Hat&lt;/a&gt; give you the ability to code in Golang, Python, and Java, respectively, all in VS Code. They are examples of language servers that allow you to code in their respective language, all from VSCode.&lt;/p&gt;

&lt;p&gt;Without them, VS Code is simply just a text editor, but with them, it becomes the fastest full fledged Integrated Developer Environment(IDE) you can use. They provide you the ability to code in any language you know how, all in the same IDE. This can be seen in contrast to the Jetbrains suite of IDEs which needs a separate applications for each programming language in order to get the same result. The language servers usually provide features like code completion, code formatting, parameter info, build tools, and more. They usually have customizable settings that allow you to have a productivity boost while you are working.&lt;/p&gt;

&lt;h1&gt;
  
  
  Remote SSH
&lt;/h1&gt;

&lt;p&gt;The &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh" rel="noopener noreferrer"&gt;Remote - SSH&lt;/a&gt; extension allows you open any folder on a remote machine using SSH and take advantage of VS Code's full feature set. You can code as if you were on your local machine, but on a remote server! If Installed with the &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack" rel="noopener noreferrer"&gt;bundled extension pack&lt;/a&gt;, which includes three additional extensions regarding remote development, coding on a remote server becomes easier than any other alternative. I personally use this when I need to connect to an external TPU node or computer with greater computing power than my own Macbook. Sometimes I simply use it to code python on my raspberry pi, which works better than any other remote development tool I have used since it is lightweight and doesn’t consume as much resources. The user interface provided by VS Code is also a nice way to manage files.&lt;/p&gt;

&lt;p&gt;For a in-depth explanation on how this works, I recommend reading it on VS Code’s own website &lt;a href="https://code.visualstudio.com/docs/remote/ssh" rel="noopener noreferrer"&gt;here&lt;/a&gt;. It basically connected to the remote machine using the Secure Shell (SSH) protocol, installs VS Code server, and allows you to simply use VS Code as you would before, but instead to edit files and folders on a different machine. Especially if you have SSH keys setup, connecting and editing on a remote server becomes as seamless as possible. One interesting feature is the ability to have separate extensions different between your local machine and your remote machine, which makes sense especially if your usages between the remote servers are different. It also allows you to forward the remote host’s ports so you can access them on your local device. &lt;/p&gt;

&lt;h3&gt;
  
  
  Resource Monitor
&lt;/h3&gt;

&lt;p&gt;I’ve found to enjoy myself pairing Remote - SSH with &lt;a href="https://marketplace.visualstudio.com/items?itemName=mutantdino.resourcemonitor" rel="noopener noreferrer"&gt;Resource Monitor&lt;/a&gt;, an extension which displays current CPU stats, memory/disk consumption, and battery percentage remaining. I don’t care for it much on my local VS Code, but it is interesting and useful to witness the affects of your code on the remote machine. Especially when working with my Raspberry Pi with limited resources, I can monitor my usage. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm6o6kwhnq3d36lz76s93.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm6o6kwhnq3d36lz76s93.png" alt="Image description" width="554" height="40"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Prettier
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode" rel="noopener noreferrer"&gt;Prettier&lt;/a&gt; allows you to format your code, regardless of what language, to however you want it to be. While an important feature is its customization, it enforces a consistent formatting and style of code throughout projects that makes it useful to edit not just among yourself, but especially when working with multiple people on a single codebase. If you want, you can make it so that the extension only works for some languages or workspaces. &lt;/p&gt;

&lt;p&gt;The way I customize is I make a .prettierrc file with the customizations I want, which are only applied in the project containing the .prettierrc. This extension even has its own plugins. For example, the tailwind css prettier plugin allows you to format the tailwindcss styles that you use in your html using prettier, which creates a standard organization of the styles. &lt;/p&gt;

&lt;h1&gt;
  
  
  Material Icon Theme
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fya2vshh0xnnxsj9re95r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fya2vshh0xnnxsj9re95r.png" alt="Image description" width="800" height="873"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are many customization options within VS Code, whether it be messing around with the settings or installing extensions. The &lt;a href="https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme" rel="noopener noreferrer"&gt;Material Icon Theme&lt;/a&gt; extension changes the icons that appear in the explorer that makes the editor look better to a much higher degree. Beyond simply aesthetics, the extension allows me to better navigate large coding projects from being able to identify the files.&lt;/p&gt;

&lt;h1&gt;
  
  
  Bonus: Work with Chat GPT on VS Code
&lt;/h1&gt;

&lt;p&gt;Released only a week ago and not even available on the marketplace, is Open AI’s own ChatGPT extension. This gives your computer’s ChatGPT access to your open files in VS Code. It is important to note it only has access to the code currently being viewed. If you want to have more code in context, you need them open in split view. This extension is very new and has very limited features beyond what I have mentioned. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fql9gn1r81glqe61mc0dj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fql9gn1r81glqe61mc0dj.png" alt="Image description" width="800" height="181"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since the extension is not available on the marketplace, you need to install its .vsix file. You can read the steps to installing it &lt;a href="https://help.openai.com/en/articles/10128592-how-to-install-the-work-with-apps-visual-studio-code-extension" rel="noopener noreferrer"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Github Copilot is definitely better without a doubt, and while I don’t really see this as even trying to compete with Copilot, it is somewhat nice for those users who are coding and don’t need to constantly copy and paste their code anymore. I use this mainly to explain code I don’t understand or want better clarification on. &lt;/p&gt;

&lt;p&gt;Note that I have only tested this on MacOS. &lt;/p&gt;

&lt;p&gt;This blog post is also available at my website, &lt;a href="https://radinworld.com" rel="noopener noreferrer"&gt;radinworld.com&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Quantum Computing Basics</title>
      <dc:creator>Radin</dc:creator>
      <pubDate>Thu, 22 Feb 2024 19:04:47 +0000</pubDate>
      <link>https://dev.to/radictionary/quantum-computing-basics-482d</link>
      <guid>https://dev.to/radictionary/quantum-computing-basics-482d</guid>
      <description>&lt;p&gt;First, to begin with the concept and usage of quantum computers, we must go over the basics.&lt;/p&gt;

&lt;h4&gt;
  
  
  What is it?
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;Quantum computing uses specialized technology—including computer hardware and algorithms that take advantage of quantum mechanics—to solve complex problems that classical computers or supercomputers can’t solve, or can’t solve quickly enough. &lt;a href="https://www.ibm.com/topics/quantum-computing#:~:text=Quantum%20computing%20uses%20specialized%20technology%E2%80%94including%20computer%20hardware%20and%20algorithms%20that%20take%20advantage%20of%20quantum%20mechanics%E2%80%94to%20solve%20complex%20problems%20that%20classical%20computers%20or%20supercomputers%20can%E2%80%99t%20solve%2C%20or%20can%E2%80%99t%20solve%20quickly%20enough."&gt;-IBM&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h6&gt;
  
  
  Qubits
&lt;/h6&gt;

&lt;p&gt;A normal computer functions over the concept of binary. A bit is like a switch in which it can have an off state(0) or an on state(1). Unlike normal computers, quantum computers get interesting when they provide the ability to not only be in a off or on state, but also be both simultaneously, known as the superposition. These special bits of the quantum computer-with the ability to be in the superposition-are called qubits, and they are able to process multiple possibilities simultaneously as the basic unit of information in quantum computing.&lt;sup id="fnref1"&gt;1&lt;/sup&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  Entanglement
&lt;/h6&gt;

&lt;p&gt;With qubits, there is also entanglement. In short, entanglement is when two or more particles have a connection between themselves where they share a quantum state.&lt;sup id="fnref2"&gt;2&lt;/sup&gt; Since some information is stored in superposition, entanglement allows some problems to be solved exponentially faster.&lt;/p&gt;

&lt;h6&gt;
  
  
  Overall
&lt;/h6&gt;

&lt;p&gt;In fundamental contrast to classical computing, quantum computers use quantum circuits, gates, and algorithms to manipulate and use qubits. The most common example algorithms are Shor's algorithm&lt;sup id="fnref3"&gt;3&lt;/sup&gt; and Grover's algorithm&lt;sup id="fnref4"&gt;4&lt;/sup&gt;. Both algorithms achieve their purpose faster than any classical algorithm can.&lt;/p&gt;

&lt;h4&gt;
  
  
  Real world applications
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;If a supercomputer gets stumped, that's probably because the big classical machine was asked to solve a problem with a high degree of complexity. - &lt;a href="https://www.ibm.com/topics/quantum-computing#:~:text=If%20a%20supercomputer%20gets%20stumped%2C%20that%27s%20probably%20because%20the%20big%20classical%20machine%20was%20asked%20to%20solve%20a%20problem%20with%20a%20high%20degree%20of%20complexity."&gt;IBM&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;An example of this would be the modeling of advanced, specific, or large quantity models, such as modeling the movement of electrons or DNA sequences.&lt;/p&gt;

&lt;p&gt;In the real word, even in the quantum computer's infancy, this technology is used in finance, pharmaceuticals, artificial intelligence, and in many more applications today.&lt;/p&gt;

&lt;h4&gt;
  
  
  Drawbacks
&lt;/h4&gt;

&lt;p&gt;Quantum Computers face some challenges however. They need a perfect environment to operate, and interactions in the environment in which the computers are in can cause problems. First, the hardware needs to be very cold. To expand, the quantum processors need to be just above absolute zero in temperature.&lt;/p&gt;

&lt;p&gt;Failure to have a perfect environment can cause decoherence - the occurrence of qubits losing their quantum state. This is another way of saying the qubits are not in superposition anymore, and are nothing more than classical computer bits. &lt;/p&gt;

&lt;p&gt;This can affect scalability where it is challenging to maintain high coherence while scaling the number of qubits and quantum computers. &lt;/p&gt;

&lt;p&gt;Fortunately, there are techniques such as error correction codes or quantum error correction(QEC) which aims to detect and correct the effects of decoherence before they can affect the computation at hand. &lt;/p&gt;




&lt;ol&gt;

&lt;li id="fn1"&gt;
&lt;p&gt;It is important to note that qubits are not useful by themselves,but have the ability to achieve the state of superposition, which is what makes them useful. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn2"&gt;
&lt;p&gt;The effects of entanglement can be seen even when the particles are distance, even by a great amount, to each other ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn3"&gt;
&lt;p&gt;Quantum algorithm for integer factorization. When given an integer,N , this algorithm will be able to find all of N's prime factors. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn4"&gt;
&lt;p&gt;Quantum algorithm for searching an unstructured database or unordered list.  ↩&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;

</description>
      <category>python</category>
      <category>quantumcomputing</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Using the Open AI GPT-3 API for beginners</title>
      <dc:creator>Radin</dc:creator>
      <pubDate>Sat, 04 Feb 2023 07:15:42 +0000</pubDate>
      <link>https://dev.to/radictionary/using-the-open-ai-gpt-3-api-for-beginners-i7n</link>
      <guid>https://dev.to/radictionary/using-the-open-ai-gpt-3-api-for-beginners-i7n</guid>
      <description>&lt;p&gt;&lt;strong&gt;I've been using Open AI's api for a few months now, here are my thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction to parameters
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fojunchww9b7i6ajfrwks.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fojunchww9b7i6ajfrwks.png" alt="Image description" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here we see the most basic use case of the API. We first import our libraries, including OpenAI's own library that can be installed with pip. We then define our API key.&lt;br&gt;
&lt;strong&gt;Defining our prompt:&lt;/strong&gt; Notice when I do call in the prompt when I make my request, I add in a &lt;code&gt;prompt + "?"&lt;/code&gt;. After some experimenting, I found that adding a question mark &lt;em&gt;does&lt;/em&gt; indeed have some effect, however, I wouldn't worry too much about that since there are more important parameters.&lt;br&gt;
&lt;strong&gt;Top_p&lt;/strong&gt;: Much more important than the question mark at the end of our prompt, we have top_p. This controls the diversity of the AI's answer via nucleus sampling and it's values to be defined range from (0-1). It provides better control for applications in which GPT-3 is expected to generate text with accuracy and correctness. More information about that &lt;a href="https://www.twilio.com/blog/ultimate-guide-openai-gpt-3-language-model#:~:text=The%20%E2%80%9CTop%20P%E2%80%9D%20option,other%20is%20set%20to%201." rel="noopener noreferrer"&gt;here&lt;/a&gt;. More simplified, top_p is used to control possible outcomes that the AI searches for. &lt;br&gt;
&lt;strong&gt;Temperature:&lt;/strong&gt; Like top_p, temperature has a great effect on the outcome of the AI's response. Temperature controls randomness, in which values range from (0-1). As the value ranges closer to 0, the answers of the AI will become more repetitive. Making the temperature 0 can be the equivalent of searching something up on google, and getting the same answer over and over again. Making the temperature 1 will make it much more creative. Either way, I don't recommend defining your value at the min/max, but rather something more stable.&lt;br&gt;
&lt;strong&gt;N:&lt;/strong&gt; This decides how many different generations the AI makes. It is defaulted at 1, but can be changed with this parameter. Notice that this can quickly use your tokens.&lt;br&gt;
&lt;strong&gt;Model:&lt;/strong&gt; OpenAI provides many different models, each having their own PROS and CONS. DaVinci proves to be the most reliable, but not necessarily the one you need.&lt;a href="https://platform.openai.com/docs/models/gpt-3" rel="noopener noreferrer"&gt;Here&lt;/a&gt; is more information on the different models from OpenAI's official documentation. Based on the cost, you might want to use curie, as it is faster while also being cheaper than DaVinci.&lt;br&gt;
Of course, there are more parameters you can make to limit or diversify your AI's responses. &lt;/p&gt;

&lt;h2&gt;
  
  
  Printing the response
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwqug6ewbp7p5dse3jb4k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwqug6ewbp7p5dse3jb4k.png" alt="Image description" width="800" height="993"&gt;&lt;/a&gt;&lt;br&gt;
Here, we see instead of slicing the API in an f-string, I just plainly printed out the response. Depending on your parameters it might look a bit different(especially if you changed your token limit),but in the end, it will have the same relative tree/json format. First we have to store our AI's response as a variable. We can do this by slicing from the API with &lt;code&gt;output=response["choices"][0]["text"]&lt;/code&gt;. In my case, simply calling &lt;code&gt;{response["choices"][0]["text"]}&lt;/code&gt; in an f-string will be easier when printing multiple information. As seen, additional information like the reason the API stopped and problems log can be called.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compared to ChatGPT Chatbot
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://chat.openai.com/chat" rel="noopener noreferrer"&gt;This can be found here&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;When I first started out with the API, the chatbot wasn't even a thing, but now that it is, how does it compare?&lt;/strong&gt;&lt;br&gt;
First off, I find the ability to decide the top_p and temperature a major advantage compared to the chatbot. Especially when using it for educational purposes or explanation prompts.&lt;br&gt;
Second, your creativity is the limit! You can incorporate this API into your own apps, and potentially be the next big thing! This API can also be easily used with Javascript's Node Package Manager for easy integration with applications.&lt;/p&gt;

&lt;p&gt;In the end, you'll be a fool to underestimate Chat GPT-3, but a bigger one to completely rely on it.&lt;/p&gt;

</description>
      <category>announcement</category>
      <category>offers</category>
      <category>devto</category>
      <category>web3</category>
    </item>
  </channel>
</rss>
